Создано: 6 декабря 2009 17:29 · Поправил: crypto New! Цитата · Личное сообщение · #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)
Ранг: 598.8 (!) Статус: Модератор Research & Development
Создано: 10 ноября 2018 14:23 New! Цитата · Личное сообщение · #2
mak пишет: рефакторинга в своем настоящем понимании не будет
Ага, только по факту пришлось рефакторить )) И он это говорил больше для того, чтобы не было завышенных ожиданий.
На счёт IDR: Актуальное на данный момент по моему мнению - это возможность компиляции не только в Borland C++ Builder 6. И я не имею в виду другую версию Borland C++ Builder, я имею в виду полноценную сборку любым современным компилятором, как это работает с другими проектами, написанными на сях [с плюсами или без]. До этого момента написание кода IDR подразумевает работу в навязанной среде, а это явно не способствует популярности проекта.
Создано: 27 декабря 2018 20:42 · Поправил: TerminatorX New! Цитата · Личное сообщение · #8
crypto Добавьте в проект код поддержки списка функций для HIEW (*.namet). Проверено на версии Hiew`a 8.63 Все гут. "HIEW Generator"--- СПАСИБО ! Авансом.
Создано: 28 декабря 2018 08:00 New! Цитата · Личное сообщение · #9
TerminatorX Новогодний подарок! Спасибо. Включу в проект. на какой RAD Studio пишете ? Да все на том же Билдере 6.0. Выложу, как и обещал, перед Новым Годом.
Создано: 30 декабря 2018 19:27 New! Цитата · Личное сообщение · #11
TerminatorX Твой код добавил, выложил на гитхаб. Спасибо. 64-битную версию IDR тоже выложил, но она пока без декомпилятора, один анализатор, да и тот нужно еще допиливать.
Создание баз знаний: В директорию, где лежат *.dcu, копируем файл dcu32int.exe (утилита Хмельнова изменена под эту задачу). Запускаем dcu32int с параметрами "-K* -U", в результате здесь же будет создана база знаний kb.bin (потом ее переименовываем). Собственно все.
| Сообщение посчитали полезным: TerminatorX, sendersu
Создано: 31 декабря 2018 13:20 New! Цитата · Личное сообщение · #12
С новым почином ! Хорошее дело начато.
Добавлено спустя 4 часа 44 минуты crypto Внесите в IDR добавление пункта меню в проводнике Windows по клику мышки. Program - Settings - Shell Integration
Создано: 2 января 2019 17:01 New! Цитата · Личное сообщение · #13
При возникновении ошибок при внесении / удалении записей в реестре Windows из гуи интерфейса ИДР, а также при открытии исследуемых файлов из системных директорий ОС, нужно собрать файл IDR с дополненым файлом манифеста (права Администратора).
TerminatorX пишет: права Администратора Требовать права Администратора через requireAdministrator - это значит исключить возможность запуска без прав админа. Кому надо, тот явным образом запустит через админа.
Добавлено спустя 8 минут TerminatorX Красные цифры на синем фоне не очень здорово смотрятся. ИМХО, нужно заниматься развитием функционала, а иконки могут и подождать. Я вот, к примеру, хотел добавить в окно просмотра ассемблерного кода функцию поиска и выделять регистры как бы по маске (то есть, при клике на eax должны выделиться не только все точные совпадения, но и ax, al, ah).
| Сообщение посчитали полезным: DimitarSerg, v00doo, Jupiter, DICI BF, sendersu
Создано: 3 января 2019 12:34 New! Цитата · Личное сообщение · #17
Jupiter Частично согласен, но простым начинающим юзерам админ-версия, всем остальным стандартная. Каждый выберет свой вариант. crypto Не нужно так не нужно. Консерватизм не поможет расти проекту. На текущее время не наблюдаю очередь из страждущих улучшить код. Разговоров много а дел мало. Всегда нужны новые люди и их идеи, что является основной ценностью ? Код <> нет. Человек (команда) = Да. В стадии разработки дополнительная вкладка 'MAP' со списком функций.
Создано: 3 января 2019 13:16 · Поправил: v00doo New! Цитата · Личное сообщение · #18
TerminatorX, давай тогда и в фотошоп пихать повышение прав, да и вообще в любой софт, или давай может еще советовать отключать UAC? Это не форум домохозяек и к консерватизму это решение не имеет никакого отношения.
Создано: 3 января 2019 19:19 · Поправил: TerminatorX New! Цитата · Личное сообщение · #20
Добавил вкладку "Map (F11)" , "Tabs - Map", в "Strings" пункт "Copy Lines", копирование выделенных строки / строк. При двойном клике (ЛКМ) на строке списка функций переходите по адресу в "Code Viewer".
Создано: 5 января 2019 10:45 New! Цитата · Личное сообщение · #22
TerminatorX Посмотрел твой код. 1. Мне кажется, Map лучше переименовать, как в ИДА, в Functions 2. В списке каждая запись по сути дублирована, при двойном клике попадаем на один адрес. Лучше оставить одну запись, и выводить не полный прототип, а как у Ильфака - только типы аргументов, если тип неизвестен - "?"). Список большой - нужно сокращать. 3. В связи с появлением твоего списка возникает вопрос: а нужен ли в данном контексте список UnitItems? Может создать еще вкладку Types, куда заносить все типы из всех юнитов, а мою вкладку Types и UnitItems убрать?
Создано: 5 января 2019 16:07 New! Цитата · Личное сообщение · #23
reversecode Мои новогодние каникулы заканчиваются в Вс, а в Пн арбайтен. Частых постов не будет.
crypto 1 Переименовал. 2 Код сырой и недоработан. 3 : a) Оптимально спросить мнение форумчан. b) С "Types" хорошая задумка.
Дополнил поддержку пары ключей ( -c, -e ) командной строки. Примеры: idr.exe BuildKb.exe -c 421348 переход по адресу в "CodeViewer", idr.exe BuildKb.exe -e 421348 переход по адресу в "Explorer". Файл бантика прилагается. --> IDR 5.1.19+Src <--
Создано: 5 января 2019 19:28 New! Цитата · Личное сообщение · #24
TerminatorX Бантики... тут уже кое-кто ими активно занимался А нужны именно такие бантики? Без обид. ЗЫ Я сам продумаю, как лучше сделать, форумчане обычно дают весьма противоречивые советы. Без обид.
Создано: 6 января 2019 21:17 New! Цитата · Личное сообщение · #25
crypto Поддержка командной строки нужна программе, для быстрого перехода из одной программы в другую по текущему адресу (автоматизация рутинных действий). Изначально затачивалась под IDA to IDR, скрипты есть в топике форума. Файл бантика нужно спокойно убрать из сборки, он прилагался с примерами строк как один из вариантов реализации. У каждого реверсера есть базовый набор инструментов : Olly, IDA, IDR ... Если есть возражения ? То аргументы в студию плиз.
Создано: 25 января 2019 15:05 · Поправил: TerminatorX New! Цитата · Личное сообщение · #29
crypto Установил RAD Studio XE5 на Windows 7 32 bit, путь 'C:\Program Files\Embarcadero\RAD Studio\12.0\lib\win32\release' и при создании базы знаний выдает ошибку "Out of memory", утилита dcu32int.exe закрывается ОС. В итоге файл kb.bin (размер 252 МБ) создается (в файле $$$.int сообщение !!!EOutOfMemory: "Out of memory"), как его проверить на корректность данных ? В чем засада ? --> KB XE5 <--
Создано: 26 января 2019 17:14 · Поправил: crypto New! Цитата · Личное сообщение · #31
TerminatorX Наверное слишком много файлов обрабатываете... Вся инфа (а ее много из каждого файла) хранится в памяти. Можно конечно что-то игнорировать (все равно не вся сейчас используется), но это нужно править исходник билдера. Лучше скопировать в отдельную директорию только необходимые файлы, а затем создать в ней юзерскую версию под своим именем. IDR при анализе спрашивает, какую версию грузить, стандартную или нет. Только удалять ее после анализа не надо, при работе она будет необходима
По-поводу твоих доработок: может сначала лучше все проверить, а потом выкладывать? Вещи простые, я их вынужден проверять. Короче, я подправил, что считал нужным.