Сейчас на форуме: bartolomeo, artyavmu (+8 невидимых)

 eXeL@B —› Софт, инструменты —› Сборщик инфы Delphi
Посл.ответ Сообщение

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

Создано: 27 марта 2009 02:00
· Личное сообщение · #1

У меня часто возникает необходимость ковырятся в прогах на Delphi. Классы, формы, процедуры... Благодаря RTTI кое-что можно выудить. Из существующих декомпиляторов монстра всего два: DeDe by DaFixer/TMG и De Decompiler by GPcH.
DeDe - штука замечательная, но уже довольно старовата + кое какие баги.
De Decompiler - штука замечательная, но платная
Есть правда ещё EMS Source Rescuer (но это не совсем то)
Исходя из этого, я сделал небольшой сборщик инфы в Delphi-скомпилированных программах, стараясь не перегружать интерфейс и иметь возможность хоть какого-нибудь экспорта полученных данных. Этими наработками (а совершенствование ещё не закончено) я хочу поделиться с Вами.

vdr-soft.at.ua/BDSSICK/bdssick.zip
если найдутся единомышленники, то любые идеи, замечания прошу оставлять здесь или на форуме на офсайте.

Перед тем как задать вопрос, желательно прочтите мою страничку vdr-soft.at.ua/

Regards, MrDenis




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

Создано: 27 марта 2009 02:16
· Личное сообщение · #2

Мне понравилось... Маленькая и показывает всё, что чаще всего и нужно!
В большинстве случаев не надо грузить монстров...

PS: думал dll это то же, но в виде плага для Peid, жаль, что не так

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

Создано: 27 марта 2009 02:24
· Личное сообщение · #3

думал dll это то же, но в виде плага для Peid, жаль, что не так

отличная идея! поставлю в список задач




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

Создано: 27 марта 2009 04:02
· Личное сообщение · #4

MrDenis

Прикольная вещь, правда так и не понял как посмотреть код как на скриншоте на сайте.

Плюс не работает на дельфях старше седьмой версии. В частности у меня все проекты давно портированы под Delphi 2009. Ни форм, ни объектов тулза не находит - только Classes Info.

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





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

Создано: 27 марта 2009 08:26
· Личное сообщение · #5

Убодбная вещь, но мне кажется что она уже где-то здесь на форуме проскакивала

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





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

Создано: 27 марта 2009 08:33
· Личное сообщение · #6

всё время выводит "Temporarily no disassembler", хотя на скрине на сайте явно виден дизасм



P.S. назвать прогу удобоваримым названием, конечно, не судьба?

-----
EnJoy!





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 27 марта 2009 08:35
· Личное сообщение · #7

GPcH пишет:
Плюс не работает на дельфях старше седьмой версии. В частности у меня все проекты давно портированы под Delphi 2009. Ни форм, ни объектов тулза не находит - только Classes Info.

Работает, находит для 2009, но не всё.



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

Создано: 27 марта 2009 09:17
· Личное сообщение · #8

Дизасм включил (был отключен временно по техническим причинам). Кому не жалко, выложите образец D2009



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

Создано: 27 марта 2009 09:30
· Личное сообщение · #9

MrDenis пишет: Перед тем как задать вопрос, желательно прочтите мою страничку vdr-soft.at.ua/
А чего там не по русски все? Не ждете донейтов от здешней публики? Может и глупый вопрос, но вражеских языков не знаю: как получить дизасм-листинг?



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

Создано: 27 марта 2009 09:48
· Личное сообщение · #10

user_ Я обновил файл, качайте свежий там уже влючен дизасм. В дизасме G - перейти по адресу.
Обновление можно проверить ещё Help\Check for updates
Donates Приветствуются от представителей любой нации. Старничка на англ. потому, что не было необходимости переводить, ну раз сейчас она появилась будет и русская.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 27 марта 2009 12:19 · Поправил: Hellspawn
· Личное сообщение · #11

неправильно определяет версию дельфей открыл 7-ку, пишет что Compiler: Borland Delphi 6.0
возьми детект из ДеДе лучше. нигде нет упоминания о версии программы.
Code:
  1. 00452D5E call    -0000022F

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

з.ы. а так довольно удобно можно ещё подсветку синтаксиса прикрутить.

-----
[nice coder and reverser]





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

Создано: 27 марта 2009 12:52
· Личное сообщение · #12

Hellspawn пишет:
возьми детект из ДеДе лучше

на паблике сорсы только версии 3.10 или я ошибаюсь?
а в них еще не разработан детект 7 верси

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





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 27 марта 2009 13:13 · Поправил: Hellspawn
· Личное сообщение · #13

BoRoV

чё там разрабатывать то? 2 строки дописать нужно и ещё 2 чтобы 2007, 2009 детектить.

-----
[nice coder and reverser]





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

Создано: 27 марта 2009 13:23
· Личное сообщение · #14

да я знаю, для 200х я нашел что нужно писать, а вот для 7 хз что нужно, если можешь, то скажи что нужно дописать

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





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

Создано: 27 марта 2009 16:22
· Личное сообщение · #15

BoRoV пишет:
да я знаю, для 200х я нашел что нужно писать, а вот для 7 хз что нужно, если можешь, то скажи что нужно дописать


Я уже выкладывал свой детектор версии дельфей из DE Decompiler тут:

--> Link <--

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





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

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

GPcH пишет:
Я уже выкладывал свой детектор версии дельфей из DE Decompiler

да там не по сигнам как у тебя детектится, а по какой-то херне, она там считается, и потом по тому что получилось определятся версия, для 200х я нашел какое должно быть значение, а вот для 7-ой версии ввели еще одно условие, т.к. это значение что считается совпадает с 6-ой версией

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





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

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

BoRoV пишет:
да там не по сигнам как у тебя детектится


Да ты мой пост не полностью прочитал - там два листинга. Первый - чисто детект дельфей по сигнам,
второй детект версии по константам. Я детектирую все версии там, включая 2005 и 2007. 2009 не детектит так как в те времена ее еще не было.

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





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

Создано: 27 марта 2009 17:40
· Личное сообщение · #18

Все, нашел, я в ВБ не силен, можешь обяснить как ты находишь xLng1?

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





Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 27 марта 2009 18:06
· Личное сообщение · #19

Hellspawn, а почему DiE не детектит версии линкера????

-----
Чтобы юзер в нэте не делал,его всё равно жалко..




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

Создано: 27 марта 2009 20:51
· Личное сообщение · #20

Что-то sick,аббревиатура не очень=)
Если только "натравить на Borland Delphi Studio" =))
Расшифровку конечно видел на сайте,но чувствую,что изначально было "натравить",а потом уже расшифровывали по буквам, слово Sick =)
sick [sIk] adj
1. больной
2. чувствующий тошноту
3. болезненный, нездоровый
4. относящийся к больному
5. связанный с болезнью
6. пресыщенный
7. уставший
8. тоскующий
9. раздосадованный
10. бледный, слабый (о цвете, свете и т. п.)
sick [sIk] v
натравливать, натравить (собаку)




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

Создано: 27 марта 2009 21:11
· Личное сообщение · #21

и стоило это писать
ну умеешь игратся переврдчиком гугла, ну и молодец
а не по теме лучши не пиши

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




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

Создано: 28 марта 2009 00:32 · Поправил: MrDenis
· Личное сообщение · #22

+ В дизасме можно перейти на адрес двойным щелчком

при вводе адреса можно указывать имя, например, start

+ Небольшие изменения ГУИ

+ Обнаружение версии по методу GPcH. thanx

- PEiD dll

call -0000022F теперь c указанием адреса, а не смещения
вообще дизасм у меня сейчас не приоритетная задача,
сначала бы доделать сборщик классов и обнаружение новых
версий Delphi




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

Создано: 28 марта 2009 00:40
· Личное сообщение · #23

добавить бы перетаскивание, чтобы форма файлы ловила...

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





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

Создано: 28 марта 2009 01:39
· Личное сообщение · #24

BoRoV пишет:
можешь обяснить как ты находишь xLng1?


Там же явно прописано:

xLng1 = xLng

Это лишь копирование DWORD'а. Лень было именовать как либо - так как все равно это просто DWORD.

Разъясняю смысл каждой строчки сорца:

//Ищем текст TControl в EXE файле:

sTemp = InStr(sTemp + 1, sText, Chr(8) & "TControl")

//Если он равен нулю, выходим

If sTemp = 0 Then Exit For

//Через 8 символов после этого текста идет DWORD. Считываем его и проверяем на валидный адрес

Get #strFile, sTemp + 9, xLng
If VaToOffset(strFile, xLng) > 0 Then

//Сохраняем его для дальнейшего использования

xLng1 = xLng

//Невдалеке незадолго до Tcontrol валяются нужные нам DWORD сигнатуры. Читаем их

Get #strFile, VaToOffset(strFile, xLng) - 39, xLng
Get #strFile, VaToOffset(strFile, xLng1) - 83, xLng1

//Сравниваем сигнатуры с константами и определяем версию Delphi.

Select Case xLng

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





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

Создано: 28 марта 2009 01:42
· Личное сообщение · #25

MrDenis пишет:
+ Обнаружение версии по методу GPcH. thanx


Всегда рад помочь Если еще какие вопросы будут по дельфям - пиши.

И сделай вкладку со списком адресов функций в виде:

ИмяФормы::АдресФункции

И чтобы при щелчке по этим адресам в листбоксе происходил показ дизасма.

PS: Чет каждую весну народ на дельфи декомпили тянет

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




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

Создано: 28 марта 2009 09:01
· Личное сообщение · #26

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




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 28 марта 2009 12:45
· Личное сообщение · #27

MrDenis пишет:
call -0000022F теперь c указанием адреса, а не смещения
вообще дизасм у меня сейчас не приоритетная задача,
сначала бы доделать сборщик классов и обнаружение новых
версий Delphi


как это не приоритетная? тогда она не на много лучше Source Rescuer

MrDenis пишет:
+ Обнаружение версии по методу GPcH. thanx


это не его метод.

Bronco пишет:
Hellspawn, а почему DiE не детектит версии линкера????


детектит, но там мало сигн

-----
[nice coder and reverser]




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

Создано: 28 марта 2009 14:13
· Личное сообщение · #28

MrDenis
В DeDe я декомпилировал Borland C++ 1999
А эта штука пока что не может этого делать
может и это поправишь?



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

Создано: 28 марта 2009 14:17 · Поправил: MrDenis
· Личное сообщение · #29

Hellspawn
как это не приоритетная?
дизасм всё равно я буду менять. и написание анализатора кода займёт всё моё свободное время. поэтому это на потом. Согласен, сейчас прога ненамного лучше Source Rescuer'a, но для меня было главное иметь экспорт имён и функций. Поэтому пока я доволен.

это не его метод
я понимаю, что алгоритм, почти тот же, что и в DeDe. Но и daFixer, я думаю, не всё сам придумал

GPcH
PS: Чет каждую весну народ на дельфи декомпили тянет
вообще что-то писать было лень. какое-то время я ждал пока сделают приемлемый вариант, но не дождался
эх были времена, и я на бейсиках кодил.

gpic
я совсем не хотел обидить автора...
Автор совсем не обиделся название вообще было придумано специально. грубо говоря, I'm SICK of all the shit. Понимать можно по разному... Я знаю как иностранцам видется это название. Но это же не серьёзный коммерческий продукт, где тупое название - позор продукту. А вообще, I don't care. Хоть кнопка Donate и присутствует, но когда прога и так вся выложена, то это для красоты... или для альтруистов


 eXeL@B —› Софт, инструменты —› Сборщик инфы Delphi
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати