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

 eXeL@B —› Софт, инструменты —› Interactive Delphi Reconstructor (IDR). Миттельшпиль
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 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
Статус: Участник

Создано: 06 декабря 2009 17:47
· Личное сообщение · #2

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



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

Создано: 06 декабря 2009 22:28
· Личное сообщение · #3

Что не приятно:
На распакованые делфе программы говорит, либо инвалид пе файл, либо не делфе.
При открытии формы в виде формы =) если стоит bsNone, то форма создается тоже без заголовка и закрыть ее можно ESC'om, у меня появилось впечатление что программа зависла.
Далее строки, ИДР нашел 14 строк, олька же нашла 275, что заставляет задуматься...
В класс-вьювере бранч не реализован? только древо работает.
В дизасме не плохо было бы сделать мультиселект, чтобы копировать не 1 строчку и не весь лист, а отдельно выбранные строки или даже через 1.

Панель юнитс. В программе только 2 формы, 2 юнита. Откуда там взялось 50, из них с 3 по 50 стоит знак вопроса? Значит ли это, что программа корректно обработает жертву только с =<50 юнитами?
Мап вайл вроде работает нормально, по щелчку в меню тулз на листер ничего не происходит.
Сохранение/загрузка проекта без проблем. Не плохо было бы опционально регистрировать расширение idp в системе, чтобы проекты открывать непосредственно даблкликом.

Больше ничего не увидел. Пойду спать.



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

Создано: 06 декабря 2009 23:32
· Личное сообщение · #4

s0l пишет:
При открытии формы в виде формы =) если стоит bsNone, то форма создается тоже без заголовка и закрыть ее можно ESC'om, у меня появилось впечатление что программа зависла.


по идее ето правильно - IDR рисует то что есть в реале (там конечно не все идет 1:1, но стараеться рисовать максимально правдоподобно)



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

Создано: 07 декабря 2009 08:19
· Личное сообщение · #5

sendersu пишет:
по идее ето правильно - IDR рисует то что есть в реале (там конечно не все идет 1:1, но стараеться рисовать максимально правдоподобно)

А если представить, что форма сдвинута за видимые границы экрана? Получается крайне не удобно, однако...



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

Создано: 07 декабря 2009 19:40
· Личное сообщение · #6

s0l
С распакованными еще проблемы остались, лучше тестировать на чистых файлах.
Формы можно закрывать ESC, а если не получается, то с помощью Alt+F4.
Бранч работает всегда, на негонужно только переключиться.
Это только кажется, что в программе всего только 2 формы и 2 юнита, реально их значительно больше. Смущает, что все юниты со знаком вопроса, что говорит о том, что не распознаны даже стандартные юниты.
В связи с этим вопрос, а какая версия Дельфи была определена? Или она была задана насильно? И неплохо было бы поиметь сам файл, чтобы разобраться...

Насчет сдвига формы за экран наверное стоит поставить проверку.

И все-таки, по-поводу содержания: именно это я просил проверить, что неправильно определяется (из того, что вообще определяется)?



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

Создано: 07 декабря 2009 19:52
· Личное сообщение · #7

