Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› Снова про DLL :( |
<< . 1 . 2 . 3 . |
Посл.ответ | Сообщение |
|
Создано: 29 октября 2006 23:11 · Поправил: crash_rider · Личное сообщение · #1 НУ вроде вытащил из Dll fd_usb.dll---> CreateInterface имеет : CreateInterface proc near CODE:008C3940 push ebp CODE:008C3941 mov ebp, esp CODE:008C3943 mov eax, offset unk_8C5668 вот это что такое????? не понять.... CODE:008C3948 mov dword ptr [eax], offset sub_8C3880 CODE:008C394E mov dword ptr [eax+4], offset nullsub_1 CODE:008C3955 mov dword ptr [eax+8], offset sub_8C388C CODE:008C395C mov dword ptr [eax+0Ch], offset sub_8C3894 CODE:008C3963 mov dword ptr [eax+10h], offset nullsub_2 CODE:008C396A mov dword ptr [eax+14h], offset nullsub_3 CODE:008C3971 mov dword ptr [eax+18h], offset sub_8C38A4 CODE:008C3978 mov dword ptr [eax+1Ch], offset sub_8C38AC CODE:008C397F mov dword ptr [eax+20h], offset nullsub_4 CODE:008C3986 mov dword ptr [eax+24h], offset nullsub_5 CODE:008C398D mov dword ptr [eax+28h], offset nullsub_6 CODE:008C3994 mov dword ptr [eax+2Ch], offset sub_8C38C0 CODE:008C399B mov dword ptr [eax+30h], offset sub_8C38C8 CODE:008C39A2 mov dword ptr [eax+34h], offset sub_8C38D0 CODE:008C39A9 mov dword ptr [eax+38h], offset nullsub_7 CODE:008C39B0 mov dword ptr [eax+3Ch], offset nullsub_8 CODE:008C39B7 mov dword ptr [eax+40h], offset sub_8C38E0 CODE:008C39BE mov dword ptr [eax+44h], offset sub_8C38E8 CODE:008C39C5 mov dword ptr [eax+48h], offset nullsub_9 CODE:008C39CC mov dword ptr [eax+4Ch], offset nullsub_10 CODE:008C39D3 mov dword ptr [eax+50h], offset nullsub_11 CODE:008C39DA mov dword ptr [eax+54h], offset sub_8C38FC CODE:008C39E1 mov dword ptr [eax+58h], offset nullsub_12 CODE:008C39E8 mov dword ptr [eax+5Ch], offset sub_8C3908 CODE:008C39EF mov dword ptr [eax+60h], offset sub_8C3910 CODE:008C39F6 mov dword ptr [eax+64h], offset sub_8C3918 CODE:008C39FD mov dword ptr [eax+68h], offset sub_8C3920 CODE:008C3A04 mov dword ptr [eax+6Ch], offset sub_8C3928 CODE:008C3A0B mov dword ptr [eax+70h], offset sub_8C3930 CODE:008C3A12 mov dword ptr [eax+74h], offset sub_8C3938 CODE:008C3A19 pop ebp CODE:008C3A1A retn CODE:008C3A1A CreateInterface endp Пишу на Delphi Dll с экспортируемой процедурой CreateInterface TIn_Module = record // mov eax, offset unk_8C5668 Arrayof : Array [0..120] of byte ; Sub_Msvcrt: function(a4:integer):integer;stdcall; // sub_8C3880 sub_10002B10: procedure; // nullsub_1 sub_10001110: function(a4:integer):integer;stdcall; // sub_8C388C sub_10001120: function(a4:integer;a84:integer):integer;stdcall; // sub_8C3894 CloseAllHandle: procedure; // nullsub_2 Func_DeviceIoControl: procedure; // nullsub_3 sub_10001220: function(a4:integer):integer;stdcall; // sub_8C38A4 sub_100012F0: function(a4:integer):integer;stdcall; // sub_8C38AC sub_10001210: procedure; // nullsub_4 sub_10001160: procedure; // nullsub_5 sub_100011B0: procedure; // nullsub_6 sub_10001320: function(a4:integer;a8:integer;a16:integer):integer;stdcall; // sub_8C38C0 sub_10001370: function(a4:integer;a8:integer;a16:integer):integer;stdcall; // sub_8C38C8 sub_100013C0: function(a4:integer;a84:integer):integer;stdcall; // sub_8C38D0 sub_10001400: procedure; // nullsub_7 sub_10001450: procedure; // nullsub_8 sub_10001460: function(a4:integer;a84:integer):integer;stdcall; // sub_8C38E0 sub_10001530: function(a4:integer;a84:integer):integer;stdcall; // sub_8C38E8 sub_10001590: procedure; // nullsub_9 sub_10001600: procedure; // nullsub_10 sub_10001450copy: procedure; // nullsub_11 sub_10001640: function(a4:integer;a8:integer;a16:integer):integer;stdcall; // sub_8C38FC sub_10001750: procedure; // nullsub_12 sub_10001D20: function(a4:integer;a8:integer;a16:integer):integer;stdcall; // sub_8C3908 sub_10001D40: function(a4:integer;a8:integer;a16:integer):integer;stdcall; // sub_8C3910 sub_10001D60: function(a4:integer):integer;stdcall; // sub_8C3918 WriteCommand: function(a4:integer):integer;stdcall; // sub_8C3920 WriteCommand2: function(a4:integer;a84:integer):integer;stdcall; // sub_8C3928 ReadCommand: function(a4:integer;a84:integer):integer;stdcall; // sub_8C3930 Facet_locale_std__AEPAXI_Z: function(a4:integer):integer;stdcall; // sub_8C3938 end; обзываю ее fd_usb.dll запускаю менеджер, чтобы посмотреть что там передаеться смотрим в отладчике вылетает эксепшин ![]() ![]() |
|
Создано: 21 ноября 2006 09:25 · Личное сообщение · #2 crash_rider пишет: что не правильно????? Эх... не знаю с чего начать даже ![]() a) GetProcAddress() даст тебе указатель на функию из DLL b) разберись с тем как работают указатели на данные и функции в C++ c) ты должен используешь только class declaration - то есть спецификацию, а конкретный instance получишь из dll d) вынеси class declarations в отдельный .h файл и сделай #include в оба проекта e) tabs поставь во всех блоках Вот тебе работающий код и screen shot - из оригинальной DLL получаешь interface и в нём указатели на функции. ![]() ![]() |
|
Создано: 21 ноября 2006 09:26 · Личное сообщение · #3 |
|
Создано: 21 ноября 2006 15:00 · Личное сообщение · #4 |
|
Создано: 22 ноября 2006 16:46 · Личное сообщение · #5 |
|
Создано: 22 ноября 2006 17:45 · Личное сообщение · #6 |
|
Создано: 27 ноября 2006 11:09 · Поправил: s0larian · Личное сообщение · #7 |
<< . 1 . 2 . 3 . |
![]() |
eXeL@B —› Программирование —› Снова про DLL :( |