ELF x86 исполняемая точка входа - PullRequest
0 голосов
/ 16 июля 2011
void  *entrypoint;
/*virtual address of process*/
fscanf(debuggedfile, "%p", &entrypoint);

где debuggedfile - это поток в файл elf со смещением, в котором находится точка входа int. когда я использую ptrace (PTRACE_PEEKTEXT, 0, точка входа, 0), он возвращает -1

Ответы [ 2 ]

1 голос
/ 16 июля 2011

ELF - это двоичный формат файла.fscanf для чтения из текстовых файлов.Попробуйте fread вместо.

0 голосов
/ 18 июля 2011

Если вы пишете код, который анализирует файлы ELF, я бы предложил использовать стандартную библиотеку, такую ​​как libelf , вместо того, чтобы кодировать свой собственный анализатор ELF вручную.

Таким образом, вы позволили бы libelfобрабатывать угловые случаи, которые иногда возникают, например, объекты ELF, использующие расширенную нумерацию разделов.

Существуют активные проекты с открытым исходным кодом, разрабатывающие BSD с лицензией и GPL'ed реализации libelf --- выбирайте сами.

...