Я пытаюсь прочитать сегмент кода процесса, обращающегося к API ядра. Я использую mm_struct, чтобы получить первый и последний адрес сегмента кода указанного процесса. (ref: http://www.makelinux.net/books/lkd2/ch14lev1sec1). Затем я пытаюсь скопировать содержимое адреса с помощью функции copy_from_user(), с помощью следующего кода:Модуль ядра Linux копирует .text сегмент процесса
char code[10];
unsigned long copy_ans;
copy_ans = copy_from_user(code, current->mm->start_code, 10);
//10 is the number of bytes that should be copied.
Это доцент, кажется, действительно скопировать десять байт, а значение «кода» всегда:
\ x7fELF \ x02 \ x01 \ x01
Я начинаю сомневаться в том, что даже читает из адреса, а не только преобразует значение адреса СИМВОЛУ. Я бы GLAB, если кто-то может указать на проблему для меня :)
Благодарности
Кажется, вы правы, я вижу еще несколько значений гексагона, когда я устанавливаю прочитанные байты в 2048. Тем не менее, я все еще не уверен, printk действительно не работает должным образом в этих числах. Я попытаюсь отправить данные через Netlink позже, и если он будет работать, я буду уведомлять и устанавливать ваш ответ как принятый. Благодарю. – Talkopel