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

 eXeL@B —› Софт, инструменты —› Interactive Delphi Reconstructor (IDR). Миттельшпиль
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 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

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

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

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

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




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

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

У меня просто прелесть при открытии этих чудных pdf:


>>Ссылки на pdf, doc удалил.
В связи с этим сделал "новый" вариант pdf:
Lesson 1 и 2 (doc + pdf)
Lesson 1 и 2 (pdf only сконвертированы в другом оналайн конверторе)

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


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

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

Создано: 09 октября 2014 16:40
· Личное сообщение · #3

_FUCKER_
Ну да, известная проблема с pdf-файлами. Наверное, не зря все хакеры мира их используют.
GPcH
Меня бы заинтересовало ваше мнение, если бы оно было конкретно: я не гадалка, не могу знать, что за сэмплы используются для тестирования. У меня большая библиотека экзешников, некоторые из них имеют размер более 10 М, практически на всех программа работает без зависаний. Мягко выражаясь, это критиканство.
По-поводу усилий - это все-таки уроки декомпиляции с помощью IDR, на их написание и чтение уходит гораздо больше времени, чем на реальную работу по восстановлению исходного кода.
Я лично считаю, что проект находится в рабочем состоянии и им можно пользоваться. Если есть отличное мнение - пользуйтесь другими продуктами, я свой никому не навязываю и не рекламирую.




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

Создано: 09 октября 2014 16:48
· Личное сообщение · #4

Так и знал что задену за гордость.

crypto пишет:
Меня бы заинтересовало ваше мнение, если бы оно было конкретно


Например http://rghost.ru/58430320

crypto пишет:
Я лично считаю, что проект находится в рабочем состоянии и им можно пользоваться.


Ok, как скажешь. Со стороны увы это выглядит немного иначе. Если нужны еще сэмлы - пиши. Как вариант попробуй декомпилировать Lite версию моего декомпилятора (на ней UPX - думаю снять не проблема). Защит от декомпиляции там нет.

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




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

Создано: 09 октября 2014 16:52
· Личное сообщение · #5

GPcH
А если знал, зачем так излагаешь? Гордость здесь ни при чем, просто не люблю, когда критикуют не конкретно. Ладно, проехали, давай еще пару сэмплов, посмотрю в чем дело.




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

Создано: 09 октября 2014 17:01
· Личное сообщение · #6

crypto
Давай начнем с этих двух сэмплов (Bat и Lite версия декомпилятора). Вот непакованная версия декомпилятора:
http://rghost.ru/58430567

Глядишь и на остальных падать перестанет

А насчет прототипа все же в чем проблема использовать упрощение, что все параметры либо String, либо если не детектятся как строка по эверистике то DWORD? Это решит сносный вывод листинга декомпилятора без ошибок.

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




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

Создано: 09 октября 2014 17:16 · Поправил: crypto
· Личное сообщение · #7

GPcH
Только что загрузил твой первый сэмпл: http://rghost.ru/58430320 - все нормально (отметил первые секции до секции .tls). Все прошло нормально.
Рекомендации: взять свежую версию IDR (из урока 2), взять базы знаний XE3 (я их выкладывал здесь, наверное ты их пропустил):
https://www.dropbox.com/s/j550gi0aiagy0yi/syskb2013.7z?dl=0
https://www.dropbox.com/s/v242bxgegj0jaeg/kb2013.7z?dl=0
Второй сэмпл действительно падает (не хватает памяти для выделения рабочих областей).
Ситуацию спасет пересмотр стратегии хранения данных, что я уже давно хотел сделать.



Ранг: 39.4 (посетитель), 9thx
Активность: 0.01=0.01
Статус: Участник

Создано: 09 октября 2014 18:19
· Личное сообщение · #8

crypto пишет:
Да ладно, у меня в Ворде есть такая функция. Ссылки на pdf, doc удалил.

Это было для тех, кто "не осилил" прочитать doc.
Лично меня, вполне устраивает doc.




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

Создано: 09 октября 2014 19:28
· Личное сообщение · #9

crypto пишет:
Только что загрузил твой первый сэмпл: http://rghost.ru/58430320 - все нормально (отметил первые секции до секции .tls). Все прошло нормально.


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

Возможно с частью моих сэмплов проблема также в выделении не тех секций.

И все же - ответь про типизацию в декомпиляторе (задавал вопрос дважды).

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




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

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

Вот кстати и очередная тема для урока, подробно описать, какие секции выделять нужно, какие не нужно, ибо простым смертным не всегда понятно. Ну либо автоматизировать



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

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

GPcH
Наверное типизацию можно сделать, как ты говоришь. Однако, сэкономив время на первом этапе (получение промежуточного исходного кода, в котором прототипы функций и процедур совсем не те, что нужно), мы наверстаем это время на этапе доведения кода до кондиции. На мой взгляд, поскольку типизацию все равно придется делать, то проще сделать ее на уровне IDR, поскольку изменения сразу будут отражены всюду в проекте. В остальном это дело вкуса и привычек каждого.
TryAga1n
С автоматизацией уже было. Однако, думается мне, нужно все-таки пересматривать концепцию внутренних данных.




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

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

crypto

Да это понятно. Ценю твое желание сделать сразу хорошо.
Но все равно считаю что на первом этапе нужно отказаться от типизации. На мой взгляд все равно одному человеку не потянуть декомпиляцю в полный исходник за разумные сроки. А если так - то может упростить вывод кода до String/Int и сделать сносный псевдо-паскаль, удобный для чтения? Думаю многие будут за.

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


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

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

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

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



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

Создано: 11 октября 2014 01:40 · Поправил: vden
· Личное сообщение · #14

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

Я не знаю структуру внутренних данных. Но думаю нужно сделать хранение на диске с кэшированием в оперативной памяти.
Плюсы:
+ не требуется много памяти
+ загрузка происходит быстрее, если не нужно грузить сразу весь массив в память
Минусы
- дисковые операции гораздо медленнее чем операции в памяти, но кэширование и индексирование данных должно помочь
- в зависимости от реализации, может потребоваться периодическая чистка базы данных (вроде Clean Garbage в IDA)

Реализация может быть например B-Tree, т.е. словарь Ключ-Значение, или другая, более оптимальная для конкретной структуры данных.




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

Создано: 11 октября 2014 22:32 · Поправил: ajax
· Личное сообщение · #15

vden
своп наше все да, и >= 16 гб на борту у основного кол-ва юзеров дизасмов. но, терзает мнение, что проблемка не в этом. учитывая x32 idr
ps: пытался поискать про очистку треша у ида, не нашел. что там творится?

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




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

Создано: 12 октября 2014 01:38 · Поправил: vden
· Личное сообщение · #16

ajax пишет:
про очистку треша у ида, не нашел. что там творится?

Например при удалении записи из бд индекс обновляется, но данные остаются на диске, т.е. остается мусор. Поэтому после первого анализа и через какие-то интервалы (не часто) нужно при сохранении ставить чекбокс Collect Garbage.



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

Создано: 14 октября 2014 23:51
· Личное сообщение · #17

обновил idr добавил syskb2013.bin и kb2013.bin
Открываю файл и после формы "Choose Segments to analyze" поставил птичку до (..bss) далее ок
выходит сообщение LoadImage error
в чем ошибка?



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

Создано: 15 октября 2014 08:10
· Личное сообщение · #18

vaz21102 пишет:
bss

Эта секция никогда не содержала кода.

-----
TEST YOUR MIGHT




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

Создано: 15 октября 2014 08:45
· Личное сообщение · #19

unknownproject урок 1 -"некоторые секции явно не представляют интерес для анализа (в рассматриваемом примере это все секции после BSS)" я выделил тоже CODE DATA BSS



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

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

vaz21102
BSS - сегмент неинициализированных данных, в файле его нет, но при загрузке сегмент создается и заполняется 0. Выбирать следует сегменты, которые IDR будет анализировать (данные тоже, не только код). Идея выбора сегментов заключалась в том, чтобы исключить загрузку сегментов BSS, имеющих огромный размер. Реализация оказалась к сожалению кривой, поэтому пока рекомендую выделять все сегменты вплоть до tls. Поправлю ситуацию - выложу обновление.
Чтобы подсластить пилюлю, сообщаю, что недостаток IDR, связанный с отсутствием прототипов для событий, исправлен (собственно, все было, однако был косяк с проверкой одного условия и прототипы просто не извлекались из базы). Теперь прототипы событий заполняются автоматически.

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

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

Создано: 15 октября 2014 18:39
· Личное сообщение · #21

не могу сгенерить idc-файл.
таргет 32 метра (DXE2). когда генерю idc - падает с ошибкой и не делает его размером более 64.424.ххх байт (не помню точно х).

-----
...или ты работаешь хорошо, или ты работаешь много...




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

Создано: 15 октября 2014 19:52
· Личное сообщение · #22

Ошибки доступа к памяти "Access violation..." при загрузке какой-то программы, после выбора сегментов, возникают тогда, когда например например не выбран сегмент с данными, на который есть ссылка из сегмента с кодом, в итоге программа после ошибки зависает.



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

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

DreamS
Да, я это уже давно понял, думаю, как с этим справиться.
BfoX
Пришли файл, у меня под эту версию почти ничего нет.



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

Создано: 15 октября 2014 22:05
· Личное сообщение · #24

crypto
отправил на гмайл

-----
...или ты работаешь хорошо, или ты работаешь много...




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

Создано: 17 октября 2014 16:00 · Поправил: olegpr
· Личное сообщение · #25

DreamS пишет:
Ошибки доступа к памяти "Access violation..." ...

Присоединяюсь. AV и зависание, если не выделить все сегменты.

И ещё:
При сохранении Delphi project создает только dfm файлы, а потом виснет.
Происходит не на всех программах, но стабильно.
Версии от 29.08.2013 и от 14.02.2013 тоже виснут, но успевают создать и .pas
Упёртые подопытные собраны в Delphi 7



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 17 октября 2014 19:21 · Поправил: SReg
· Личное сообщение · #26

olegpr пишет:
Происходит не на всех программах... Упёртые подопытные собраны...


crypto просил вылаживать проблемные файлы, а не пустословить и писать "Ничего не работает!". т.к. для фикса баги ее нужно повторить ему у себя

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

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

Создано: 21 октября 2014 12:17
· Личное сообщение · #27

crypto
Оставил в личке ссылку на файл.

Добавлено спустя 3 часа 48 минут
Переименование и указание типа переменных через "Name Position" в закладке CodeViewer не вызывает переименование их в закладке Names.
Там изменяются только после сохранения проекта и открытия заново.
Или не знаю куда нажать?
И было бы замечательно иметь возможность переименовывать непосредственно в закладке Names.



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

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

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



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

Создано: 24 октября 2014 21:24
· Личное сообщение · #29

vaz21102 О КАК. Ну спасибо, что хоть не задали по этому поводу вопрос типа ладно, пусть вы не сказали про востановленный импорт.. но хотя бы молодцы что до дампа дошли. Типа в случае с протом с таким же успехом можно zip файл IDR анализировать

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




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

Создано: 24 октября 2014 21:40
· Личное сообщение · #30

VodoleY Хватает даже просто дамп создать и протекторы отвалятся - IDR уже спокойно декомпилирует , нет необходимости мучатся с тем чтоб дамп.exe запускался . Про то что IDR с дампом защищенных программ работает мне подсказали участнитки из этой ветки..Может это я и самый последний узнал но решил поделится...



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

Создано: 24 октября 2014 21:59
· Личное сообщение · #31

Сырой дамп с точки входа в задницу можно засунуть.Он переварится только в том случае, если затереть тлс, импорт, срезать сраные секции и найти OEP.

-----
TEST YOUR MIGHT



<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 47 . 48 . >>
 eXeL@B —› Софт, инструменты —› Interactive Delphi Reconstructor (IDR). Миттельшпиль
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати