Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Снова про DLL :(
<< . 1 . 2 . 3 .
Посл.ответ Сообщение

Ранг: 32.0 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 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 запускаю менеджер, чтобы посмотреть что там передаеться смотрим в отладчике вылетает эксепшин что не так ????




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 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 и в нём указатели на функции.

59e0_21.11.2006_CRACKLAB.rU.tgz - loaddll.cpp




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 21 ноября 2006 09:26
· Личное сообщение · #3

и вот screen shot

5ab4_21.11.2006_CRACKLAB.rU.tgz - interface.png



Ранг: 32.0 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 21 ноября 2006 15:00
· Личное сообщение · #4

оки пробую...




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 22 ноября 2006 16:46
· Личное сообщение · #5

Ну как там, воятель? Стучи в личку если что...



Ранг: 32.0 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 22 ноября 2006 17:45
· Личное сообщение · #6

оки счас пытаюсь вытащить комманды которые идит по usb к контроллеру....
ну типа ReadFile WriteFile протокол обмена




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 27 ноября 2006 11:09 · Поправил: s0larian
· Личное сообщение · #7

кста, про команды - вот тебе ещё идейка - можешь написать тонкую прослойку которая просто пишет все аргументы в log и вызывает оригинальные функции.


<< . 1 . 2 . 3 .
 eXeL@B —› Программирование —› Снова про DLL :(
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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