патч dllmain

g305noobo

Известный
Автор темы
211
187
пытаюсь запатчить dllmain для модуля от лаунчера в сампе в иде.
я хочу вызвать одну функцию после проверки на fdwReason и сразу вернуть 1, чтобы другие функции из этой части не вызывались, но
игра просто не открывается. подскажите, что не так делаю?

делаю так: если ".text:100EE724 cmp eax, 1" (fdwReason) проходит, тогда вызов sub_10113E40 и return 1
Код:
.text:100EE6E0 ; BOOL __stdcall DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
.text:100EE6E0 _DllMain@12     proc near               ; CODE XREF: dllmain_dispatch(HINSTANCE__ * const,ulong,void * const)+6B↓p
.text:100EE6E0                                         ; dllmain_dispatch(HINSTANCE__ * const,ulong,void * const)+83↓p
.text:100EE6E0
.text:100EE6E0 anonymous_0     = dword ptr -0Ch
.text:100EE6E0 var_8           = dword ptr -8
.text:100EE6E0 hinstDLL        = dword ptr  4
.text:100EE6E0 fdwReason       = dword ptr  8
.text:100EE6E0 lpvReserved     = dword ptr  0Ch
.text:100EE6E0
.text:100EE6E0 ; FUNCTION CHUNK AT .text:10015FE0 SIZE 00000021 BYTES
.text:100EE6E0 ; FUNCTION CHUNK AT .text:10365FE0 SIZE 00000035 BYTES
.text:100EE6E0 ; FUNCTION CHUNK AT .text:1036601A SIZE 0000002A BYTES
.text:100EE6E0
.text:100EE6E0 ; __unwind { // loc_1036601A
.text:100EE6E0                 push    ebx
.text:100EE6E1                 mov     ebx, esp
.text:100EE6E3                 sub     esp, 8
.text:100EE6E6                 and     esp, 0FFFFFFF8h
.text:100EE6E9                 add     esp, 4
.text:100EE6EC                 push    ebp
.text:100EE6ED                 mov     ebp, [ebx+4]
.text:100EE6F0                 mov     [esp+0Ch+var_8], ebp
.text:100EE6F4                 mov     ebp, esp
.text:100EE6F6                 push    0FFFFFFFFh
.text:100EE6F8                 push    offset loc_1036601A
.text:100EE6FD                 mov     eax, large fs:0
.text:100EE703                 push    eax
.text:100EE704                 push    ebx
.text:100EE705                 sub     esp, 0C8h
.text:100EE70B                 mov     eax, ___security_cookie
.text:100EE710                 xor     eax, ebp
.text:100EE712                 mov     [ebp-14h], eax
.text:100EE715                 push    esi
.text:100EE716                 push    edi
.text:100EE717                 push    eax
.text:100EE718                 lea     eax, [ebp-0Ch]
.text:100EE71B                 mov     large fs:0, eax
.text:100EE721                 mov     eax, [ebx+0Ch]
.text:100EE724                 cmp     eax, 1
.text:100EE727                 jnz     loc_100EECFD
.text:100EE72D                 call    sub_10212FF0
.text:100EE732                 cmp     hHeap, 0
.text:100EE739                 jnz     short loc_100EE74C
.text:100EE73B                 push    0               ; dwMaximumSize
.text:100EE73D                 push    0               ; dwInitialSize
.text:100EE73F                 push    0               ; flOptions
.text:100EE741                 call    ds:HeapCreate
.text:100EE747                 mov     hHeap, eax
.text:100EE74C
Код:
.text:100EE6E0 ; BOOL __stdcall DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
.text:100EE6E0 _DllMain@12     proc near               ; CODE XREF: dllmain_dispatch(HINSTANCE__ * const,ulong,void * const)+6B↓p
.text:100EE6E0                                         ; dllmain_dispatch(HINSTANCE__ * const,ulong,void * const)+83↓p
.text:100EE6E0
.text:100EE6E0 var_8           = dword ptr -8
.text:100EE6E0 hinstDLL        = dword ptr  4
.text:100EE6E0 fdwReason       = dword ptr  8
.text:100EE6E0 lpvReserved     = dword ptr  0Ch
.text:100EE6E0
.text:100EE6E0 ; FUNCTION CHUNK AT .text:10015FE0 SIZE 00000021 BYTES
.text:100EE6E0 ; FUNCTION CHUNK AT .text:10365FE0 SIZE 00000035 BYTES
.text:100EE6E0 ; FUNCTION CHUNK AT .text:1036601A SIZE 0000002A BYTES
.text:100EE6E0
.text:100EE6E0 ; __unwind { // loc_1036601A
.text:100EE6E0                 push    ebx
.text:100EE6E1                 mov     ebx, esp
.text:100EE6E3                 sub     esp, 8
.text:100EE6E6                 and     esp, 0FFFFFFF8h
.text:100EE6E9                 add     esp, 4
.text:100EE6EC                 push    ebp
.text:100EE6ED                 mov     ebp, [ebx+4]
.text:100EE6F0                 mov     [esp+0Ch+var_8], ebp
.text:100EE6F4                 mov     ebp, esp
.text:100EE6F6                 push    0FFFFFFFFh
.text:100EE6F8                 push    offset loc_1036601A
.text:100EE6FD                 mov     eax, large fs:0
.text:100EE703                 push    eax
.text:100EE704                 push    ebx
.text:100EE705                 sub     esp, 0C8h
.text:100EE70B                 mov     eax, ___security_cookie
.text:100EE710                 xor     eax, ebp
.text:100EE712                 mov     [ebp-14h], eax
.text:100EE715                 push    esi
.text:100EE716                 push    edi
.text:100EE717                 push    eax
.text:100EE718                 lea     eax, [ebp-0Ch]
.text:100EE71B                 mov     large fs:0, eax
.text:100EE721                 mov     eax, [ebx+0Ch]
.text:100EE724                 cmp     eax, 1
.text:100EE727                 jnz     loc_100EECFD
.text:100EE72D                 call    sub_10113E40
.text:100EE732                 mov     eax, 1
.text:100EE737                 retn
 
  • Вау
Реакции: ChromiusJ