Вот примерчик создаваемого на данный момент кода:
Code:
  1. sub_0048B3D4
  2.  0048B3D4     push       ebp
  3.  0048B3D5     mov        ebp,esp
  4.  0048B3D7     push       0
  5.  0048B3D9     push       0
  6.  0048B3DB     push       ebx
  7.  0048B3DC     push       esi
  8.  0048B3DD     mov        ebx,eax
  9.  0048B3DF     xor        eax,eax
  10.  0048B3E1     push       ebp
  11.  0048B3E2     push       48B4EC
  12.  0048B3E7     push       dword ptr fs:[eax]
  13.  0048B3EA     mov        dword ptr fs:[eax],esp
  14.  0048B3ED     mov        eax,ebx
  15.  0048B3EF     call       004A9DB8
  16.  0048B3F4     mov        byte ptr [ebx+57C],1; TMainForm.?f57C:?
  17.  0048B3FB     mov        byte ptr [ebx+57D],0; TMainForm.?f57D:?
  18.  0048B402     mov        edx,48B504; 'Beyond Compare'
  19.  0048B407     mov        eax,ebx
  20.  0048B409     call       TControl.SetText
  21.  0048B40E     xor        eax,eax
  22.  0048B410     mov        dword ptr [ebx+5B8],eax; TMainForm.?f5B8:?
  23.  0048B416     mov        dl,1
  24.  0048B418     mov        eax,[0041B174]; TBitmap:TBitmap
  25.  0048B41D     call       TBitmap.Create; TBitmap.Create
  26.  0048B422     mov        [004AEA00],eax; gvar_004AEA00:TBitmap
  27.  0048B427     push       48B514; 'FLDRCLSD'
  28.  0048B42C     mov        eax,[004AD814]; ->HInstance:System.Longword
  29.  0048B431     mov        eax,dword ptr [eax]
  30.  0048B433     push       eax
  31.  0048B434     call       user32.LoadBitmapA
  32.  0048B439     mov        edx,eax
  33.  0048B43B     mov        eax,[004AEA00]; gvar_004AEA00:TBitmap
  34.  0048B440     call       TBitmap.SetHandle
  35.  0048B445     mov        dl,1
  36.  0048B447     mov        eax,[0041B174]; TBitmap:TBitmap
  37.  0048B44C     call       TBitmap.Create; TBitmap.Create
  38.  0048B451     mov        [004AEA04],eax; gvar_004AEA04:TBitmap
  39.  0048B456     push       48B520; 'FLDROPND'
  40.  0048B45B     mov        eax,[004AD814]; ->HInstance:System.Longword
  41.  0048B460     mov        eax,dword ptr [eax]
  42.  0048B462     push       eax
  43.  0048B463     call       user32.LoadBitmapA
  44.  0048B468     mov        edx,eax
  45.  0048B46A     mov        eax,[004AEA04]; gvar_004AEA04:TBitmap
  46.  0048B46F     call       TBitmap.SetHandle
  47.  0048B474     mov        eax,dword ptr [ebx+548]; TMainForm.OvcIniFileStore:TOvcIniFileStore
  48.  0048B47A     add        eax,2C; TOvcIniFileStore.IniFileName:String
  49.  0048B47D     mov        edx,dword ptr ds:[4AD580]; ->gvar_004AEEA0:AnsiString
  50.  0048B483     mov        edx,dword ptr [edx]
  51.  0048B485     call       @LStrAsg
  52.  0048B48A     mov        edx,dword ptr ds:[4AD580]; ->gvar_004AEEA0:AnsiString
  53.  0048B490     mov        edx,dword ptr [edx]
  54.  0048B492     mov        eax,dword ptr [ebx+2E0]; TMainForm.MainToolbar:TToolbarControl
  55.  0048B498     call       TToolbarControl.SetIniFilename
  56.  0048B49D     mov        esi,dword ptr [ebx+348]; TMainForm.Delete1:TMenuItem
  57.  0048B4A3     push       dword ptr [esi+24]; TMenuItem.Caption:String
  58.  0048B4A6     push       48B534; '\t'
  59.  0048B4AB     lea        edx,[ebp-8]
  60.  0048B4AE     mov        ax,2E
  61.  0048B4B2     call       ShortCutToText
  62.  0048B4B7     push       dword ptr [ebp-8]
  63.  0048B4BA     lea        eax,[ebp-4]
  64.  0048B4BD     mov        edx,3
  65.  0048B4C2     call       @LStrCatN
  66.  0048B4C7     mov        edx,dword ptr [ebp-4]
  67.  0048B4CA     mov        eax,esi
  68.  0048B4CC     call       TMenuItem.SetCaption
  69.  0048B4D1     xor        eax,eax
  70.  0048B4D3     pop        edx
  71.  0048B4D4     pop        ecx
  72.  0048B4D5     pop        ecx
  73.  0048B4D6     mov        dword ptr fs:[eax],edx
  74.  0048B4D9     push       48B4F3
  75.  0048B4DE     lea        eax,[ebp-8]
  76.  0048B4E1     mov        edx,2
  77.  0048B4E6     call       @LStrArrayClr
  78.  0048B4EB     ret
  79. <0048B4EC     jmp        @HandleFinally
  80. <0048B4F1     jmp        0048B4DE
  81.  0048B4F3     pop        esi
  82.  0048B4F4     pop        ebx
  83.  0048B4F5     pop        ecx
  84.  0048B4F6     pop        ecx
  85.  0048B4F7     pop        ebp
  86.  0048B4F8     ret




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

Создано: 07 декабря 2009 20:30
· Личное сообщение · #8

А можно и мне поиметь программку для тестов?
Могу потестить на 6,7,2007,2010 версиях файлов.



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

Создано: 07 декабря 2009 20:57
· Личное сообщение · #9

Azur1d
Смотри в личке



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

Создано: 07 декабря 2009 21:40
· Личное сообщение · #10

Azur1d
Только учти, что версии выше 2007 пока не поддерживаются. Можно тестировать до 2006 включительно.



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

Создано: 07 декабря 2009 22:27 · Поправил: Azur1d
· Личное сообщение · #11

1. На вкладке Forms было бы неплохо указывать из какого юнита эта форма.
2. Очеь полезной была бы возможность создавать пользовательские базы знаний
3. Еще в окно дизасма добавь опкоды команд
4. Прикольной былы бы возможность сворацивать прологи/эпилоги процедур
5. Еще было бы классно чтобы вместо
Code:
  1. 004E1ADA     push       0
  2. 004E1ADC     mov        cx,word ptr ds:[4E1C64]; 0x4
  3. 004E1AE3     mov        dl,1
  4. 004E1AE5     mov        eax,4E1CE8; 'Не удалось скопировать файл с роликом!'
  5. 004E1AEA     call       MessageDlg

Выводилось MessaeDlg('Не удалось скопировать файл с роликом!', 1, 4, 0)
А еще лучше MessageDlg('Не удалось скопировать файл с роликом!', mtError, [mbOK], 0);
Но это наверно пипец как сложно.
6. И хорошо бы листбоксы заменить на гриды

Есть еще косметические замечания, но это уже излишества



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

Создано: 08 декабря 2009 11:10
· Личное сообщение · #12

Delphi 2006
- Не детектится консольная прога (ни авто ни принудительно)
- Прога с VCL детектиться только принудительно

- хотелось бы возможнтость откл/вкл. "серый" код
- я могу построить собственную базу знаний (например, для D2010)?


fccd_08.12.2009_CRACKLAB.rU.tgz - Samples.rar



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

Создано: 08 декабря 2009 20:53
· Личное сообщение · #13

Azur1d
Указать из какого юнита, это можно
Пользовательские базы знаний можно создавать хоть сейчас, поскольку инструмент имеется. Мешают два обстоятельства: отсутствие модуля загрузки дополнительной базы (хотя в мыслях такое уже давно) и принципиальная сложность создания баз для версий начиная с 2007 (имеются недокументированные фичи, которые пока обойти не удалось, если бы кто-то помог...)
Опкоды добавить можно, вот только места на экране и так мало.
Сворациваться будут (не заметил серый код?)
Для MessageDlg как раз несложно, но это будет на этапе Эндшпиль, а сейчас Миттельшпиль
А чем гриды лучше? Я конечно понимаю, что в них проще выводить информацию, а еще какие причины?

Спасибо



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

Создано: 08 декабря 2009 20:56
· Личное сообщение · #14

sf3lamer
Скачал, буду смотреть
Я тоже уже думал о такой опции (отключение серого кода), хотя, если подумать, он как бы заставляет абстрагироваться от всякого лишнего (с точки зрения реверса) кода
Собственную базу построить можно (см. мой ответ Azur1d)

Спасибо



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

Создано: 08 декабря 2009 21:12
· Личное сообщение · #15

crypto пишет:
Сворациваться будут (не заметил серый код?)

Код-то заметил, а вот как свернуть не понял))

crypto пишет:
Опкоды добавить можно, вот только места на экране и так мало.

А вот для этого и нужны гриды. Когда опкоды нужны, то они есть, а когда не нужны, то этот столбец можно ужать до минимума. И адреса тоже.

crypto пишет:
А чем гриды лучше? Я конечно понимаю, что в них проще выводить информацию, а еще какие причины?

Из гридов информация легче воспринимается, что при многочасовом втыкании в дизасм важно.

crypto пишет:
если бы кто-то помог...

Ну если я могу чам-то помочь то обращайся. Я правда на сях только "читаю", но мож мыслью какой помогу или советом.



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

Создано: 08 декабря 2009 21:22 · Поправил: crypto
· Личное сообщение · #16

