Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+6 невидимых)

 eXeL@B —› Программирование —› Create class instance from Delphi EXE
Посл.ответ Сообщение

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

Создано: 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'



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

Создано: 21 августа 2008 12:03
· Личное сообщение · #2

написать похожий код на делфи? или религия не позволяет =))



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

Создано: 21 августа 2008 12:07
· Личное сообщение · #3

За похожий код на Делфи буду весьма благодарен.
А ещё лучше было бы, если б кто-нибудь дал ссылку на статью или материал, как вообще представляються классы в асме, что б я больше не отвлекал ваше внимание


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


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