2015-09-16 7 views
0

У меня есть вопрос о исполняемых файлах и C.Как увидеть исполняемое содержимое под AIX

Если вы должны были знать содержание (версию каждого .c файла, записанный в комментарии) исполняемый файл, НО вы просто исполняемый файл, у вас нет источников. Как вы продолжаете?

Я видел команду «nm», вырезая то, что хочу, с «вырезанием». Я могу получить выходные файлы .c, но я не могу читать версии внутри, потому что у меня нет исходных файлов. Я также видел команду «objdump», но я не могу попробовать ее под AIX (конечно ...) есть ли эквивалент? Возможно ли, чтобы objdump знал, чего я хочу?

Thx за вашу помощь и внимание :)

+0

Что вы подразумеваете под «версией файла .c»? –

+0

С SVN, когда я скомпилировал мою версию исполняемого файла, я хочу восстановить версии файлов .c, связанных в исполняемом файле. –

+0

Ни компилятор, ни компоновщик не знают или не заботятся о версиях SVN (то же самое касается RCS/CVS) –

ответ

0

Я нашел способ сделать то, что хотел. Используя строку «#pragma comment (user,« comment ») '(я не знал этого), она записывает в компиляцию и связывает этот« комментарий »в конце двоичного файла, поэтому я включаю эту строку в каждую. c файл. При анализе исполняемого файла я могу восстановить версии каждого файла только с помощью двоичного файла.

Спасибо за вашу помощь еще раз и ваше время :).

+0

(Надеюсь, вы не забудете обновить этот «комментарий» в своих файлах. Я знаю, что хочу.) –

+0

Вы можете разобрать исполняемый файл с помощью 'strings my_exe_file' –

+0

Walter A, я пробовал, но последняя строка, которая содержит комментарий isn ' t распознается как «строка», и это не работает, я уже пробовал ^^, тогда я помещал символы в начале и в конце, я cat -v, tr символ как «\ n», grep строки с шаблоном », VERSION_OF "(это всегда написано в комментарии). Вот как я продолжаю. –

0

Вы не можете получить исходный код обратно из скомпилированного исполняемого файла. Существует множество информации, которую вы можете получить от него. Например, вы можете получить размер разделов data, bss и text (через команду size). Вы также можете установить Linux-утилиты для AIX, которые предоставят вам больше инструментов, которые могут пролить свет на ваш исполняемый файл (см. What is the equivalent command for objdump in IBM AIX). Последние двоичные файлы AIX находятся в формате XCOFF64 или XCOFF32 (оба имеют хорошие статьи по википедии).

+0

Система управления конфигурацией, такая как SVN, по-прежнему будет иметь исходный источник, доступный как определенная версия. если эта версия доступна в объекте/исполняемом файле, тогда легко перейти на SVN и запросить конкретную версию. – user3629249

0

Это звучит, как вы описывающее , что (1) и идент (1) команд, используемый для поиска версий файлов, встроенных в виде строки в исполняемом файле.

Эти строки, содержащие @(#) или $Id, были вставлены в файлы исходного кода системами контроля версий, SCCS и RCS, из старых времен.