Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› Create class instance from Delphi EXE |
Посл.ответ | Сообщение |
|
Создано: 21 августа 2008 10:17 · Личное сообщение · #1 Всем привет. У меня возникла проблема. Есть программа, написанная на Д6-7, которая использует dat файл как базу данных для хранения своей информации ( база данных анализов пациентов). Алгоритм записи я методом трасировки кода понял, но наткнулся на проблему, что сам запись - обьект записанный в стрим ( TSomeObject.SaveToStream ), а уже этот стрим пишется в dat файл. Очень бы хотелося услышать ваши советы, как мне все-таки вытянуть оттуда эти данные? Я здесь вижу 2 варианта: 1. Каким-то образом подгрузить exe в память и вытянуть оттуда экземпляр нужного мне класа. Но по-моему это фантастика. 2. По ассемблерному коду воссоздать класс. Это уже выглядит немного попроще, но я никогда таким не занимался. 004F8F28 TIndexEntry.Object_Entry: 004F8F28 748F4F00 dd TIndexEntry.VMT_Entry 004F8F2C 00000000 dd 00000000h 004F8F30 00000000 dd 00000000h 004F8F34 00000000 dd 00000000h 004F8F38 00000000 dd 00000000h 004F8F3C 00000000 dd 00000000h 004F8F40 00000000 dd 00000000h 004F8F44 00000000 dd 00000000h 004F8F48 748F4F00 dd TIndexEntry.VMT_Entry 004F8F4C 14000000 dd 00000014h 004F8F50 14114000 dd TObject.Object_Entry 004F8F54 18444000 dd TObject.SafeCallException 004F8F58 24444000 dd TObject.AfterConstruction 004F8F5C 28444000 dd TObject.BeforeDestruction 004F8F60 2C444000 dd TObject.Dispatch 004F8F64 20444000 dd TObject.DefaultHandler 004F8F68 68414000 dd TObject.NewInstance 004F8F6C 84414000 dd TObject.FreeInstance 004F8F70 F4B44F00 dd TIndexEntry.Destroy 004F8F74 TIndexEntry.VMT_Entry: 004F8F74 0B54496E646578456E74+ db 0Bh,'TIndexEntry' 004F8F80 TIndexEntryList.Object_Entry: 004F8F80 CC8F4F00 dd TIndexEntryList.VMT_Entry 004F8F84 00000000 dd 00000000h 004F8F88 00000000 dd 00000000h 004F8F8C 00000000 dd 00000000h 004F8F90 00000000 dd 00000000h 004F8F94 00000000 dd 00000000h 004F8F98 00000000 dd 00000000h 004F8F9C 00000000 dd 00000000h 004F8FA0 DC8F4F00 dd TIndexEntryList.Class_Name 004F8FA4 18000000 dd 00000018h 004F8FA8 68354300 dd TObjectList.Object_Entry 004F8FAC 18444000 dd TObject.SafeCallException 004F8FB0 24444000 dd TObject.AfterConstruction 004F8FB4 28444000 dd TObject.BeforeDestruction 004F8FB8 2C444000 dd TObject.Dispatch 004F8FBC 20444000 dd TObject.DefaultHandler 004F8FC0 68414000 dd TObject.NewInstance 004F8FC4 84414000 dd TObject.FreeInstance 004F8FC8 78B64F00 dd TIndexEntryList.Destroy 004F8FCC TIndexEntryList.VMT_Entry: 004F8FCC C0DC4100 dd TList.AssignTo 004F8FD0 2C384300 dd TObjectList.DefineProperties 004F8FD4 20DB4100 dd TList.Assign 004F8FD8 9CDB4100 dd TList.CreateObject 004F8FDC TIndexEntryList.Class_Name: 004F8FDC 0F54496E646578456E74+ db 0Fh,'TIndexEntryList' ![]() |
|
Создано: 21 августа 2008 12:03 · Личное сообщение · #2 |
|
Создано: 21 августа 2008 12:07 · Личное сообщение · #3 |
![]() |
eXeL@B —› Программирование —› Create class instance from Delphi EXE |