2016-11-07 11 views
0

У меня есть этот файл EFL, который мне нужно отлаживать/проходить. Это обратное инженерное соревнование. Все, что мне нужно сделать, это узнать значение регистра в определенный момент времени и в определенном месте. Я использовал Hopper Disassembler, чтобы узнать адрес интереса.Отладка файла ELF

В этом проблема. Я не знаю, как отлаживать файл ELF. Это моя первая отладка в среде Linux. Изучение того, как выполнить файл ELF, заняло у меня некоторое время. Я выполняю, используя ld-linux.so.2 ./[EFLFILE] [arguments]

Есть ли способ, по которому я могу приложить отладчик на proess? Я даже не могу найти его с помощью команды ps. Кроме того, я слышал, что можно иметь удаленный отладчик; для запуска отладчика на машине Windows и проверки бинарного файла на Linux.

Может ли кто-нибудь помочь мне достичь всего этого?

+1

Вы можете использовать [GDB] (https: //www.gnu. org/software/gdb /), чтобы отлаживать программу под linux – daouzli

ответ

0

Обычно ELF-файл может быть выполнен следующим образом:

$ /path/to/elffile [arguments] 

Для его отладки с помощью GDB вы можете сделать:

$ gdb /path/to/elffile 

или передачи аргументов:

$ gdb --args /path/to/elffile arguments... 

В вашей случае:

$ gdb --args ./[EFLFILE] [arguments] 

Затем введите run или просто r и нажмите. Тип help, чтобы получить помощь по командам gdb.

Примечание: если вы программа нуждается в некоторых внешних LIBS, перед его запуском, вы должны определить LD_LIBRARY_PATH указывая на папку, содержащую эти LIBS (export LD_LIBRARY_PATH=/the/path/to/libs)

+0

Независимо от того, что я делаю, я никогда не могу выполнить файл ELF, просто перейдя '$ [filename]' Я продолжаю получать сообщение «no command [filename] found " Когда я пытаюсь использовать gdb, который вы предложили (строка в« в вашем случае »), я получаю отказ от прав, даже после использования sudo. Я использую новейшую ubuntu. – hexinx

+0

Я думаю, это потому, что это 32-битный ELF на 64-битной установке ubuntu. Я буду запускать 32-битную систему и попробую сделать то же самое. – hexinx

+0

@hexinx, если вы получили отказ в доступе, убедитесь, что у вашего файла есть права выполнения '$ chmod + x elffile', однако gdb не будет работать, если вы не можете работать в автономном режиме, вы двоичный – daouzli