Сейчас на форуме: -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

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

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

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

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



Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 21 февраля 2011 06:49
· Личное сообщение · #2

off
попался на глаза проект - мож чем поможет
www.texttransformer.com/Delphi2Cpp_en.html



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

Создано: 21 февраля 2011 08:39
· Личное сообщение · #3

Ratinsh
Эта утилита работает с исходниками на Дельфи, а цель IDR - получение этих самых исходников.



Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 21 февраля 2011 08:59
· Личное сообщение · #4

Да я без шуток, бывает и обратный взгляд и/или другой проект косвенно может помочь.
Породить нужные мысли...




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

Создано: 06 марта 2011 19:04
· Личное сообщение · #5

crypto когда на форме много компонентов, порой проблематично найти нужный в куче пустых крадратиков... Выдерни пож-та иконку стандартную хотя бы на Timer т.к. чаще всего нужен именно он

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

Создано: 06 марта 2011 22:20
· Личное сообщение · #6

Isaev
Сохраняй в виде Дельфи-проекта, открывай в Дельфи.




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

Создано: 06 марта 2011 22:26
· Личное сообщение · #7

crypto пишет:
Сохраняй в виде Дельфи-проекта, открывай в Дельфи.

Это как? Что-то не нашел такого.

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




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

Создано: 06 марта 2011 22:54
· Личное сообщение · #8

BoRoV
А, ну да, эта версия еще не актуализирована. Придется всем погодить.




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

Создано: 07 марта 2011 04:17
· Личное сообщение · #9

crypto пишет:
Сохраняй в виде Дельфи-проекта, открывай в Дельфи.

Ну и нафига так извращаться то? А если нету дельфи под руками?
иконку то не трудно вставить... могу даже сам вытащить, если лень

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

Создано: 07 марта 2011 08:46 · Поправил: crypto
· Личное сообщение · #10

Isaev
У меня других дел и забот хватает, выше крыши. И вообще, пора завязывать с этим...



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

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

Кто-нибудь использует фичи:
-Fuzzy scan KB
-KB type info
Может их вообще исключить из программы?



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

Создано: 09 мая 2011 23:01
· Личное сообщение · #12

В идеале думаетсо надо б что-то а-ля FLIRT (c его *.sig подходом)...
много раз натыкаюсь на модуля - а-ля Indy, др, вот названий методов очень б не помешало

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

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

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

Isaev
Есть билд с иконками - если еще нужен, пиши в личку.




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

Создано: 11 мая 2011 17:55
· Личное сообщение · #14

Да, может вместо репарсинга всей базы иды делать флирт для оной?

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




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

Создано: 07 июня 2011 11:28 · Поправил: crypto
· Личное сообщение · #15

