Ранг: 188.1 (ветеран), 419thx Активность: 0.14↘0 Статус: Участник
Создано: 06 декабря 2009 17:29 · Поправил: crypto · Личное сообщение · #1
IDR (Interactive Delphi Reconstructor) – декомпилятор исполняемых файлов (EXE) и динамических библиотек (DLL), написанных на языке Delphi и выполняемых в среде 32х-разрядных операционных систем Windows.
Программа, прежде всего, предназначена для компаний, занимающихся разработкой антивирусного программного обеспечения. Она также может в значительной мере помочь программистам в восстановлении утраченных исходных текстов программ.
Текущей версией программы могут обрабатываться файлы (как GUI, так и консольных приложений), скомпилированные компиляторами версий Delphi2 – Delphi2010. Ведется работа по поддержке Дельфи 2011.
Конечной целью проекта является разработка программы, способной восстановить большую часть исходных Delphi-текстов из скомпилированного файла, но пока IDR, как и другие Delphi-декомпиляторы, сделать этого не может. Тем не менее, IDR может значительно облегчить такой процесс. По сравнению с другими декомпиляторами анализ, выполненный IDR, отличается наибольшей полнотой и достоверностью. Кроме того, высокая интерактивность делает работу с программой комфортной и (не побоимся этого слова) приятной.
IDR выполняет статический анализ (анализируемый файл не запускается на выполнение), что позволяет безопасно изучать вирусы, трояны и прочие приложения, запуск которых опасен или нежелателен.
Программа не требует установки и не делает никаких записей в реестр Windows.
Официальный сайт: kpnc.org/idr32 [Note] Недоступен после трагической гибели Криса (RIP)
Тут такое дело. Для фиксирования багов понадобилась мне процедура unmangle. Исходники ее нашел в Дельфи, более или менее свежие. Однако процедура наворачивается на некоторых простых конструкциях (например, @System@@GetMem$qqri). Я даже нашел причину, но не могу понять, как исправить ошибку? Может быть кто-то уже встречался с подобными вещами и может подсказать?
Я себе эту функцию из C++ брал. Потому использую в декомпиляторе внешнюю DLL для этого. Могу поделиться - пиши на email, хотя думаю для тебя это не решение.
----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!
ajax Я его в начале и взял. Только во-первых, он для С++, а мне нужно разбирать декорированные имена Дельфи, а во-вторых, наворачивается на простых именах вроде @System@@GetMem$qqri. Переписывать его под Дельфи не хочется, проще все-таки свой парсер написать.
crypto ТУТ почти полностью расписано в разделе "8.2 Borland name mangling". В таблицах расшифровка параметров. Есть почти полная самопальная реализация на плюсах. PS. Единственный встреченный мною документ с такой полнотой описания.
cryptocrypto пишет: Я немецкий не очень знаю. Может пояснишь, что означает квалификатор t1 (t2,...)? Я так уловил, что это повторение (аргумента номер 1, 2?) да, я так же понял
25 августа на 1 неделю будет выложена ограниченная приватная версия IDR (с некоторыми ограничениями, как сами понимаете). Версия практически полная (т.е. декомпилировать сможете, почти...). Ладно, сами увидите. За паролем обращайтесь ко мне лично. Пароль не совпадает с уже известными.
BoRoV Нет. Я уже отписался по-этому вопросу Isaev. Плагины для загрузки форм существуют с Новогодней версии. Но поскольку подарок был испорчен, у меня не было настроения описывать подробности и выкладывать примеры.