Идентификация информации об исполняемом файле

У меня есть исполняемый файл Linux, который, кажется, был написан на C++ с использованием компилятора GNU и в режиме отладки. Я хотел бы знать, верен ли мой вывод и каковы мои шансы декомпилировать его во что-то хоть сколько-нибудь читаемое. Вот несколько контрольных фрагментов из исполняемого файла:

Фрагмент 1

</heap>
<malloc version="1">
nclears >= 3 Arena %d:
system bytes    = %10u
in use bytes    = %10u
Total (incl. mmap):
max mmap regions = %10u

Фрагмент 2

__gnu_cxx::__concurrence_lock_error

Фрагмент 3

ELF file ABI version invalid ◻ invalid ELF header ◻ ELF file OS ABI invalid

Фрагмент 4

GCC: (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5 ◻
GCC: (Ubuntu/Linaro 4.4.4-14ubuntu1) 4.4.5 20100909 (prerelease)

Фрагмент 5

_dl_debug_vdprintf    pid >= 0 && sizeof (pid_t) <= 4     
...
_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT

Файл полон читаемого текста, подобного этому (но большая его часть все еще тарабарщина). Я не думаю, что вы должны найти такой текст в исполняемом файле, скомпилированном в режиме выпуска (опять же, мои знания по этому вопросу очень ограничены). Какой декомпилятор я должен попытаться использовать для этого исполняемого файла?


person Paul Manta    schedule 17.12.2011    source источник
comment
Эти строки являются просто строковыми литералами в программе (за исключением, может быть, последнего). Вы сможете прочитать строки, используемые программой в режимах выпуска или отладки. Кроме того, вместо того, чтобы пытаться определить, можно ли его декомпилировать, почему бы просто не попробовать декомпилировать его?   -  person Seth Carnegie    schedule 17.12.2011
comment
@ Сет Сомневаюсь. Я знаю, что делает программа, и она не имеет ничего общего с этими строками; его интерфейс даже не на английском языке.   -  person Paul Manta    schedule 17.12.2011
comment
Это будут строки, на которые ссылаются библиотеки, а не пользователь библиотек, поэтому не имеет значения, на каком языке написана программа. Используют ли библиотеки эти строки только в режиме отладки или и при выпуске, и при отладке, я не знаю. знать.   -  person Seth Carnegie    schedule 17.12.2011
comment
@Сет О, понятно. Я выполнил поиск по отладке и нашел довольно много ссылок (я вставил две в фрагмент 5).   -  person Paul Manta    schedule 17.12.2011
comment
Просто попробуйте декомпилировать его и посмотрите, что у вас получится, не тратьте время на выяснение того, какая оптимизация была включена. Вы получаете то, что получаете в любом случае.   -  person Seth Carnegie    schedule 17.12.2011


Ответы (1)


почему бы вам не поставить точку останова в main и не запустить исполняемый файл??? если это режим отладки, вы можете увидеть полный исходный код (если исходный файл находится по тому же пути). вы можете пройти каждый шаг и увидеть вызовы функций с точными аргументами.

person balki    schedule 17.12.2011
comment
Я бы, если бы знал как. :) Но спасибо за подсказку, буду разбираться. - person Paul Manta; 17.12.2011