Closed TopicStart new topicStart Poll

Страницы: (1) 1 
Diskretor
дата: [ i ]
  • *
  • Новичок
  • Репутация: 7
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
Я здесь новичок. А здесь публика умная, поэтому вопрос:

У меня есть программа (EXE), которая при запуске выполняет непонятные действия. Я хочу узнать, что она делает.

Вопрос: как превратить этот ЕХЕ в исходный код - в язык команд программирования. И вообще какие есть способы декомпиляции (так это вроде называется) и где про это все можно прочитать?

Естественно на каком языке написана программа я не знаю, потому что она не моя.
xTriplex
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 269
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
QUOTE (Diskretor @ 14.08.2006 - время: 23:51)
Я здесь новичок. А здесь публика умная, поэтому вопрос:

У меня есть программа (EXE), которая при запуске выполняет непонятные действия. Я хочу узнать, что она делает.

Вопрос: как превратить этот ЕХЕ в исходный код - в язык команд программирования. И вообще какие есть способы декомпиляции (так это вроде называется) и где про это все можно прочитать?

Естественно на каком языке написана программа я не знаю, потому что она не моя.

Для дезассемблирования есть специальный софт - ка ни странно но он так и называеться - дизассемблер... biggrin.gif

Узнать язык на которм написан софт - не особо трудно...например в инфе о файле, либо по конструкции exe (там в 95 % есть отлиительные черты языка, или прям так и написано, что (с) Borland Delphi biggrin.gif или еще кто), либо софт есть специальный...

Есть специфические декомпиляторы - типа возвращают исходный код...но они сводяться к тому же...просто конструкция оригинальная останеться, а все процедуры, функции и т.д. всеравно будут на ассемблере, по другому никак...

mvf23
дата: [ i ]
  • *
  • Специалист
  • Репутация: 62
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
QUOTE
Для дезассемблирования есть специальный софт - ка ни странно но он так и называеться - дизассемблер...


Для сведения - самый лучший на сегодня дизассемблер называется IDA Pro.

Однако чтение программы на ассемблере - дело довольно тяжелое, требующее довольно хорошего представления принципов работы процессора, а также знания Ассемблера для PC. (например только процедура для открытия и чтения файла на ассемблере может иметь длину 500-1000 строк, а вся программа - может иметь длину в несколько миллионов строк)

То есть для этого требуется довольно хороший уровень теоретической подготовки. Либо ну ООООЧЕНЬ большое желание.

Декомпилировать, то есть преобразовать программу к исходникам на языке высокого уровня очень сложно и в большинстве случаев невозможно. Есть небольшие исключения, но и они не позволяют вернуть программу к нормально читаемому виду.

QUOTE
программа (EXE), которая при запуске выполняет непонятные действия. Я хочу узнать, что она делает.


Возможно необходимости в дизассемблировании нет.

В большинстве случаев бывает достаточно проследить за её действиями с помощью программы-монитора. В частности есть программа, которая называется FileMon - она отслеживает все обращения к файлам (открытие/чтение запись и т.д.). И RegMon - она соответственно отслеживает все обращения к реестру. TDIMon - для мониторинга пакетов TCP/IP. Все три программы - бесплатны и найти их можно на http://www.sysinternals.com/
Diskretor
дата: [ i ]
  • *
  • Новичок
  • Репутация: 7
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
Да, насчет пункта 2. mvf23 я согласен, что можно использовать утилиты для отслеживания действий ЕХЕ, к тому же у меня есть RegShooter, но они мне не подходят, потому что:

Я не хочу курочить ВИНДОВС этим EXE, так как знаю немного, что он делает опред.вред.(Spy-ware, AD-ware не уверен, KAV - пока его не определяет)

--->> Если бы мне посоветовали такую утилиту, чтобы нею узнать что ЕХЕ делает, не запуская его (такая есть?) или чтобы после него не было последствий - другое дело.
Просто хочу сам разобраться.

--->>И основной второй вопрос:
В этом ЕХЕ уверен на 100% есть много путей к реестру ВИНДОВСА. (то что мне нужно)
Допустим я использую декомпилятор превращающий ЕХЕ в ассемблер или в язык высокогоо уровня. Если я дезассемблирую ЕХЕ, то смогу ли я увидить эти пути к реестру в нормальном виде или они будут зашифрованы машинным кодом ассемблера? - ну если кто знает.

Р.S. Знаю только Pascal и Basic, по остальному - куча книг и немного желания:)
Unknown_Identifier
дата: [ i ]
  • Group Icon
  • Мастер
  • Репутация: 199
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
QUOTE
Я не хочу курочить ВИНДОВС этим EXE, так как знаю немного, что он делает опред.вред.(Spy-ware, AD-ware не уверен, KAV - пока его не определяет)

Для этой цели можно запустить виртуальную машину и в ней дебагить программу. Даже если запорет виртуалку - так не жалко :)

QUOTE
Допустим я использую декомпилятор превращающий ЕХЕ в ассемблер или в язык высокогоо уровня. Если я дезассемблирую ЕХЕ, то смогу ли я увидить эти пути к реестру в нормальном виде или они будут зашифрованы машинным кодом ассемблера? - ну если кто знает.

Если строки не зашифрованы в самой программе, то ты их определенно увидишь. Более того, для этого не нужно и дизассемблировать - они прекрасно видны в самом EXE-файле :)
Обычно строковые константы хранятся в:
- секции ресурсов (ресурсные строки), обычно в конце exe
- непосредственно рядом с кодом процедуры, в которой используются (inline-константы)
- в сегменте преинициализированных данных (глобальные константы), обычно тоже в конце exe, но перед ресурсами

P.S. Интересующая тебя строка вполне может и составляться в процессе работы из нескольких.
mvf23
дата: [ i ]
  • *
  • Специалист
  • Репутация: 62
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
Небольшая добавка.

Если речь идет о потенциальном вирусе, то скорее всего EXE-файл упакован с помощью специальных утилит (т.е. он сначала распаковывается в памяти а потом уже начинает выполняться). В этом случае внутри файла обычно ничего интесного найти невозможно (т.е. файл - это по сути архив). Ну самый известный "упаковщик EXE" - это наверное UPX, хотя есть ещё десятки других. В этом случае, перед тем как дизассемблировать или пытаться найти что либо просто просмортом файла, нужно его сначала распаковть.

Есть специальный софт для определения, чем был упакован EXE файл, на чем написан и т.п. Сейчас назыание точно вспомнить не могу, по-моему что-то вроде "PE Info", или "PE ID" - что-то в этом духе. Поищи в гугле.
_Azis_
дата: [ i ]
  • *
  • Новичок
  • Репутация: нет
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
Для декомпиляции можно использовать IDA PRO, лучше версия 4.7 или позже, там есть фишка частично восстановить код в C ( а не только ассемблер)

Пути реестра скорей всего будут видны.

Если файл упакован - определяешь чем упакован и распаковываешь его
c0d3r
дата: [ i ]
  • *
  • Любитель
  • Репутация: 7
  • Статус: Давай пообщаемся!
  • Member OfflineМужчинаСвободен
лучший декомпилятор delphi, да ещё и с исходниками - DeDe лежит на wasm.ru
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)

Страницы: (1) 1

Closed TopicStart new topicStart Poll0


Рекомендуем почитать также топики:

Поиск программ

Пиратские и официальные локализации

потоки ввода-вывода

Что это?

Проблема ХР



>