IDR Бетка 2.5. Есть желающие потестировать, прежде чем выкладывать на сайт? У меня в личке 11 свободных слотов - пишите. Вышлю архив с кратким описанием.
Чтобы было понятно, что за бетка. Ассемблерный код:
Code:
  1.  00488CA4    push       ebx
  2.  00488CA5    push       esi
  3.  00488CA6    push       edi
  4.  00488CA7    push       ebp
  5.  00488CA8    add        esp,0FFFFFFF0
  6.  00488CAB    mov        esi,eax
  7.  00488CAD    mov        edi,dword ptr [esi+328]; TAutoSyncForm.PaintBox1:TPaintBox
  8.  00488CB3    mov        ebx,dword ptr [edi+114]; TPaintBox.FCanvas:TCanvas
  9.  00488CB9    mov        edx,esp
  10.  00488CBB    mov        eax,edi
  11.  00488CBD    mov        ecx,dword ptr [eax]
  12.  00488CBF    call       dword ptr [ecx+44]; TControl.GetClientRect
  13.  00488CC2    mov        edx,80000005
  14.  00488CC7    mov        eax,dword ptr [ebx+14]; TCanvas.Brush:TBrush
  15.  00488CCA    call       TBrush.SetColor
  16.  00488CCF    mov        ebp,dword ptr [esp+8]
  17.  00488CD3    push       ebp
  18.  00488CD4    mov        eax,dword ptr [esp+10]
  19.  00488CD8    push       eax
  20.  00488CD9    mov        ecx,dword ptr [esp+0C]
  21.  00488CDD    mov        edi,dword ptr [esp+8]
  22.  00488CE1    mov        edx,edi
  23.  00488CE3    mov        eax,ebx
  24.  00488CE5    call       TCanvas.Rectangle
  25.  00488CEA    mov        edx,0FF
  26.  00488CEF    mov        eax,dword ptr [ebx+10]; TCanvas.Pen:TPen
  27.  00488CF2    call       TPen.SetColor
  28.  00488CF7    mov        edx,3
  29.  00488CFC    mov        eax,dword ptr [ebx+10]; TCanvas.Pen:TPen
  30.  00488CFF    call       TPen.SetWidth
  31.  00488D04    mov        esi,edi
  32.  00488D06    add        esi,5
  33.  00488D09    mov        edx,esi
  34.  00488D0B    mov        ecx,0A
  35.  00488D10    mov        eax,ebx
  36.  00488D12    call       TCanvas.MoveTo
  37.  00488D17    mov        edi,ebp
  38.  00488D19    sub        edi,5
  39.  00488D1C    mov        edx,edi
  40.  00488D1E    mov        ecx,0A
  41.  00488D23    mov        eax,ebx
  42.  00488D25    call       TCanvas.LineTo
  43.  00488D2A    mov        edx,0FF0000
  44.  00488D2F    mov        eax,dword ptr [ebx+10]; TCanvas.Pen:TPen
  45.  00488D32    call       TPen.SetColor
  46.  00488D37    mov        edx,esi
  47.  00488D39    mov        ecx,18
  48.  00488D3E    mov        eax,ebx
  49.  00488D40    call       TCanvas.MoveTo
  50.  00488D45    mov        edx,edi
  51.  00488D47    mov        ecx,18
  52.  00488D4C    mov        eax,ebx
  53.  00488D4E    call       TCanvas.LineTo
  54.  00488D53    mov        edx,808080
  55.  00488D58    mov        eax,dword ptr [ebx+10]; TCanvas.Pen:TPen
  56.  00488D5B    call       TPen.SetColor
  57.  00488D60    mov        edx,esi
  58.  00488D62    mov        ecx,26
  59.  00488D67    mov        eax,ebx
  60.  00488D69    call       TCanvas.MoveTo
  61.  00488D6E    mov        edx,edi
  62.  00488D70    mov        ecx,26
  63.  00488D75    mov        eax,ebx
  64.  00488D77    call       TCanvas.LineTo
  65.  00488D7C    add        esp,10
  66.  00488D7F    pop        ebp
  67.  00488D80    pop        edi
  68.  00488D81    pop        esi
  69.  00488D82    pop        ebx
  70.  00488D83    ret


после нажатия на магическую кнопочку превращается в
Code:
  1. procedure TAutoSyncForm.PaintBox1Paint;
  2. begin
  3. _eax_ := _edi_;
  4. loc_24 := PaintBox1.GetClientRect;
  5. PaintBox1.FCanvas.Brush.SetColor($80000005{2147483653});
  6. _edx_ := _edi_;
  7. _eax_ := _ebx_;
  8. PaintBox1.FCanvas.Rectangle(loc_24.Left, loc_24.Top, loc_24.Right, loc_24.Bottom);
  9. PaintBox1.FCanvas.Pen.SetColor($FF{255});
  10. PaintBox1.FCanvas.Pen.SetWidth(3);
  11. _esi_ := _edi_;
  12. _edx_ := _esi_;
  13. _eax_ := _ebx_;
  14. PaintBox1.FCanvas.MoveTo((loc_24.Left) + 5, 10);
  15. _edi_ := _ebp_;
  16. _edx_ := _edi_;
  17. _eax_ := _ebx_;
  18. PaintBox1.FCanvas.LineTo((loc_24.Right) - 5, 10);
  19. PaintBox1.FCanvas.Pen.SetColor($FF0000{16711680});
  20. _edx_ := _esi_;
  21. _eax_ := _ebx_;
  22. PaintBox1.FCanvas.MoveTo((loc_24.Left) + 5, 24);
  23. _edx_ := _edi_;
  24. _eax_ := _ebx_;
  25. PaintBox1.FCanvas.LineTo((loc_24.Right) - 5, 24);
  26. PaintBox1.FCanvas.Pen.SetColor($808080{8421504});
  27. _edx_ := _esi_;
  28. _eax_ := _ebx_;
  29. PaintBox1.FCanvas.MoveTo((loc_24.Left) + 5, 38);
  30. _edx_ := _edi_;
  31. _eax_ := _ebx_;
  32. PaintBox1.FCanvas.LineTo((loc_24.Right) - 5, 38);
  33. end;


Хочу обратить внимание на использование для локальных переменных инструкций вроде mov ebp,dword ptr [esp+8]

| Сообщение посчитали полезным: sendersu, BoRoV, reversecode, _ruzmaz_, Isaev, mak, Rustem, m0bscene, Error13Tracer, tihiy_grom


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

Создано: 07 июня 2011 16:25
· Личное сообщение · #16

Лучше будет не так:
Code:
  1. PaintBox1.FCanvas.Brush.SetColor($80000005{2147483653});

а так:
Code:
  1. PaintBox1.FCanvas.Brush.SetColor($80000005); //2147483653


Так читаемость лучше. ИМХО.

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


| Сообщение посчитали полезным: crypto, SReg, 4kusNick

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

Создано: 07 июня 2011 16:35 · Поправил: crypto
· Личное сообщение · #17

BoRoV
Это понятно. Наверное еще лучше будет, если будет указан не просто абстрактный цвет TColor, а, например, clBlue. Но я думаю перенести подобные преобразования в модуль PostProcessing.
Правка
Хотя в данном случае такой комментарий можно будет вынести в процессе декомпиляции




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 07 июня 2011 17:24
· Личное сообщение · #18

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

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

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

Создано: 16 июня 2011 08:30
· Личное сообщение · #19

PE_Kill
crypto IDR так и не научился еще вскрывать файлы скомпиленые в рантайм моде?
Уже научился...

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

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

Создано: 24 июня 2011 15:09
· Личное сообщение · #20

to crypto
поправь, плз, при загрузке PE: "SizeOfOptionalHeader != 0xE0", т.к. может быть и больше чем E0, но это нужно учитывать при загрузке

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

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

Создано: 24 июня 2011 15:19
· Личное сообщение · #21

vden
У меня таких файлов не встречалось. Проверку убрал, оставил только проверку magic




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 24 июня 2011 15:47
· Личное сообщение · #22

crypto

Объясните мне, почему вы юзаете самопальный анализ файла на валидность, если ещё сто лет назад был придуман 100% способ такой проверки.


Что до практического применения полученных знаний - NtCreateSection будет использоваться в качестве проверки валидности PE-файла в PE Tools (вероятно, с версии 1.6). Опция - "Validate PE". Псевдокод может выглядеть где-то так:
/*как вы помните из первой части, ntdll.dll БЕЗУСЛОВНО отображается
на адресное пространство каждого Win32-приложения Windows*/
GetModuleHandle(“ntdll.dll”);
...
/*вызывать только динамически – через GetProcAddress
т.к. нам нужна именно платформенная специфичность,
поэтому никаких статических линковок с ntdll.lib*/
ZwCrSec = GetProcAddress(..., “ZwCreateSection”);
if (STATUS_CODE = ZwCrSec)
/*значит, ошибка, будем думать, что случилось*/
else
/*все параметры секций PE-файла валидны,
содержимое директорий - ?*/
...

Если NtCreateSection вернула что-либо отличное от нуля – файл валидным не является – это невероятно надежный источник проверки валидности файла!


Вырезка из "Об упаковщиках в последний раз".

-----
Stuck to the plan, always think that we would stand up, never ran.




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

Создано: 24 июня 2011 15:55 · Поправил: crypto
· Личное сообщение · #23

ARCHANGEL
Я тогда еще не родился. Спасибо, конечно, но я предпочитаю разбираться во всем самому.
ЗЫ
Кстати, речь не совсем о проверке валидности, а скорее о правильной загрузке.



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

Создано: 24 июня 2011 19:43
· Личное сообщение · #24

crypto че не нравица... многие файлы идут просто лесом по КАКОЙТО причине хотя деде их хавает с удовольствием. про мою просьбу поддержки билдера я напоминаю. хоть мне по прежнему не понятно существенная разница в екзешниках

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




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

Создано: 24 июня 2011 20:11
· Личное сообщение · #25

VodoleY
Прислал бы что-нибудь... из леса



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

Создано: 24 июня 2011 20:43 · Поправил: Kiev78
· Личное сообщение · #26

---



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

Создано: 24 июня 2011 23:00
· Личное сообщение · #27

какайа бы база у тебя не была там мэдши компоненты ИДР такэ нэ дэкампиле




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

Создано: 24 июня 2011 23:26
· Личное сообщение · #28

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



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

Создано: 25 июня 2011 00:10 · Поправил: angvelem
· Личное сообщение · #29

Попробовал, ради интереса, на своих программах, кои я пишу на API, увы, мне эта программа без надобности. При потере исходников, она ничем не сможет мне помочь.
P.S. База для Дельфи 2010, пока без надобности. Думаю когда понадобится уже и пароль не потребуется.



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

Создано: 25 июня 2011 01:42
· Личное сообщение · #30

angvelem
информативность сообщения -> 0

| Сообщение посчитали полезным: _ruzmaz_, SReg, daFix, crypto

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

Создано: 25 июня 2011 18:38
· Личное сообщение · #31

1. VodoleY пишет:
VodoleY
Прислал бы что-нибудь... из леса

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

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....



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