Вот еще пример для развития интриги (обработка виртуальных методов)
Code:
  1. sub_0048B538
  2.  0048B538     push       ebp
  3.  0048B539     mov        ebp,esp
  4.  0048B53B     add        esp,0FFFFFFE0
  5.  0048B53E     push       ebx
  6.  0048B53F     push       esi
  7.  0048B540     push       edi
  8.  0048B541     xor        ecx,ecx
  9.  0048B543     mov        dword ptr [ebp-18],ecx
  10.  0048B546     mov        dword ptr [ebp-0C],ecx
  11.  0048B549     mov        dword ptr [ebp-4],eax
  12.  0048B54C     xor        eax,eax
  13.  0048B54E     push       ebp
  14.  0048B54F     push       48BC20
  15.  0048B554     push       dword ptr fs:[eax]
  16.  0048B557     mov        dword ptr fs:[eax],esp
  17.  0048B55A     mov        ecx,dword ptr ds:[4AD580]; ->gvar_004AEEA0:AnsiString
  18.  0048B560     mov        ecx,dword ptr [ecx]
  19.  0048B562     mov        dl,1
  20.  0048B564     mov        eax,[0045AD48]; TIniFile:TIniFile
  21.  0048B569     call       TCustomIniFile.Create; TIniFile.Create
  22.  0048B56E     mov        dword ptr [ebp-8],eax
  23.  0048B571     xor        eax,eax
  24.  0048B573     push       ebp
  25.  0048B574     push       48BAD2
  26.  0048B579     push       dword ptr fs:[eax]
  27.  0048B57C     mov        dword ptr fs:[eax],esp
  28.  0048B57F     mov        eax,dword ptr [ebp-4]
  29.  0048B582     call       0048DAB0
  30.  0048B587     push       1
  31.  0048B589     mov        ecx,48BC38; 'AutoPick'
  32.  0048B58E     mov        edx,48BC4C; 'Directory Window'
  33.  0048B593     mov        eax,dword ptr [ebp-8]
  34.  0048B596     mov        ebx,dword ptr [eax]
  35.  0048B598     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  36.  0048B59B     mov        edx,dword ptr [ebp-4]
  37.  0048B59E     mov        byte ptr [edx+5E2],al; TMainForm.?f5E2:?
  38.  0048B5A4     mov        eax,[004AD780]
  39.  0048B5A9     mov        al,byte ptr [eax]
  40.  0048B5AB     sub        al,2
  41. >0048B5AD     jae        0048B5BB
  42.  0048B5AF     mov        eax,dword ptr [ebp-4]
  43.  0048B5B2     mov        byte ptr [eax+5E0],1; TMainForm.?f5E0:?
  44. >0048B5B9     jmp        0048B5D8
  45.  0048B5BB     push       0
  46.  0048B5BD     mov        edx,48BC4C; 'Directory Window'
  47.  0048B5C2     mov        ecx,48BC68; 'ClassicSS'
  48.  0048B5C7     mov        eax,dword ptr [ebp-8]
  49.  0048B5CA     mov        ebx,dword ptr [eax]
  50.  0048B5CC     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  51.  0048B5CF     mov        edx,dword ptr [ebp-4]
  52.  0048B5D2     mov        byte ptr [edx+5E0],al; TMainForm.?f5E0:?
  53.  0048B5D8     push       0
  54.  0048B5DA     mov        edx,48BC4C; 'Directory Window'
  55.  0048B5DF     mov        ecx,48BC7C; 'MakeBackups'
  56.  0048B5E4     mov        eax,dword ptr [ebp-8]
  57.  0048B5E7     mov        ebx,dword ptr [eax]
  58.  0048B5E9     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  59.  0048B5EC     mov        edx,eax
  60.  0048B5EE     mov        eax,dword ptr [ebp-4]
  61.  0048B5F1     mov        eax,dword ptr [eax+3E0]; TMainForm.MakeBackups:TMenuItem
  62.  0048B5F7     call       TMenuItem.SetChecked
  63.  0048B5FC     push       1
  64.  0048B5FE     mov        edx,48BC4C; 'Directory Window'
  65.  0048B603     mov        ecx,48BC90; 'ShowHidden'
  66.  0048B608     mov        eax,dword ptr [ebp-8]
  67.  0048B60B     mov        ebx,dword ptr [eax]
  68.  0048B60D     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  69.  0048B610     mov        edx,dword ptr ds:[4AD970]; ->gvar_004AEE44:TTreeCompare
  70.  0048B616     mov        edx,dword ptr [edx]
  71.  0048B618     mov        byte ptr [edx+0C],al; TTreeCompare.?fC:?
  72.  0048B61B     push       1
  73.  0048B61D     mov        edx,48BC4C; 'Directory Window'
  74.  0048B622     mov        ecx,48BCA4; 'Subdirectories'
  75.  0048B627     mov        eax,dword ptr [ebp-8]
  76.  0048B62A     mov        ebx,dword ptr [eax]
  77.  0048B62C     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  78.  0048B62F     mov        edx,dword ptr ds:[4AD970]; ->gvar_004AEE44:TTreeCompare
  79.  0048B635     mov        edx,dword ptr [edx]
  80.  0048B637     mov        byte ptr [edx+0D],al; TTreeCompare.?fD:?
  81.  0048B63A     push       0
  82.  0048B63C     mov        edx,48BC4C; 'Directory Window'
  83.  0048B641     mov        ecx,48BCBC; 'ShowArchive'
  84.  0048B646     mov        eax,dword ptr [ebp-8]
  85.  0048B649     mov        ebx,dword ptr [eax]
  86.  0048B64B     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  87.  0048B64E     mov        edx,dword ptr [ebp-4]
  88.  0048B651     mov        byte ptr [edx+5E1],al; TMainForm.?f5E1:?
  89.  0048B657     push       0
  90.  0048B659     mov        edx,48BC4C; 'Directory Window'
  91.  0048B65E     mov        ecx,48BCD0; '8.3'
  92.  0048B663     mov        eax,dword ptr [ebp-8]
  93.  0048B666     mov        ebx,dword ptr [eax]
  94.  0048B668     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  95.  0048B66B     mov        edx,dword ptr ds:[4ADA1C]
  96.  0048B671     mov        byte ptr [edx],al
  97.  0048B673     push       0
  98.  0048B675     mov        edx,48BC4C; 'Directory Window'
  99.  0048B67A     mov        ecx,48BCDC; 'CaseSensitive'
  100.  0048B67F     mov        eax,dword ptr [ebp-8]
  101.  0048B682     mov        ebx,dword ptr [eax]
  102.  0048B684     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  103.  0048B687     mov        edx,dword ptr ds:[4AD5E8]
  104.  0048B68D     mov        byte ptr [edx],al
  105.  0048B68F     push       1
  106.  0048B691     mov        edx,48BC4C; 'Directory Window'
  107.  0048B696     mov        ecx,48BCF4; 'ConfirmCopy'
  108.  0048B69B     mov        eax,dword ptr [ebp-8]
  109.  0048B69E     mov        ebx,dword ptr [eax]
  110.  0048B6A0     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  111.  0048B6A3     mov        edx,dword ptr ds:[4ADA54]
  112.  0048B6A9     mov        byte ptr [edx],al
  113.  0048B6AB     push       1
  114.  0048B6AD     mov        edx,48BC4C; 'Directory Window'
  115.  0048B6B2     mov        ecx,48BD08; 'ConfirmCreate'
  116.  0048B6B7     mov        eax,dword ptr [ebp-8]
  117.  0048B6BA     mov        ebx,dword ptr [eax]
  118.  0048B6BC     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  119.  0048B6BF     mov        edx,dword ptr ds:[4AD924]
  120.  0048B6C5     mov        byte ptr [edx],al
  121.  0048B6C7     push       1
  122.  0048B6C9     mov        edx,48BC4C; 'Directory Window'
  123.  0048B6CE     mov        ecx,48BD20; 'ConfirmReadonly'
  124.  0048B6D3     mov        eax,dword ptr [ebp-8]
  125.  0048B6D6     mov        ebx,dword ptr [eax]
  126.  0048B6D8     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  127.  0048B6DB     mov        edx,dword ptr ds:[4AD93C]
  128.  0048B6E1     mov        byte ptr [edx],al
  129.  0048B6E3     push       1
  130.  0048B6E5     mov        edx,48BC4C; 'Directory Window'
  131.  0048B6EA     mov        ecx,48BD38; 'Toolbar'
  132.  0048B6EF     mov        eax,dword ptr [ebp-8]
  133.  0048B6F2     mov        ebx,dword ptr [eax]
  134.  0048B6F4     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  135.  0048B6F7     mov        edx,eax
  136.  0048B6F9     mov        eax,dword ptr [ebp-4]
  137.  0048B6FC     mov        eax,dword ptr [eax+3B0]; TMainForm.ShowToolbar:TMenuItem
  138.  0048B702     call       TMenuItem.SetChecked
  139.  0048B707     push       1
  140.  0048B709     mov        edx,48BC4C; 'Directory Window'
  141.  0048B70E     mov        ecx,48BD48; 'Statusbar'
  142.  0048B713     mov        eax,dword ptr [ebp-8]
  143.  0048B716     mov        ebx,dword ptr [eax]
  144.  0048B718     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  145.  0048B71B     mov        edx,eax
  146.  0048B71D     mov        eax,dword ptr [ebp-4]
  147.  0048B720     mov        eax,dword ptr [eax+3B4]; TMainForm.ShowStatusbar:TMenuItem
  148.  0048B726     call       TMenuItem.SetChecked
  149.  0048B72B     push       0
  150.  0048B72D     mov        edx,48BC4C; 'Directory Window'
  151.  0048B732     mov        ecx,48BD5C; 'TimeButtons'
  152.  0048B737     mov        eax,dword ptr [ebp-8]
  153.  0048B73A     mov        ebx,dword ptr [eax]
  154.  0048B73C     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  155.  0048B73F     mov        edx,dword ptr [ebp-4]
  156.  0048B742     mov        byte ptr [edx+5E4],al; TMainForm.?f5E4:?
  157.  0048B748     push       1
  158.  0048B74A     mov        edx,48BC4C; 'Directory Window'
  159.  0048B74F     mov        ecx,48BD70; 'Legend'
  160.  0048B754     mov        eax,dword ptr [ebp-8]
  161.  0048B757     mov        ebx,dword ptr [eax]
  162.  0048B759     call       dword ptr [ebx+10]; TCustomIniFile.ReadBool
  163.  0048B75C     mov        edx,eax
  164.  0048B75E     mov        eax,dword ptr [ebp-4]
  165.  0048B761     mov        eax,dword ptr [eax+40C]; TMainForm.ShowLegend:TMenuItem
  166.  0048B767     call       TMenuItem.SetChecked
  167.  0048B76C     push       0
  168.  0048B76E     lea        eax,[ebp-0C]
  169.  0048B771     push       eax
  170.  0048B772     mov        edx,48BC4C; 'Directory Window'
  171.  0048B777     mov        ecx,48BD80; 'Font'
  172.  0048B77C     mov        eax,dword ptr [ebp-8]
  173.  0048B77F     mov        ebx,dword ptr [eax]
  174.  0048B781     call       dword ptr [ebx]; TIniFile.ReadString
  175.  0048B783     cmp        dword ptr [ebp-0C],0
  176. >0048B787     jne        0048B79B
  177.  0048B789     lea        edx,[ebp-0C]
  178.  0048B78C     mov        eax,[004ADA44]; ->Screen:TScreen
  179.  0048B791     mov        eax,dword ptr [eax]
  180.  0048B793     mov        eax,dword ptr [eax+74]; TScreen.FIconFont:Graphics.TFont
  181.  0048B796     call       00466CC4
  182.  0048B79B     mov        eax,dword ptr [ebp-4]
  183.  0048B79E     mov        eax,dword ptr [eax+2C4]; TMainForm.ListBox:TListBox
  184.  0048B7A4     mov        edx,dword ptr [eax+58]; TListBox.Font:TFont
  185.  0048B7A7     mov        eax,dword ptr [ebp-0C]
  186.  0048B7AA     call       00466EB4
  187.  0048B7AF     push       48BD90; 'Arial;10'
  188.  0048B7B4     lea        eax,[ebp-18]
  189.  0048B7B7     push       eax
  190.  0048B7B8     mov        edx,48BC4C; 'Directory Window'
  191.  0048B7BD     mov        ecx,48BDA4; 'ReportFont'
  192.  0048B7C2     mov        eax,dword ptr [ebp-8]
  193.  0048B7C5     mov        ebx,dword ptr [eax]
  194.  0048B7C7     call       dword ptr [ebx]; TIniFile.ReadString
  195.  0048B7C9     mov        edx,dword ptr [ebp-18]
  196.  0048B7CC     mov        eax,dword ptr [ebp-4]
  197.  0048B7CF     add        eax,5E8; TMainForm.?f5E8:String
  198.  0048B7D4     call       @LStrAsg




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

