RE: wrapping DX

new topic     » goto parent     » topic index » view thread      » older message » newer message

>004011B8 8B 0D D0 79 41 00    mov         ecx,dword ptr [g_pVB (004179d0)]
>004011BE 8B 11                mov         edx,dword ptr [ecx]
>004011C0 A1 D0 79 41 00       mov         eax,[g_pVB (004179d0)]
>004011C5 50                   push        eax
>004011C6 FF 52 2C             call        dword ptr [edx+2Ch]
>

I assume you have checked that comfunc equals peek4u(g_pVB)+#2C  (or 
something like that).
The last PUSH is interesting. I don't really understand where this parameter 
is aimed, but your code (below) doesn't seem to perform the extra push. 
Perhaps this param has something to do with Lock() being a virtual 
function..?  C++ isn't really my strong side so I wouldn't know.


>#60,                    --    0: pusha
>#BB,#00,#00,#00,#00,    --    1: mov ebx, paramcount (2)
>#B9,#00,#00,#00,#00,    --    6: mov ecx, params (7)
>                         --    B: start:
>#8B,#01,                --    B: mov eax, [ecx]
>#50,                    --    D: push eax
>#83,#C1,#04,            --    E: add ecx, 4
>#4B,                    --   11: dec ebx
>#75,#F7,                --   12: jnz start
>#FF,#15,#00,#00,#00,#00,--   14: call dword ptr [comfunc] (22)
>#A3,#00,#00,#00,#00,--   1A: mov [retpointer], eax (27)
>#61,                    --   20: popa
>#C3},                   --   21: ret
>

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu