Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Декомпиляция VC++ 6  (Прочитано 32382 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Романс
Гость
« : 18-08-2004 22:57 » new

Коллеги подскажите прогу по декомпиляции VC++6 с exe или с ассемблера.

пожалуйста очень нужно!
Записан
Anchorite
Гость
« Ответ #1 : 19-08-2004 02:50 » 

...декомпиляции VC++6 с exe или с ассемблера
Это как?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 19-08-2004 09:54 » 

Романс, с екзешника можно только дизассемблировать и получить голый ассемблерный текст
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 19-08-2004 10:30 » 

Цитата

с екзешника можно только дизассемблировать

 Ну почему же? Очень давно была такая мулька
код получался приколненький
на немеренное кол-во строк и немеренное кол-во функций
с прикольненькимм названиями
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Романс
Гость
« Ответ #4 : 20-08-2004 21:18 » 

Желательно с exe.
Нужен исходный код, хотябы мутный но понятный *.с, *.h.
Под VB6,5,4 , C++ (старый), Pascal, .NET и всех остальных, способ мной уже изучен. А вот VB6 не как не найду.
Sla на немеренное кол-во строк и немеренное кол-во функций как-то все остольые справляються.
Записан
Романс
Гость
« Ответ #5 : 20-08-2004 21:23 » 

Если кто не хочет обсудить публично, буду очень рад приватной помощи kuban_home@rambler.ru
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 23-08-2004 08:08 » 

Алексей1153, есть такие тулы, по крайней мере у наших военных/ФСБ.

Задача -- исследовать софт вероятного противника на наличие закладок.  Для этого пробуют восстановить исходный текст программы по .exe или объектным файлам.  Подробностей не знаю.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 23-08-2004 09:52 » 

npak, восстановить-то не проблема - тут всё понятно, процесс механический, но имена-то будут типа
label1
label2
label3
proc1
proc2
proc3

- и разобраться как это всё работает ох не просто...
Записан

npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 23-08-2004 10:09 » 

Алексей1153,

Это, разумеется, так.  

Но, с другой стороны, надо уметь восстанавливать циклы, if и switch, разбираться с оптимизацией.  Кроме того, надо уметь поддерживать работату с виртуальной и физической памятью, с устройствами и прерываниями.  Там и помимо непонятных имён и меток проблем хватает.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Романс
Гость
« Ответ #9 : 25-08-2004 23:00 » 

Но всё можно использовать все библиотеки есть для компиляции и оптимизации в VStudio, а значит exe декомпилировать не каких проблем не составит. Только нужна прога которая раставит всё по местам!

У кого нибудь есть, если не жалко.
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #10 : 27-08-2004 15:10 » 

говорят IDA хорошая весчь(даже самая лучшая), но я не пробовал. И код естественно ассемблерный.
Записан

Странно всё это....
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #11 : 27-08-2004 15:16 » 

LogRus, вот еще ссылочка на ету тему.
http://faqs.org.ru/softw/debugger/
Записан

Странно всё это....
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #12 : 27-08-2004 16:25 » 

Специально для Влада:
Это точто даёт Яндекс первые ссылки сразу приводят к искомому:
http://www.yandex.ru/yandsearch?rpt=rad&text=%E4%E8%E7%E0%F1%F1%E5%E1%EB%E5%F0
Вот к этому приводят:
http://portal.ostrov.net/modules/mydownloads/download.php?item_id=15
http://alchy.bizname.ru/downloads.php?action=download&ssid=7c87e05c4a0b3476885540bcfcf696fa&id=4
Записан

Странно всё это....
Романс
Гость
« Ответ #13 : 29-08-2004 19:25 » 

LogRus, Сенкью, ето у мено довно уже стоит, IDA дезит прогу в ассемблер, но исходник в нём трудно просмотреть. Soft-ICE тоже для крекеров исполнение команд показывает, но не исходник Жаль
Записан
Anonymous
Гость
« Ответ #14 : 29-08-2004 19:27 » 

А давайте продвиним мысль, давайте обсудим как компелируеться VC6 в Студии, может удасться запусть процесс в обратную сторону, чем переберать весь exe?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #15 : 30-08-2004 04:57 » 

Гость, Романс, может они такие декомпиляторы и существуют, но процесс перевода ассемблерного текста в текст С++ имхо плохо обратим. Например тот же циклический битовый сдвиг или яная работа со стеком ...
Записан

Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #16 : 30-08-2004 09:32 » 

вообще под Линуксом (про винду не скажу) если программа собрана в режиме отладки, то дебагер код C/C++ показывает. А exe в С/С++ перевернуть проблема особенно если какие нибуть хитрые режимы оптимизации использовались. IDA считается чуть ли идеалом в дезассемблировании. Под дос говорят еще soucer хорошь дока по ниму есть по тойже ссылке.
Записан

Странно всё это....
Романс
Гость
« Ответ #17 : 30-08-2004 21:41 » 

Деза хороша когда ищешь какой-то отдельный процесс, а когда нужно знать весь процесс работы увы  Я шокирован! .

А оптимизация эта таже компиляция, он же не ехе оптимизирует, а исходняковый код, а потом пихает его в бинарник.

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

Алексей1153, ну можно напрямую сделать прогу которая исходняк из ехе вытаскивала, по архитектуре ИДЫ: анализ, декомпиляция, а библиотеки брать из студии.
Хотя о чём разговор, VB и оптимизированые хавает, даже без библиотек студии. А в самой студидии есть свой дасм на С#, хоть и для нета.
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #18 : 30-08-2004 22:27 » 

Романс, оптимизирует он именно бинарный код. Если код без какой либо оптимизации он еще вполне читаем и то не уверен. А вот если с оптимизацией, то тут уже черт ногу сломит. Стоит только пудумать о перемешивании иструкций с целью оптимизации работы конвейров процессора не говоря уже про выравнивание по адресам. Оптимизация цикла под размер загружаемого процом куска памяти(не помню как называет). Особенно тяжело это будет когда простая програмулька начинает использовать всякие расширенные инструкции вроде SSE, MMX. Есть в интернете. Я видел примеры когда вполне читаемый логичный ассемблерный код простенького цикла работающего с целыми числами привращался в совершенно ничитаемую чушь которая давала офигенный прирост скорости и это лишь потому что там где-то что-то куда-то выровненно добавленны пустые инструкции и т.д. в итоге процессор умудряется весь цыкл захватить за 1 один раз и одна из самых длительных в операций(для того случая) переход к новой итерации от конца цикла не требовал времени.

Насчет C# и .NET вчастности насколько я знаю в .NET используются не совсем реальные команды процессора там используется понятие управляемого кода, который является почти готовым к исполнению.

Есть на самом деле очень много нюансов при обратной разработке. VB вполне может включать в программу какие то специальные записи об исходном коде. Или результирующий код компилятора VB позволяет себя легко анализировать. Может в нём как в DLL хранятся записи с названиями функций.
Записан

Странно всё это....
grozny
Гость
« Ответ #19 : 30-08-2004 22:45 » 

IDA Pro - лучший дизассемблер из опробованных. Умеет опознавать код из стандартных библиотек многих компиляторов, в т.ч. Вижуал Си, Борланд и пр.

Платный, но если вдумчиво искать, можно и на халяву набрести.

http://www.datarescue.com/idabase/
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #20 : 31-08-2004 09:58 » 

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

Некоторые оптимизации можно распознать и восстановить из них исходный код, а некоторые нет.  Например, развёртывание inline процедуры фиг восстановишь.

ДотНет -- это совсем другая история.  Они транслируют С#, VB и прочие языки в некоторый специальный интерпретируемый язык, Intermediate Language (вроде байт-кода Java).  Assembly и приложения распространяются откомпилирванный в IL, при установке или первом выполнении IL транслируется в машинный язык целевой платформы.  Для таких приложений процедура дизассемблирования будет состоять из двух шагов -- сначала надо по машинному коду восстановить текст на IL, а уже из него попробовать сделать С#.  Это, по-моему, очень сложная задача.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Anonymous
Гость
« Ответ #21 : 31-08-2004 20:20 » 

grozny,  немножко продвинулись и как ты строишь исходняк? У меня правда IDA под досом только работает.

Значит можно эксплотировать ИДУ. можно ассоциативный код по карте построить, а потом ручками вписать. Попробуем.

npak, .NET cогласен особый разговор там управляймый код и через него выкачиваем архетектуру.

Но в VB, Дельфи, Борланде, всё это есть тоже и пока они прекрасно декомпилируються, ну бываю конечно приколы которые нужно устронять в ручную, а вот VC++ до сих пор такой гемморой, пока только проекты Жаль
Записан
grozny
Гость
« Ответ #22 : 31-08-2004 20:57 » 

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

Однако мне кажется, что в последних версиях есть возможность восстановления С. Конешно, я пользовал версию, которая работает под виндой. Версия ИДы, которая идёт только под ДОС, вышла очень давно и с тех пор они добавили очень много. Или тебе надо ДОС-программы (под экстендеры, в реальной моде?) дизассемблить?

как по шагам разобрать программу на запчасти могу написать попозже - счас ИДА не под рукой, я пользуюсь не каждый день, с полгода назад последний раз была нужда кой-чего поковырять. Да и для самой ИДы 4.5х есть масса туториалов - пошукай в форумах, рунете. на wasm.ru был? Оч. полезный ресурс для реверс-инженерии.
Записан
Романс
Гость
« Ответ #23 : 04-09-2004 14:46 » 

Вот уже ближе.

ИДА последняя, но там ехе под винду ошибку выдаёт.
Прога которая представляет интерес написана под  VC6+ под ДОС.

"как по шагам разобрать программу на запчасти могу написать попозже" - а это крайне интересно.

wasm.ru разговор, о всём и в то же время не о чём, конкретного не чего не узнал. Жаль
Записан
buhak
Гость
« Ответ #24 : 30-05-2007 11:03 » 

Желательно с exe.
Нужен исходный код, хотябы мутный но понятный *.с, *.h.
Под VB6,5,4 , C++ (старый), Pascal, .NET и всех остальных, способ мной уже изучен. А вот VB6 не как не найду.
Sla на немеренное кол-во строк и немеренное кол-во функций как-то все остольые справляються.

раскажи способ на C++
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines