Когда я пытаюсь открыть любой файл .EXE, я получаю информацию в закодированном виде. Любая идея, как увидеть содержимое файла .EXE ????
Как прочитать исполняемый (.EXE) файл в OpenVMS
Ответы (4)
Используйте analyze/image
для просмотра содержимого исполняемого файла образа.
$ SEARCH/FORMAT=DUMP
filespec search-string, $ DUMP
filespec, $ EDIT/TPU
filespec (или любой другой редактор, который может обрабатывать 512-байтовые записи) или (вы не сказали, какая платформа) на I64 $ ANALYZE/IMAGE/SEGMENT=NUMBER=
n filespec, где n это любой сегмент LOAD
без флага X
, Nwr
, Nwf
и с размером файла != 0.
- person user2116290; 09.09.2017
ANALYZE/IMAGE
по умолчанию форматирует внутреннюю структуру исполняемого образа: наиболее важными являются разделы изображения на Alpha и сегменты программы на I64. Только на I64 вы можете попросить проанализировать, чтобы показать вам содержимое этих элементов, сегментов программы.
- person user2116290; 09.09.2017
set watch file/class=major_function
. Файл XQP будет отображать все операции открытия и закрытия файлов при запуске приложения. (IIRC, set watch file/class=none
должен отключить его.)
- person HABO; 12.09.2017
Мне нужно знать, какие таблицы базы данных используются в конкретном .EXE.
А, теперь мы приближаемся к настоящему вопросу.
Вероятно, гораздо более продуктивно спрашивать целевые базы данных о SQL-запросах, которые выполняются во время выполнения, или о первой десятке вскоре после этого.
Имена таблиц могут не быть жестко запрограммированы как таковые в исполняемом файле. Они могут быть получены путем поиска, и может быть выполнено какое-то забавное предварительное исправление или другое преобразование. По общему признанию они любят открытый текст.
Вероятно, проще всего просто перенести на сервер Unix и использовать STRINGS для изображения.
Я хочу включить сюда исходный код, но это не удалось, и я не могу найти, как прикрепить файл. Ниже вы найдете ссылку на исходный код макропрограммы OpenVMS для инструмента, подобного STRINGS. Не знаю, как долго будет существовать ссылка.
Просто прочтите инструкции, сохраните (strings.mar), скомпилируйте ($ MACRO strings), свяжите ($link strings) и активируйте ($ mcr sys$login:strings image_to_test.exe)
Текст программы OpenVMS Macro String
Удачи! Хайн
Я предполагаю, что вы пытаетесь посмотреть в EXE, потому что у вас нет доступа к источнику. Я делаю что-то вроде этого:
$ dump/record/byte/hex/out=a.a myexe.exe
Затем просмотрите a.a в любом текстовом редакторе (132 столбца). Компоновщик группирует строковые литералы вместе, и они в основном находятся в начале EXE-файла, поэтому вам не нужно заглядывать слишком далеко в файл. Конечно, это помогает только в том случае, если ссылки на базу данных являются строковыми литералами.
Строковый литерал может выходить за границу блока (512 байт), поэтому, если вы используете поиск в своем редакторе, попробуйте найти подстроки.
Акш - на этом ты гоняешься за своим хвостом. Это ложный рассвет. Даже если вы можете (и не можете) найти таблицы базы данных, вам понадобится источник .exe, чтобы сделать с ним что-нибудь разумное или проблему, которую вы пытаетесь решить. Можно написать программу, которая просто перечисляет все таблицы в базе данных, не читая ни одну из них. Таким образом, вы можете потратить очень много усилий и ничего не добиться. Надеюсь это поможет