Сейчас на форуме: -Sanchez-, Alf, Adler, Rio (+5 невидимых)

 eXeL@B —› Софт, инструменты —› Interactive Delphi Reconstructor (IDR). Миттельшпиль
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 47 . 48 . >>
Посл.ответ Сообщение

Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 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)

Гитхаб
Github sources

Скачать:
Страница загрузки

Dropbox автора
https://www.dropbox.com/sh/9ran313nidqtagb/AADl_m_9GVYSiXUviZtDQWQHa?dl=0

Актуальная версия программы:

Исполняемый файл
Внимание! Требует наличия вспомогательных файлов и баз знаний!!!

Базы данных качать по
ссылке.

Для работы необходимо скачать базу знаний + последнюю версию программы



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 09 октября 2010 20:59
· Личное сообщение · #2

Как бы обновление на сайте. База знаний для 2010 закрыта паролем. Если очень нужно, обращайтесь на crypto2011@gmail.com, жертвуйте 15 зеленых или 500 деревянных - и пароль у вас в руках. Для некоторых форумчан могут быть сделаны исключения.
ЗЫ
Если нужно растолковать новые фичи, скажите, дам развернутые пояснения.




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 09 октября 2010 22:27
· Личное сообщение · #3

crypto пишет:
Если нужно растолковать новые фичи, скажите, дам развернутые пояснения.

Fuzzy scan KB

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 09 октября 2010 23:11 · Поправил: GPcH
· Личное сообщение · #4

Зачем сделана возможность ручного выбора версии, если сколько не пытайся выбрать 2009 версию для 2010 файла - все равно не открывает (хотя на открытие файла версия DB вообще никак не должна влиять). Мой декомпиль если не определяет версию - все открывает в режиме Delphi 7 и пока никто не заметил разницу

PS: солюшен то я нашел (всмысле как загрузить 2010 без базы), только вот тут его писать не буду для хитрецов и халявщиков. Кому надо - не пожалейте 15 баксов, возможно новые версии будут выходить чаще. Сам увы этот декомпилятор не юзаю (ибо для себя есть все свое).

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 10 октября 2010 06:12 · Поправил: crypto
· Личное сообщение · #5

GPcH
Дык в 2010 куча изменений по сравнению с 2009, особенно в RTTI, структура, используемая в @InitExe, тоже изменилась.
Сам увы этот декомпилятор не юзаю (ибо для себя есть все свое).
То есть тебе пароль не нужен



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 10 октября 2010 07:07 · Поправил: Error13Tracer
· Личное сообщение · #6

GPcH, может анализатор crypto знает сам какая версия делфи используется
crypto, если не сложно, сделайте выбор пользователя приоритетнее определителю версий, а лучше ещё и галку в настройках, так сказать, чтобы юзер выбирал стоит верить ему или программе, машины тоже не совершенны и огромное спасибо за такой продукт



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 10 октября 2010 09:21
· Личное сообщение · #7

Error13Tracer
GPcH использует, насколько я понимаю, идеи DeDe, а тот, как известно на определенном этапе перестал развивать свою программу.
В следующий билд планруется сделать еще одну фичу: возможность строить свои базы знаний (например, по списку юнитов, используемых в программе, или расширенные за счет других известных библиотек базы) и выбирать их вместо стандартных.



Ранг: 129.7 (ветеран), 2thx
Активность: 0.070
Статус: Участник

Создано: 10 октября 2010 09:24
· Личное сообщение · #8

crypto пишет:
В следующий билд планруется сделать еще одну фичу: возможность строить свои базы знаний (например, по списку юнитов, используемых в программе, или расширенные за счет других известных библиотек базы) и выбирать их вместо стандартных.

Здорово, спасибо!
А можно не вместо, а вместе?



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 10 октября 2010 09:40 · Поправил: crypto
· Личное сообщение · #9

Да простят меня модераторы: здесь требуется пространный ответ, поэтому "правкой" я не воспользовался.
Isaev
Относительно упомянутой фичи. Замечал наверное, что после сканирования в списках элементов стандартных юнитов есть нераспознанные , которые называются просто sub_XXXXXXXX? Не распознаны они могут быть по разным причинам, но глобальная причина одна - отсутствие точного совпадения распознаваемого куска кода и куска кода из базы знаний. IDR проверяет совпадение с точностью до фиксапов и если хотя бы в одном байте произошло рассогласование, проверка прекращается и происходит переход к следующей процедуре базы знаний. Например, может не совпасть смещение поля класса, потому что юнит и исследуемая программа были скомпилированы при разных установках относительно выравнивания. Еще причинами несовпадения могут быть оптимизация и несовпадение версий компилятора.
В любом случае появляются такие пропуски и если пропущенная процедура представляет интерес (например, вызывается в исследуемом месте), то исследователю ничего другого не остается, как лезть в дизассемблированный юнит и находить в нем пропущенную процедуру или пытаться понять, что данная процедура делает.
Я тоже так поступал, а потом придумал эту фичу, существенно упрощающую процесс (иногда попадание 100%, иногда приходится прокрутить вверх или вниз, чтобы найти подходящего кандидата).
Ты выбираешь двойным щелчком пропущенную процедуру, выбираешь опцию "Fuzzy scan in KB" и в полученном окне видишь слева код процедуры, а в правом - кандидата из базы знаний. Число между кнопками Prev и Next - это расстояние от данного положения в базе знаний (как бы курсор в базе данных) и служит для ориентации, чтобы ты всегда мог вернуться в исходное положение и продолжить поиск в другом направлении. Теперь ты сравниваешь содержимое обоих окон, при этом нужно прежде всего опираться на текстовые поля. Содержимое может существенно различаться, и тем не менее при этом может быть полное соответствие (например, в случае оптимизации).
Если ты считаешь, что соответствие найдено, жми кнопку Use, при этом будет заимствован прототип и еще некоторые свойства найденной процедуры.
Я применил термин Fuzzy, потому что процесс на самом деле носит вероятностный ("нечеткий") характер, но к "нечеткой логике" данная фича отношения не имеет.

Azur1d
Ну да, я именно это и имел в виду



Ранг: 133.4 (ветеран), 57thx
Активность: 0.110
Статус: Участник

Создано: 10 октября 2010 13:44
· Личное сообщение · #10

GPcH пишет:
солюшен то я нашел (всмысле как загрузить 2010 без базы)

загрузить то можно, анализ только хуже будет.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 10 октября 2010 14:33
· Личное сообщение · #11

crypto пишет:
GPcH использует, насколько я понимаю, идеи DeDe


у GPcH полностью статический анализатор.



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 10 октября 2010 19:39 · Поправил: crypto
· Личное сообщение · #12

To all
Может кто-нибудь сказать на основе имеющегося опыта работы с программами на Дельфи, какие Дельфийские библиотеки особенно популярны у программистов. Вот я лично знаю про RxLib (кажись так), а есть ли другие? И вторая половина вопроса: где взять соответствующие файлы dcu. Может вопросы не по адресу и мне следует спрашивать подобное где-нибудь в Королевстве Дельфи и прочая?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 10 октября 2010 19:49
· Личное сообщение · #13

indy юзают часто. А лучше просто походить по форумам и поглядеть.



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 10 октября 2010 20:00 · Поправил: crypto
· Личное сообщение · #14

Archer
Это юниты, начинающиеся на id (входят в Дельфи по умолчанию)? У меня в базы включены все юниты, которые входят в Дельфи (берутся из соответствующей директории).
А вот к примеру я часто вижу юниты, начинающиеся на tx или cx, в Инете ничего не нашел. Может быть про них что-то известно. Ну не может быть совпадений названий более чем в пяти программах!
Но ты прав - придется походить, поспрашивать.



Ранг: 18.8 (новичок), 21thx
Активность: 0.030
Статус: Участник

Создано: 10 октября 2010 20:24
· Личное сообщение · #15

crypto часто используют ещё MyDAC (для MySQL), и AlphaSkin(понятно для чего) бывает.




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 10 октября 2010 21:29 · Поправил: 4kusNick
· Личное сообщение · #16

Порой встречаются проги с использованием KOL\MCK (http://kolmck.net/).

На счет IDR - стоит ли в будущем ожидать многопоточности при анализе?
И иногда нехватает вывода строк (ANSI и UNICODE) в дизасме при первичном осмотре кода.
Ещё некоторые строки не попадают во вкладку Strings (при осмотре этих строк, в Explorer'е видно, что это обычные PAnsiChar).

О, и ещё - когда закрываешь IDR - уже не сможешь отменить его закрытие - не важно - согласишься сохранять проект или нет. Это не так важно, но для юзабилити не будет лишней кнопка Cancel в том MessageBox'е.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 137.9 (ветеран), 45thx
Активность: 0.080
Статус: Участник

Создано: 10 октября 2010 22:39 · Поправил: yanus0
· Личное сообщение · #17

есть такая тема руБорде [url=http://forum.ru-board.com/topic.cgi?forum=35&topic=47325&start=72 0#lt ]->Link<-[/url] по выкладке коммерческих компонентов для делфи там посмотреть и спросить по названиям компонентов, если надо будет доступ к обменнику с компонентами в пм. + jvcl.delphi-jedi.org/ www.devexpress.com/




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 10 октября 2010 22:53
· Личное сообщение · #18

crypto пишет:
Дык в 2010 куча изменений по сравнению с 2009


Я понимаю, но почему если я выбираю режим Delphi 2009, то он не применяется к EXE скомпилированном в 2010? Ведь если можно выбрать, то почему выбор пользователя не приоритетнее внутреннего?

crypto пишет:
То есть тебе пароль не нужен


Чессно - неа. Если только для коллекции. Иначе бы наравне со всеми отбашлял 15 баксов. Вообще из реверсерского софта юзаю только HIEW, Olly и свои наработки.

crypto пишет:
GPcH использует, насколько я понимаю, идеи DeDe


Из DeDe у меня ни строчки. Честное слово. Формат баз полностью свой. Просто у меня в базах хранятся ТОЛЬКО сигнатуры функций и контрольная сумма для их определения. Причем контрольная сумма - довольно интересная собственная идея, которую я нигде не встречал, позволяющая контрольной суммой в 4 байта полностью описать всю функцию с учетом релоков. Ничего лишнего я в базах не храню ибо при декомпиляции практически никому не нужны типы/структуры и так далее.

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 11 октября 2010 00:03
· Личное сообщение · #19

crypto
Не знаю на сколько популярно, но думаю лишним не будет)
DCPcrypt www.scramdisk.clara.net/

ещо такое знаю sourceforge.net/projects/tplockbox/files/

для интернета indy и synapse

-----
zzz




Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 11 октября 2010 00:53
· Личное сообщение · #20

crypto
crypto пишет:
А вот к примеру я часто вижу юниты, начинающиеся на tx или cx, в Инете ничего не нашел.

cx - видимо ето из DevExpress - очень популярных компонентах
www.devexpress.com/Products/VCL/
tx - трудно сказать, а можно сюда примеры названий?
в чем вообще задумка - начать делать юзерские KB?
если да - то ето может иметь далекие последствия! (аналог - *.sig/IDA)




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 11 октября 2010 01:28
· Личное сообщение · #21

Самые популярные ИМХО

Jedi
DevExpress
TMS Components Pack

-----
Yann Tiersen best and do not fuck




Ранг: 129.7 (ветеран), 2thx
Активность: 0.070
Статус: Участник

Создано: 11 октября 2010 02:01
· Личное сообщение · #22

То что в голову пришло:
Jedi, RxLib, DevExpress, ehLib, DCPCrypt, Synapse, Indy, AlphaSkins, ZeosDBO, FIBPlus, MyDAC, FastReport



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 11 октября 2010 07:59
· Личное сообщение · #23

Спасибо всем. Все предложения, замечания постараюсь учесть. Сообщения об ошибках (вместе с файлом) шлите мне на crypto2011@gmail.com




Ранг: 107.3 (ветеран), 5thx
Активность: 0.20.04
Статус: Участник

Создано: 11 октября 2010 08:24
· Личное сообщение · #24

SUIPack забыли



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 11 октября 2010 08:49
· Личное сообщение · #25

по по-поводу компонент - в идеале надобно б голосование сделать - есть такая фича в здешнем форуме?




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 11 октября 2010 15:11
· Личное сообщение · #26

crypto пишет:
какие Дельфийские библиотеки особенно популярны у программистов.

Помимо того что написал Azur1d RegExpr,GraphicEx
crypto пишет:
Это юниты, начинающиеся на id (входят в Дельфи по умолчанию)?

да, но могут быть поставленны отдельно более новые версии
4kusNick пишет:
Порой встречаются проги с использованием KOL\MCK

+1 если сделаешь поддержку, будешь вроде первый в этой области, но гемора там хватает.

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 11 октября 2010 16:37
· Личное сообщение · #27

KOL/MSK такая редкость, что не стоят внимания кодера декомпиля. Я за более чем 5 летний опыт только один раз столкнулся с этой фигней да и то это была какая то гавнопрожка, олли за глаза хватило.

-----
Yann Tiersen best and do not fuck





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 11 октября 2010 16:51
· Личное сообщение · #28

да, кол это редкость, а вот всякие скинабельные компоненты это да, но и то не так уж и часто бывают, вот DCPCrypt нужно добавить, в 70% прог, что мне попадались с каким либо крипто/хешами, то они были реализованы с его помощью... хотя и в этой поставке справляется неплохо с этой либой, ещё бы было бы неплохо FGInt и еже с ним...

-----
Лучше быть одиноким, но свободным © $me





Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 11 октября 2010 19:19
· Личное сообщение · #29

Да, я согласен, что KOL/MCK штука экзотическая, упомянул про неё лишь потому, что бывают проекты целиком на ней, что в случае большого и толстого проекта причиняет неслабую головную боль при ковырянии. Однако, не могу не согласиться, что если и добавлять его в todo, то в самый конец списка)

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 13 октября 2010 19:31 · Поправил: crypto
· Личное сообщение · #30

Полазил я по разным местам. Получается, что собрать коллекцию dcu разных вендоров под разные версии Дельфи будет крайне затруднительно. Даже не знаю, как это лучше сделать... Вендоры как правило архивы в открытом доступе не держат. Не обращаться же к ним с просьбой прислать старые файлы за бесплатно?
Так что давайте, что у кого в загашнике есть, кидайте мне, я буду разгребать.



Ранг: 137.9 (ветеран), 45thx
Активность: 0.080
Статус: Участник

Создано: 13 октября 2010 20:44
· Личное сообщение · #31

crypto
А не лучше отдельный сделать генератор баз? У кого что есть, тот и сделает, а если обновление выйдет для компонентов, тебя тревожить опять? Или это не выход?


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 47 . 48 . >>
 eXeL@B —› Софт, инструменты —› Interactive Delphi Reconstructor (IDR). Миттельшпиль
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати