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

 eXeL@B —› Софт, инструменты —› Interactive Delphi Reconstructor (IDR). Миттельшпиль
<< 1 ... 36 . 37 . 38 . 39 . 40 . 41 . 42 . 43 . 44 . 45 . 46 ... 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
Статус: Участник

Создано: 12 февраля 2017 17:28
· Личное сообщение · #2

gazlan
Дык, кнопочка Src в CodeViewer.

| Сообщение посчитали полезным: gazlan, -=AkaBOSS=-

Ранг: 431.7 (мудрец), 391thx
Активность: 0.730.32
Статус: Участник

Создано: 12 февраля 2017 18:18 · Поправил: dosprog
· Личное сообщение · #3

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

[чисто оффоп]
Кстати, интересный факт, что, даже при наличии доступных сорсов, клонов IDR что-то не наблюдается.
И да, пользовать софтину приходится изредка, когда dede не справляется, только в познавательных целях.
Познать, где чего ковырнуть..
[/чисто оффоп]

--Добавлено--
crypto
да, есть такое. Слишком всё это сложно потому что.
Кто такое готов и в состоянии потянуть, тот и в состоянии взвесить целесообразность.
Такая вот "защита копирайта", в чистом виде.



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

Создано: 12 февраля 2017 22:06
· Личное сообщение · #4

dosprog
ИМХО, если предположить невозможное (Ильфак выложит сорцы на github), то клоны тоже вряд-ли появятся. То же можно сказать про любой компилятор.
ЗЫ
Кстати, исходники Dede давно уже открыты Но... IDR не является его клоном.



Ранг: 0.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 февраля 2017 23:09
· Личное сообщение · #5

Маленький багрепорт, но для начала спасибо автору за незаменимый инструмент.
В прошлой версии build 15 test (или как-то так) с этим было всё ок.
1. Когда курсор мыши стоит в строке меню, в фокусе листинг и в нём выделена любая строка, нажимаем любую стрелку на клавиатуре - получаем пустой MessageBox с ошибкой.
Баг, похоже, в lbCodeClick:
int x = lbCode->ScreenToClient(Mouse->CursorPos).x;
Я нуб в дельфи, но по-моему нужно определять индекс выделенного элемента, вместо получения позиции мыши. Выделять элементы листбокса можно и с клавы, мышь при этом может быть где угодно.
2. Заходим в процедуру даблкликом, нажимаем esc или <- для возврата в позицию call'а, но оказываемся в самом начале родительской процедуры. Интересно, что с джампами и переходом по клавише g такого не происходит...



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

Создано: 22 февраля 2017 20:28
· Личное сообщение · #6

pawel97
Спасибо. Посмотрю, тем более выкроил время на развитие.

| Сообщение посчитали полезным: HandMill, sendersu

Ранг: 42.9 (посетитель), 13thx
Активность: 0.040
Статус: Участник

Создано: 01 марта 2017 02:21
· Личное сообщение · #7

Вопрос + предложение по улучшению IDR:

Tакая ситуация - кнопка Hbutton11 не видна в form viewer-е:



а мне надо в процедуру Hbutton11OnClick, так как кнопка не видна на форме следовательно и не возможно навигация в обработчик онкликк, может добавить опцию которая при дабл клике на обработчик onclick открывала бы код Hbutton11OnClick процедуры ?

Есть у кого идеи как найти код обработчика Hbutton11OnClick ?




Ранг: 307.9 (мудрец), 196thx
Активность: 0.180
Статус: Участник

Создано: 01 марта 2017 03:20 · Поправил: mysterio
· Личное сообщение · #8

cryptX пишет: при дабл клике на обработчик onclick открывала бы код Hbutton11OnClick процедуры ?
По умолчанию так и есть - если только адрес определен.
По результатам гадания на "скриншотной гуще" - IDR не определил адрес обработчика - вероятнее всего он "смотрит в космос" (кривой дамп или ваш вариант ? например как в "прошлой теме").

-----
Don_t hate the cracker - hate the code.


| Сообщение посчитали полезным: cryptX

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

Создано: 03 марта 2017 10:47 · Поправил: crypto
· Личное сообщение · #9

cryptX
Если бы адрес был определен, было бы OnClick = XXXXXX. Переход на адрес обработчика возможен двумя способами: double-click на строке OnClick=XXX или click правой клавишей на нужном элементе и выбор нужного обработчика в popup-menu.
Кстати, можно ведь пользоваться алиасами типов контролов на формах. В вашем случае тип контрола HButton11 можно изменить на визуальный TButton или TBitBtn. Тогда форма приобретет более наглядный вид.



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

Создано: 25 марта 2017 08:35
· Личное сообщение · #10

pawel97
Исправил, свежая версия на github




Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 26 марта 2017 21:41 · Поправил: AKAB
· Личное сообщение · #11

А можно ссылку? я не могу найти



Ранг: 6.1 (гость), 23thx
Активность: 0.010
Статус: Участник

Создано: 26 марта 2017 21:50
· Личное сообщение · #12

Собранный исполняемый фай

| Сообщение посчитали полезным: AKAB


Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 26 марта 2017 22:10 · Поправил: AKAB
· Личное сообщение · #13

у меня проблема возникала с программой"system administrator"
эта проблема не возникает когда я пользуюсь старой версией IDR
видео+программа
https://www.solidfiles.com/v/ZaNjjZyyrj6p3



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

Создано: 27 марта 2017 08:06
· Личное сообщение · #14

AKAB
Только что проверил: сообщения Handler not found не было, все контролы обработаны корректно. Залил исполняемый файл на github еще раз (https://github.com/crypto2011/IDR)




Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 27 марта 2017 16:35 · Поправил: AKAB
· Личное сообщение · #15

теперь вот такое вылизает

и Handler not found тоже



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

Создано: 27 марта 2017 18:14
· Личное сообщение · #16

AKAB
Похоже, что-то у вас не то с базами знаний, потому что у меня все проходит тип-топ. Перезалейте с официального сайта (http://kpnc.org/idr32/ru/).
ЗЫ
А почему надпись в диалоге на арабском?




Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 28 марта 2017 03:38
· Личное сообщение · #17

crypto пишет:
А почему надпись в диалоге на арабском?

я араб



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

Создано: 31 марта 2017 09:45 · Поправил: crypto
· Личное сообщение · #18

Нужны нетривиальные 64-битные программы на Дельфи для тестирования.
ЗЫ
TheBat64 у меня есть
ЗЫЗЫ
Присылайте, плиз, сами файлы, а не инсталляции, если нетрудно



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

Создано: 05 апреля 2017 18:18
· Личное сообщение · #19

Исправил небольшой баг (несоответствие версий среды и dcu, редко наверное встречается, ИМХО), файл на github

| Сообщение посчитали полезным: v00doo, sendersu, gazlan, zNob


Ранг: 170.1 (ветеран), 96thx
Активность: 0.090.01
Статус: Участник

Создано: 06 апреля 2017 00:11
· Личное сообщение · #20

Открываю сохраненный проект - какая-то фигня со шрифтами.


0409_06.04.2017_EXELAB.rU.tgz - BUG.png



Ранг: 80.6 (постоянный), 194thx
Активность: 0.10.04
Статус: Участник

Создано: 06 апреля 2017 00:36
· Личное сообщение · #21

gazlan, в параметрах шрифтов выбери размер, он его скипнет после рестарта будет нормально.

| Сообщение посчитали полезным: gazlan

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

Создано: 06 апреля 2017 21:42 · Поправил: crypto
· Личное сообщение · #22

Баг (некорректно извлекались UString) пофиксен. Файл на github
Импорты тоже пофиксил (не извлекались прототипы). Информация о типе полей классов, вводимая в процессе декомпиляции, теперь сохраняется в классе.
Файл там же.

| Сообщение посчитали полезным: HandMill, SReg, sendersu, zNob, v00doo, Jim DiGriz


Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 10 апреля 2017 12:51 · Поправил: ajax
· Личное сообщение · #23

багреп - к фигам отсылает, типа импорт не валидный если через cff explorer добавить функу в софт (по ординалу?)
да, и что за фигня сохранять проект в своей папке по дефолту

c38c_12.04.2017_EXELAB.rU.tgz - xe_101.rar

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




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

Создано: 10 апреля 2017 19:00 · Поправил: crypto
· Личное сообщение · #24

ajax
Подробнее, плиз, мне в этой фигне разбираться некогда. Как положено: подробно описываем, что сделали, прикрепляем файл и посылаем афтару.
ЗЫ
idp проект сохраняется по дефолту там же, где лежит исходный файл. Если речь идет о Дельфи-проекте, то да, это фигня, но никто не жаловался.



Ранг: 27.8 (посетитель), 13thx
Активность: 0.030
Статус: Участник

Создано: 19 мая 2017 01:12 · Поправил: microxa
· Личное сообщение · #25

crypto
даааа... вот это проектищще! (право-же поразительно, из за какогото делфи,
стоко работы на плюсах)...

Забуилдился с полпинка, на тестовой сборке BCB6, с обновами от 2003
так что если интересно то вот даже отбил старичка от регнумбы:
Code:
  1. C:\BCB6\Bin>fc /b bcb.exe bcb.exe.orig
  2. Сравнение файлов BCB.exe и BCB.EXE.ORIG
  3. 0000529C: 31 55
  4. 0000529D: C0 8B
  5. 0000529E: C3 EC
  6. 00018300: 31 55
  7. 00018301: C0 8B
  8. 00018302: C3 EC

(ну чисто в охотку).

Хорошо что не потянул всяких сторонних зависимостей.

А вот что с сайтом где базы то были... усё штоле?

а то вот еще есть в кеше гугля, новости:
Code:
  1. 11.02.2017        
  2. Исполняемый файл IDR и исходники KbBuilder теперь доступны на github.com
  3. 29.09.2016        
  4. На сайте выложена последняя на данный момент версия программы и новые базы знаний для неё.


Так а буилдер баз знаний, присутствует или нет. на гит хабе то то?

А то шото ток один IDR.bpr

Ну я чисто так... буилдер потестить.. Умели же делать...
Хорошо...

UPD
а, ссори разобрался.. с буилдером (который баз знаний)... да..

DimitarSerg

>>Вроде не было ссылки в теме, как я понимаю tmcdos перенес проект с BCB на дельфу )
>>https://github.com/tmcdos/IDR

Дааааа.. вот это DPR-ищще... офигеть как он это сделал? почти полметраж в main.cpp и еще там..

афигеть... ради этого даже пришлось квест с Virtual Trees проходить.. (на дельфу его не ставил,
а DCC32 -шкой сконоплил... Вроде мордочка работает...



офигеть... ну..

базы.. базы.. да..

попробую их сделать.. но какбы.. ну нет их и ладно.. а то хоть как нибудь распарсить бинарь... Посмотреть пример работы с msdis100.dll (древней костей мамонта...)..

А так IDR[b], помницо не слишком осилил FL Studio.. (не то падал. не то еще чего..) както пришлось забить..


[b]shellstorm

>>Нет никакого квеста:
Оставь свои поверхностные знания при себе...

Прошу прощения но внесу струи некоторого поноса, так как:

Программа очень сложная, любая мелочь может пагубно повлиять.



Версий этого контролла овердофига, и какая именно использовалась при
сборке заявленной как "Use Delphi 7 to build the project" - фик знает.

итого:
первый облом,
Code:
  1. Idr.dpr(39) Fatal: File not found: 'ExceptionLog.dcu'
  2. решился каментом
  3.  
  4. uses
  5.  // ExceptionLog,

далее потянуло, эту приблуду на 1.3метра писанины.. Которая
послала (благо что с рекомендациями):
Code:
  1. VirtualTrees.pas(51) Fatal: This version supports only RAD Studio XE3 and higher
  2. . Please use V5 from  http://www.jam-software.com/virtual-treeview/VirtualTreeVi
  3. ewV5.5.3.zip  or  https://github.com/Virtual-TreeView/Virtual-TreeView/archive/V
  4. 5_stable.zip

Вот с этим хз, выбрал 5_stable.zip, так как там видимо последняя версия
с поддержкой "какбэ старых" компилеров.

После чего послала:
Code:
  1. VirtualTrees.pas(4086) Fatal: File not found: 'GraphUtil.dcu'
  2. решилось каментом, в хуй неупавшего модуля
  3. ;//GraphUtil; // accessibility helper class


Потом немного интересней:
Code:
  1. Heuristic.pas(1883) Warning: Variable 'adr1' might not have been initialized
  2. Heuristic.pas(1961)
  3. Threads.pas(2350) Error: Left side cannot be assigned to
  4. Threads.pas(2351) Error: Left side cannot be assigned to

решилось опцией -$J+ (разрешения писать в константы )

Но вот на этом месте
Code:
  1. Main.pas(18788) Error: Undeclared identifier: 'GetDataFromGrid'

пришлось уже прикачивать версию 5.3.3, и уже подумывалось о полном собрании
сочинений этой хуеты. Но, оказалось что GetDataFromGrid под приватом
Code:
  1. private
  2. ....
  3.     procedure GetDataFromGrid(const AStrings 
  4.  
  5. решилось перемещением в 
  6.  
  7. public
  8. ....
  9.  


shellstorm, так что сказки оставь для индюка..

а вот орижинал, урезаный BCB в котором ничего нового после 2003г


зачем было впиливать виртуал трилист, а? там и так один сплошной ворнинг насчет неинициализированых данных и тому подобного..

Просто дельфи за 1.5секунды компилит, и все как то попроще..



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 19 мая 2017 09:17
· Личное сообщение · #26

microxa пишет:
А вот что с сайтом где базы то были... усё штоле?

Его хостил Крис, а он погиб этой зимой



Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 19 мая 2017 10:56
· Личное сообщение · #27

microxa пишет:ради этого даже пришлось квест с Virtual Trees проходить

Нет никакого квеста: https://github.com/Virtual-TreeView/Virtual-TreeView
Проект автоматически транслируется в delphi и builder, при этом собирается без каких либо правок, если собирать древним компилятором, сложности возникают при переносе на современный компилятор, начиная с юникода и заканчивая размером типов, но тоже ничего сложного, автор не тянул никаких библиотек, поэтому сохранена совместимость на процентов 90.

| Сообщение посчитали полезным: ajax


Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 19 мая 2017 11:10
· Личное сообщение · #28

microxa пишет:
афигеть... ради этого даже пришлось квест с Virtual Trees проходить.. (на дельфу его не ставил,
а DCC32 -шкой сконоплил... Вроде мордочка работает...
офигеть... ну..
базы.. базы.. да..
попробую их сделать.. но какбы.. ну нет их и ладно.. а то хоть как нибудь распарсить бинарь... Посмотреть пример работы с msdis100.dll (древней костей мамонта...)..

а нахрен нам это? если все будут свои задротства вставлять в темы, то это будет не форум, а шняга какая-то

-----
От многой мудрости много скорби, и умножающий знание умножает печаль


| Сообщение посчитали полезным: shellstorm

Ранг: 13.1 (новичок), 18thx
Активность: 0.020
Статус: Участник

Создано: 19 мая 2017 11:39
· Личное сообщение · #29

microxa пишет:
базы.. базы.. ну нет их и ладно..

IDR 2.6 (01.04.2017) + Базы
Пароль: www.exelab.ru

| Сообщение посчитали полезным: microxa, Qamani

Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 19 мая 2017 12:38
· Личное сообщение · #30

microxa пишет: Оставь свои поверхностные знания при себе...

Учитывая:
я все же немного знаю о чем говорю. Одно лишь удивляет, куда смотрят модераторы и почему еще не забанили школьника.

| Сообщение посчитали полезным: ajax

Ранг: 27.8 (посетитель), 13thx
Активность: 0.030
Статус: Участник

Создано: 20 мая 2017 00:47
· Личное сообщение · #31

Потестил d7- сборку на базах.. Контрол виртуального древа (который порос
корнями в 600кб main.pas ), не отображается, но, тем не менее,
проект показал значительную функциональность...

Для любопытствующих, этой тематикой, приведу пример отработаной техники в
конкретном приеме хука
>> IDA->Hex-Ray->Delphi реконструкция клик-функи <<

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

Давно было, примерно как раз, на момент появления "новогоднего релиза IDR"...

С первого взгляда (наметаного в IDA) и тыков мышой в "Acees Violation", и
озадачиваниями насчет EDI/ESI/EBX при попытки реконструкции исходного вида
вобщем, пришлось сказать "see you later too", и долго еще не вспоминать
про IDR... Так что на тот момент, ничем не помогло, особенно в идейно
концептуальном плане пересбора..


<< 1 ... 36 . 37 . 38 . 39 . 40 . 41 . 42 . 43 . 44 . 45 . 46 ... 47 . 48 . >>
 eXeL@B —› Софт, инструменты —› Interactive Delphi Reconstructor (IDR). Миттельшпиль
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати