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

 eXeL@B —› Софт, инструменты —› DRX: Delphi 2010/XE RTTI eXtractor
. 1 . 2 . 3 . >>
Посл.ответ Сообщение

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

Создано: 06 ноября 2010 16:20
· Личное сообщение · #1

Начиная с delphi2010, в exe включается расширенная RTTI-информация, теперь это не только секция published, но по умолчанию, для полей начиная с private, для свойств и методов - начиная с public.
Т.к на паблике тулзов для 2010+ не видно, решил сделать свою:
zalil.ru/29925555

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

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


Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 06 ноября 2010 16:22
· Личное сообщение · #2

A V пишет:
теперь это не только секция published, но по умолчанию, для полей начиная с private, для свойств и методов - начиная с public.

Поэтому рекомендуется использовать это:
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}

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


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

Создано: 06 ноября 2010 16:25
· Личное сообщение · #3

A V пишет:
Начиная с delphi2010, в exe включается расширенная RTTI-информация, теперь это не только секция published, но по умолчанию, для полей начиная с private, для свойств и методов - начиная с public.Т.к на паблике тулзов для 2010+ не видно, решил сделать свою:

Для чего тулза хоть напишите

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

Создано: 06 ноября 2010 16:36
· Личное сообщение · #4

dermatolog
я в курсе, но т.к это 'по умолчанию', то много где и будет
Isaev
ну из названия -- для извлечения RTTI инфы. Типа exe2dpr/dede, так что можно назвать это 'декомпилятор'



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

Создано: 06 ноября 2010 16:46 · Поправил: crypto
· Личное сообщение · #5

A V
Т.к на паблике тулзов для 2010+ не видно
IDR поддерживает 2010 и извлекает информацию о RTTI.



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

Создано: 06 ноября 2010 16:48
· Личное сообщение · #6

crypto
ну на сайте написано:
kb2010.bin – база знаний версии Delphi 2010 (архив защищён паролем)

так что не совсем паблик -)



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

Создано: 06 ноября 2010 17:54
· Личное сообщение · #7

A V
Против правды не попрешь




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

Создано: 06 ноября 2010 17:55
· Личное сообщение · #8

А сорцы будут?



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

Создано: 06 ноября 2010 19:21
· Личное сообщение · #9

Archer
будут, когда оно научится себя декомпилить -)
вообще, если кому интересно, могу скинуть, но там пока смотреть-то не на что - весь код по-сути - сдвиг указателей в структуре PackageTypeInfo + обертка над стандартным парсером rtti)
вот если сделаю трассировку значений параметров/лок. переменных + распознавание вызовов rtl/vcl, то
может и будет полезно




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

Создано: 06 ноября 2010 19:34
· Личное сообщение · #10

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



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

Создано: 19 ноября 2010 00:40
· Личное сообщение · #11

version 0.2.0a [18.11.2010]
! recognition of _some_ rtl/vcl library functions (test mode)
+ dll files support
* improved string refs detection
+ creates dpr/dpk
+ intialization/finalization sections

http://zalil.ru/29993870

зы: сорцы тулзы по запросу



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

Создано: 18 декабря 2010 21:04 · Поправил: A V
· Личное сообщение · #12

version 0.2.3 [09.12.2010]
* disasm module is changed to BeaEngine
+ recognition of types/methods attributes
+ detection of references to resourcestrings
* improved output of nested and generic types
* fixes in displaying derived enum types

version 0.2.2 [03.12.2010]
+ recogniton of
> interfaces that class implements
> 'reference to method' types
> variant parts in records

version 0.2.1 [30.11.2010]
+ creates map file
* improved recognition of
> props getters, setters and stored methods
> event handlers params in forms w/o extended RTTI
> var/out/const param flags in event and procedure types
+ optimized for multi-core cpus
* fix: v0.2.0 didn't create dfm files

zalil.ru/30174688 (fixed)



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

Создано: 12 января 2011 11:27
· Личное сообщение · #13

version 0.3.0 [11.01.2011]
! support files built with runtime packages
! improved recognition of references to class fields and methods params
+ recognition of some methods w/o rtti (private/protected)
+ recognition of calls to some virtual methods
* improved recognition of calls to library functions
* critical fixes: v0.2.3 may crash on some resourcestrings and empty records
* fixes in producing units which contained form class with other classes
* fixes in map file data
* fixes in displaying variant parts of records
+ 'uses' section

rghost.ru/3908049

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

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

Создано: 28 августа 2011 12:04
· Личное сообщение · #14

version 0.5.0 [27.08.2011]
! supports 64-bit files compiled with XE2 (use drx64.exe for x64 files, drx32.exe for x86)
+ recognition of methods in records and indexed properties in XE2
* fixed AV in producing dpr/dpk files

version 0.4.1 [16.04.2011]
+ units that were added implicitly (most of vcl/rtl files and components in design time)
are not produced by default, this handled by 'a' switch
- no more init/finit sections (they were displayed incorrectly)

version 0.4.0 [06.02.2011]
! recognition of non-RTTI virtual, dynamic, message and some abstract methods
(messages names are stored in msgnames.lst in 'name=message_code' format)
! recognition of methods calls is significantly improved (but the speed is much slower)
+ detection of references to class types
+ methods params info in map file
* fixes in displaying non-RTTI methods
* fixes in displaying fields with array and 'inplace record' types

rghost.ru/19573231

| Сообщение посчитали полезным: Airenikus, ajax, 4kusNick, daFix, VodoleY, yagello, Gideon Vi, _ruzmaz_

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

Создано: 07 октября 2011 18:50
· Личное сообщение · #15

Перезалейте пожалуйста, файл удален.



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

Создано: 08 октября 2011 18:56
· Личное сообщение · #16

x123
http://rghost.ru/24719291

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

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

Создано: 09 октября 2011 00:03
· Личное сообщение · #17

antipod
Спасибо.




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

Создано: 09 октября 2011 10:29
· Личное сообщение · #18

Для Спасиб есть вполне себе хорошая кнопка под названием Полезное сообщение, пользуйтесь.

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

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

Создано: 09 октября 2011 14:56
· Личное сообщение · #19

x123
Та версия, что я выкладывал в последний раз (0.5.0 RC1) - дико глючная - там библиотека дизасма новая, а хедеры старые остались - не понятно как вообще она работала

Вот RC2 - должна глючить поменьше
http://rghost.ru/24820571

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

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

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

Поправил еще неск-ко критичных баг, приводящих к AV
вот 0.5.0 RC3
http://rghost.ru/25724231

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


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

Создано: 16 октября 2011 00:13
· Личное сообщение · #21

A V

А на чем хоть увидеть результат работы можно? На программах, скомпилированных XE и XE2 не работает. По крайней мере на реальных проектах (на hello world не проверял).

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




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

Создано: 16 октября 2011 11:09 · Поправил: A V
· Личное сообщение · #22

GPcH
скинь на av.junk2007 эт гмайл.сом примеры, на чем не сработало, поправлю.
и не работает - это вылетает с ошибкой или пишет, что не та версия ?
И еще, если exe импортирует какие-то ф-ии из собственных dll/bpl, то лучше чтобы они лежали в той-же папке или были доступны по PATH.

зы: а вобще можно собственно на самих drx32/drx64.exe проверить (только скопировать их сначала под другим именем)



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

Создано: 16 октября 2011 22:03
· Личное сообщение · #23

64 битка падает на станд. модулях из Дельфи XE2

пример

d:\archive\Delphi\drx_rc3>drx64.exe fmxdae160.bpl
Fatal error: Access violation at address 000000000055C4B9 in module 'drx64.exe'. Read of address 000
0000000000010

d:\archive\Delphi\drx_rc3>drx64.exe xmlrtl160.bpl
Fatal error: Access violation at address 000000000055C4B9 in module 'drx64.exe'. Read of address 000
0000000000010
^C

32 битка тоже не очень любит стд. бпл-ки (32 битки)

d:\archive\Delphi\drx_rc3>drx32.exe rtl160.bpl
Error: Can't load image

d:\archive\Delphi\drx_rc3>drx32.exe BeaEngine.dll
Fatal error: Access violation at address 004E6714 in module 'drx32.exe'. Read of address 00000000
^C
d:\archive\Delphi\drx_rc3>drx32.exe BeaEngine64.dll
Error: Can't load image



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

Создано: 16 октября 2011 23:22
· Личное сообщение · #24

sendersu
>64 битка падает на станд. модулях из Дельфи XE2
Падать конечно не должно, но и обрабатывать 32-битные dll-и, как ты понимаешь, 64-битка тоже не будет.. поправил, в след. билде будет по другому ругаться -)

>32 битка тоже не очень любит стд. бпл-ки (32 битки)

>drx32.exe rtl160.bpl
>Error: Can't load image
Вот это уже странно, очень.. у меня rtl160 обрабатывается нормально. bpl'ка точно в текущей папке есть?
Кто-то еще может проверить, у всех так?

>drx32.exe BeaEngine.dll

BeaEngine написана на C, так что вполне может и упасть.. хотя стоит конечно добавить проверок на принадлежность к дельфям, но не думаю что это критично

спасибо за фидбэк!
и, да, если тестить на стандартных дельфевых библиотеках, то лучше это делать с ключем '+a' либо убрать exclude.lst (иначе стандартные дельфевые модули, к-е в этих либах и есть, не будут выдываться)



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

Создано: 17 октября 2011 00:51
· Личное сообщение · #25

посмотрел, действительно drx64 на большинстве 64-bit bpl'ек падал..

поправил в RC4
http://rghost.ru/25890721

вопрос, глючит ли у кого еще drx32 на rtl160.bpl, открытый..




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

Создано: 18 октября 2011 03:04 · Поправил: GPcH
· Личное сообщение · #26

A V пишет:
и не работает - это вылетает с ошибкой или пишет, что не та версия ?


На 32 битных файлах, собранных в Delphi XE2 писало:

Scanning type info..
Can't find data file dir

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

Установка через команду cd рабочей директории на папку с твоей программой - решило проблему. Вообще странно что ты путь берешь не через ExtractFilePath(Application.ExeName).

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




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

Создано: 18 октября 2011 21:55 · Поправил: A V
· Личное сообщение · #27

GPcH пишет:
. Вообще странно что ты путь берешь не через ExtractFilePath(Application.ExeName).

забавно, всегда через ExeName/ParamStr(0) и узнаю, но здесь почему-то поставил GetCurrentDir




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

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

Ссылки не работают



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

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

AKAB
http://www.multiupload.com/JXPZNGLHXW

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

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

Создано: 04 июня 2012 14:39
· Личное сообщение · #30

Пожалуйста, перезалейте.


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


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