eXeL@B —› Софт, инструменты —› DRX: Delphi 2010/XE RTTI eXtractor |
. 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 06 ноября 2010 16:20 · Личное сообщение · #1 Начиная с delphi2010, в exe включается расширенная RTTI-информация, теперь это не только секция published, но по умолчанию, для полей начиная с private, для свойств и методов - начиная с public. Т.к на паблике тулзов для 2010+ не видно, решил сделать свою: zalil.ru/29925555 Процесс при анализе не запускается, так что запакованные фалы не поддерживает. | Сообщение посчитали полезным: vden, Wald |
|
Создано: 06 ноября 2010 16:22 · Личное сообщение · #2 A V пишет: теперь это не только секция published, но по умолчанию, для полей начиная с private, для свойств и методов - начиная с public. Поэтому рекомендуется использовать это: {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} | Сообщение посчитали полезным: vden |
|
Создано: 06 ноября 2010 16:25 · Личное сообщение · #3 A V пишет: Начиная с delphi2010, в exe включается расширенная RTTI-информация, теперь это не только секция published, но по умолчанию, для полей начиная с private, для свойств и методов - начиная с public.Т.к на паблике тулзов для 2010+ не видно, решил сделать свою: Для чего тулза хоть напишите ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 06 ноября 2010 16:36 · Личное сообщение · #4 |
|
Создано: 06 ноября 2010 16:46 · Поправил: crypto · Личное сообщение · #5 |
|
Создано: 06 ноября 2010 16:48 · Личное сообщение · #6 |
|
Создано: 06 ноября 2010 17:54 · Личное сообщение · #7 |
|
Создано: 06 ноября 2010 17:55 · Личное сообщение · #8 |
|
Создано: 06 ноября 2010 19:21 · Личное сообщение · #9 Archer будут, когда оно научится себя декомпилить -) вообще, если кому интересно, могу скинуть, но там пока смотреть-то не на что - весь код по-сути - сдвиг указателей в структуре PackageTypeInfo + обертка над стандартным парсером rtti) вот если сделаю трассировку значений параметров/лок. переменных + распознавание вызовов rtl/vcl, то может и будет полезно |
|
Создано: 06 ноября 2010 19:34 · Личное сообщение · #10 |
|
Создано: 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 зы: сорцы тулзы по запросу |
|
Создано: 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) |
|
Создано: 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 |
|
Создано: 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_ |
|
Создано: 07 октября 2011 18:50 · Личное сообщение · #15 |
|
Создано: 08 октября 2011 18:56 · Личное сообщение · #16 |
|
Создано: 09 октября 2011 00:03 · Личное сообщение · #17 |
|
Создано: 09 октября 2011 10:29 · Личное сообщение · #18 Для Спасиб есть вполне себе хорошая кнопка под названием Полезное сообщение, пользуйтесь. | Сообщение посчитали полезным: T_E_D |
|
Создано: 09 октября 2011 14:56 · Личное сообщение · #19 |
|
Создано: 15 октября 2011 22:55 · Личное сообщение · #20 |
|
Создано: 16 октября 2011 00:13 · Личное сообщение · #21 |
|
Создано: 16 октября 2011 11:09 · Поправил: A V · Личное сообщение · #22 GPcH скинь на av.junk2007 эт гмайл.сом примеры, на чем не сработало, поправлю. и не работает - это вылетает с ошибкой или пишет, что не та версия ? И еще, если exe импортирует какие-то ф-ии из собственных dll/bpl, то лучше чтобы они лежали в той-же папке или были доступны по PATH. зы: а вобще можно собственно на самих drx32/drx64.exe проверить (только скопировать их сначала под другим именем) |
|
Создано: 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 |
|
Создано: 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 (иначе стандартные дельфевые модули, к-е в этих либах и есть, не будут выдываться) |
|
Создано: 17 октября 2011 00:51 · Личное сообщение · #25 |
|
Создано: 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). ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! |
|
Создано: 18 октября 2011 21:55 · Поправил: A V · Личное сообщение · #27 |
|
Создано: 19 декабря 2011 11:32 · Личное сообщение · #28 |
|
Создано: 29 декабря 2011 23:05 · Личное сообщение · #29 |
|
Создано: 04 июня 2012 14:39 · Личное сообщение · #30 |
. 1 . 2 . 3 . >> |
eXeL@B —› Софт, инструменты —› DRX: Delphi 2010/XE RTTI eXtractor |