Создано: 08 декабря 2009 21:24
· Личное сообщение · #17

Azur1d
Серый код пока не сворачивается, это для Эндшпиля



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

Создано: 08 декабря 2009 21:40
· Личное сообщение · #18

sf3lamer
VCL-приложение автодетектилось нормально. Ты все файлы скачал? Проверь, чтобы были файлы syskb*.bin
консольное действительно не грузится, но оно на мой взгляд написано на Билдере, хотя я могу и ошибаться, сам никогда под эту версию Дельфи (2006) консолек не создавал. В обчем, что-то со структурой файла не то...



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

Создано: 09 декабря 2009 19:49
· Личное сообщение · #19

s0l
Так где файл, который ты анализировал? Теперь моя очередь с ним поиграться.



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

Создано: 11 декабря 2009 20:03 · Поправил: sf3lamer
· Личное сообщение · #20

crypto
Действительно не было syskb2006.bin.
оба приложения на Delphi
там наверно просто нет "TObject", чтобы зацепиться при детекте



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

Создано: 11 декабря 2009 21:51
· Личное сообщение · #21

sf3lamer
Нет, детект не основан на классе TObject, но в консольке обязательно должны быть следы юнита system, а в твоем файле их нет. Оба файла ты сам сгенерил?
ЗЫ
В первом файле просто одна пустая форма.



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

