Как прочитать исполняемый (.EXE) файл в OpenVMS

Когда я пытаюсь открыть любой файл .EXE, я получаю информацию в закодированном виде. Любая идея, как увидеть содержимое файла .EXE ????


person Aksh Akshay    schedule 08.09.2017    source источник


Ответы (4)


Используйте analyze/image для просмотра содержимого исполняемого файла образа.

person HABO    schedule 08.09.2017
comment
Мне нужно найти таблицы, используемые в этом конкретном .EXE......Есть ли возможность найти таблицы в .EXE ????? - person Aksh Akshay; 08.09.2017
comment
@AkshAkshay Что значит найти: PSECT и смещение? Отображать в форматированной сетке? ... Что означает таблицы: Глобальная таблица символов (GST)? Ссылки на другие (общие) изображения? Закодированные таблицы базы данных? Многомерные массивы? ... - person HABO; 08.09.2017
comment
Хм.... @Habo: Мне нужно знать, какие таблицы базы данных используются в конкретном .EXE. Я расскажу вам сценарий. Отчет создается с использованием .EXE. Поэтому мне нужно выяснить таблицы базы данных, которые использовались в этом .EXE... чтобы я мог использовать эти таблицы для извлечения данных... Есть ли возможность узнать, какие таблицы базы данных используются в конкретном .EXE? ???? - person Aksh Akshay; 09.09.2017
comment
Поэтому я предполагаю, что вы ищете известный шаблон строки в файле .EXE. Чтобы назвать пару утилит, я бы попробовал: $ SEARCH/FORMAT=DUMPfilespec search-string, $ DUMPfilespec, $ EDIT/TPUfilespec (или любой другой редактор, который может обрабатывать 512-байтовые записи) или (вы не сказали, какая платформа) на I64 $ ANALYZE/IMAGE/SEGMENT=NUMBER=n filespec, где n это любой сегмент LOAD без флага X, Nwr, Nwf и с размером файла != 0. - person user2116290; 09.09.2017
comment
ANALYZE/IMAGEпо умолчанию форматирует внутреннюю структуру исполняемого образа: наиболее важными являются разделы изображения на Alpha и сегменты программы на I64. Только на I64 вы можете попросить проанализировать, чтобы показать вам содержимое этих элементов, сегментов программы. - person user2116290; 09.09.2017
comment
Если таблицы представляют собой просто файлы RMS, к которым обращается образ, вы можете использовать (недокументированную) команду 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

Удачи! Хайн

person Hein    schedule 09.09.2017
comment
Привет, Хайн.. Пожалуйста, скажи мне свой почтовый идентификатор.. Мы можем обсудить это вместе.. - person Aksh Akshay; 20.09.2017
comment
Это испытание. Если вы не можете понять мою электронную почту, то вы не достойны. Удачи. - person Hein; 20.09.2017
comment
Акш — попробуйте «Hein van der Heuvel» @heinheuvel в Твиттере. Hein - я пройду тест?!? Я теперь достоин?!?? - person Richard Hammond; 10.03.2018

Я предполагаю, что вы пытаетесь посмотреть в EXE, потому что у вас нет доступа к источнику. Я делаю что-то вроде этого:

$ dump/record/byte/hex/out=a.a myexe.exe

Затем просмотрите a.a в любом текстовом редакторе (132 столбца). Компоновщик группирует строковые литералы вместе, и они в основном находятся в начале EXE-файла, поэтому вам не нужно заглядывать слишком далеко в файл. Конечно, это помогает только в том случае, если ссылки на базу данных являются строковыми литералами.

Строковый литерал может выходить за границу блока (512 байт), поэтому, если вы используете поиск в своем редакторе, попробуйте найти подстроки.

person Mark Diaz    schedule 04.10.2017

Акш - на этом ты гоняешься за своим хвостом. Это ложный рассвет. Даже если вы можете (и не можете) найти таблицы базы данных, вам понадобится источник .exe, чтобы сделать с ним что-нибудь разумное или проблему, которую вы пытаетесь решить. Можно написать программу, которая просто перечисляет все таблицы в базе данных, не читая ни одну из них. Таким образом, вы можете потратить очень много усилий и ничего не добиться. Надеюсь это поможет

person Richard Hammond    schedule 10.03.2018