Создано: 13 декабря 2009 13:36
· Личное сообщение · #22

sf3lamer
Если уж быть совсем точным (кода много, всего не упомнишь), то да, есть проверка наличия TObject, но эта проверка используется лишь для определения того, что программа написана на Дельфи, версия определяется по другим критериям. Теперь вроде проблему удалось решить.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 13 декабря 2009 14:35
· Личное сообщение · #23

crypto

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

если что - пиши ЛС

-----
EnJoy!





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

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

выложил сборку с актуальной версией и базы знаний всех версий Delphi одним архивом, обновил шапку

-----
EnJoy!




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

Создано: 15 декабря 2009 20:03
· Личное сообщение · #25

Jupiter
Премного благодарен



Ранг: 123.0 (ветеран), 10thx
Активность: 0.060
Статус: Участник

Создано: 15 декабря 2009 22:39
· Личное сообщение · #26

Помимо кнопки Previous Subroutine не хватает Next Subroutine. Когда ползаешь по XREF'ам, наличие одной кнопки только назад, замедляет процесс исследования, потому что приходит опять вспоминать куда перемещался до этого...
Таким образом не хватает истории перемещений по процедурам в обе стороны, а не только назад.

-----
.[ rE! p0w4 ].




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 15 декабря 2009 23:17 · Поправил: Модератор
· Личное сообщение · #27

crypto
Не знаю обсуждалось или нет. Хотелось бы чтобы по клику по строке во вкладке Strings открывался референс этой строки. Или хотя бы описание (в виде коментария?) в каком классе есть эта строка.



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

Создано: 28 декабря 2009 19:26
· Личное сообщение · #28

Обнаружились баги при распространении типов, будут исправлены в ближайшем билде, скорее всего до Нового Года. Один из багов был предусмотрен (assert), если у кого-то появлялся соответствующий MessageBox, так это вот он. Но судя по всему либо он не появлялся, либо на него забили




Ранг: 111.1 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 28 декабря 2009 22:16
· Личное сообщение · #29

Перезалейте кто-нить плиз на другой обменник.
С рапиды не получается скачать бесплатно.

-----
The truth is out of there...




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

Создано: 29 декабря 2009 05:37
· Личное сообщение · #30

Lumen
multi-up.com/193913 - idr_kb_delphi2-3-4-5-6-7-2006.rar
multi-up.com/193914 - IDR_2009-12-06.rar


. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 47 . 48 . >>
 eXeL@B —› Софт, инструменты —› Interactive Delphi Reconstructor (IDR). Миттельшпиль
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати