Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Help to Understand Disasmblers.

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
blitz02
Cheater
Reputation: 0

Joined: 28 Feb 2007
Posts: 44

PostPosted: Thu May 06, 2010 8:32 am    Post subject: Help to Understand Disasmblers. Reply with quote

Hi it's me again and thankyou for visiting my thread.

I would likely to know more about disassembly,
I disassembled a dll file(it's a dll of a patched hack).
I'm trying to find the memory address that it modifies/freezes.

Help me understand this :

This is the code.

Code:

 GameMemoryWrite:
        push   ebp
        mov   ebp,esp
        push   ecx
        lea   eax,[ebp-04h]
        push   eax
        push   00000004h
        mov   ecx,[ebp+10h]
        push   ecx
        mov   edx,[ebp+08h]
        push   edx
        call   [KERNEL32.dll!VirtualProtect]
        mov   eax,[ebp+10h]
        push   eax
        mov   ecx,[ebp+0Ch]
        push   ecx
        mov   edx,[ebp+08h]
        push   edx
        call   SUB_L10001370
        add   esp,0000000Ch
        mov   esp,ebp
        pop   ebp
        retn
;------------------------------------------------------------------------------


SUB_L10001370:

Code:
        Align   16
 SUB_L10001370:
        push   ebp
        mov   ebp,esp
        push   edi
        push   esi
        mov   esi,[ebp+0Ch]
        mov   ecx,[ebp+10h]
        mov   edi,[ebp+08h]
        mov   eax,ecx
        mov   edx,ecx
        add   eax,esi
        cmp   edi,esi
        jbe   L10001390
        cmp   edi,eax
        jc    L10001508


Can someone explain it to me clearly? Thanks in advance Smile
Back to top
View user's profile Send private message
Slugsnack
Grandmaster Cheater Supreme
Reputation: 71

Joined: 24 Jan 2007
Posts: 1857

PostPosted: Thu May 06, 2010 9:51 am    Post subject: Reply with quote

Code:
 GameMemoryWrite:
        push   ebp             ;   set up stack frame
        mov   ebp,esp          ;   set up stack frame

        push   ecx                         ;   setting up for 4th param <- flOldProtect
        lea   eax,[ebp-04h]                ;   get pointer to local variable
        push   eax                         ;   4th param <- lpflOldProtect
        push   00000004h                   ;   3rd param <- flNewProtect
        mov   ecx,[ebp+10h]                ;   3rd parameter of this function
        push   ecx                         ;   2nd param <- dwSize
        mov   edx,[ebp+08h]                ;   1st parameter of this function
        push   edx                         ;   1st param <- lpAddress
        call   [KERNEL32.dll!VirtualProtect]    ;   VirtualProtect call
      
      ;   This entire first half shows a wrapper to VirtualProtect
      
      mov   eax,[ebp+10h]                ;   3rd param ( dwSize )
        push   eax                         ;   becomes 3rd param of call to SUB_L10001370
        mov   ecx,[ebp+0Ch]                ;   2nd param of this function = ???
        push   ecx                         ;   becomes 2nd param of call to SUB_L10001370
        mov   edx,[ebp+08h]                ;   1st param of this function
        push   edx                         ;   lpAddress becomes 1st param of call to SUB_L10001370
        call   SUB_L10001370                ;   call to SUB_L10001370

        add   esp,0000000Ch                  ;   caller cleanup
        mov   esp,ebp
      
        pop   ebp          ; destroy stack frame
        retn             ; and return
      
              Align   16
 SUB_L10001370:
        push   ebp          ; set up stack frame
        mov   ebp,esp       ; set up stack frame

        push   edi             ; save edi
        push   esi             ; save esi
        mov   esi,[ebp+0Ch]       ; esi = 2nd param << ??
        mov   ecx,[ebp+10h]       ; ecx = 3rd param << dwSize
        mov   edi,[ebp+08h]       ; edi = 1st param << lpAddress

        mov   eax,ecx    ;   eax = dwSize
        mov   edx,ecx    ;   edx = dwSize
        add   eax,esi    ;   eax = dwSize + esi ( 2nd param << ?? )
        cmp   edi,esi    ;   if( lpAddress >= 2nd param << ?! )
        jbe   L10001390   ;   then.....
        cmp   edi,eax    ;   else if( lpAddress == dwSize + esi ( 2nd param << ?? ) )
        jc    L10001508   ;   then.....


not enough info. and i assume l10001390/l10001508 lie within gamememorywrite fxn ? since it never appears to return.. i can only assume that is what the cleanup after the CALL is for
Back to top
View user's profile Send private message
blitz02
Cheater
Reputation: 0

Joined: 28 Feb 2007
Posts: 44

PostPosted: Thu May 06, 2010 5:43 pm    Post subject: Reply with quote

wow.. Do you have any reference?

Here is the whole code.

Code:
;------------------------------------------------------------------------------
 EntryPoint:
        push   ebp
        mov   ebp,esp
        push   ecx
        mov   eax,[ebp+0Ch]
        mov   [ebp-04h],eax
        cmp   dword ptr [ebp-04h],00000000h
        jz    L10001082
        cmp   dword ptr [ebp-04h],00000001h
        jz    L1000101B
        jmp   L100010AD
 L1000101B:
        push   SSZ10003040_AuditionSEA_Public
        push   00000000h
        call   [USER32.dll!FindWindowA]
        test   eax,eax
        jnz   L1000104D
        push   00000000h
        push   SSZ10003054_Public_Hack
        push   SSZ10003060_Please_use_with_AuditionSEA_exe
        call   [USER32.dll!GetActiveWindow]
        push   eax
        call   [USER32.dll!MessageBoxA]
        push   00000000h
        call   [KERNEL32.dll!ExitProcess]
 L1000104D:
        mov   ecx,[ebp+08h]
        push   ecx
        call   SUB_L100012D6
        add   esp,00000004h
        push   00000040h
        call   [USER32.dll!MessageBeep]
        mov   edx,[L100030A4]
        push   edx
        push   00000000h
        push   00000000h
        push   L100012AF
        push   00000000h
        push   00000000h
        call   [KERNEL32.dll!CreateThread]
        mov   [L100030AC],eax
        jmp   L100010AD
 L10001082:
        mov   eax,[L100030A0]
        push   eax
        push   FFFFFFFCh
        push   00000000h
        push   SSZ10003080_DLightClass
        call   [USER32.dll!FindWindowA]
        push   eax
        call   [USER32.dll!SetWindowLongA]
        push   00000000h
        mov   ecx,[L100030AC]
        push   ecx
        call   [KERNEL32.dll!TerminateThread]
 L100010AD:
        mov   eax,00000001h
        mov   esp,ebp
        pop   ebp
        retn   000Ch
;------------------------------------------------------------------------------
 GameMemoryWrite:
        push   ebp
        mov   ebp,esp
        push   ecx
        lea   eax,[ebp-04h]
        push   eax
        push   00000004h
        mov   ecx,[ebp+10h]
        push   ecx
        mov   edx,[ebp+08h]
        push   edx
        call   [KERNEL32.dll!VirtualProtect]
        mov   eax,[ebp+10h]
        push   eax
        mov   ecx,[ebp+0Ch]
        push   ecx
        mov   edx,[ebp+08h]
        push   edx
        call   SUB_L10001370
        add   esp,0000000Ch
        mov   esp,ebp
        pop   ebp
        retn
;------------------------------------------------------------------------------
 SetAuditionHook:
        push   ebp
        mov   ebp,esp
        sub   esp,00000008h
        mov   eax,[ebp+0Ch]
        mov   [ebp-04h],eax
        cmp   dword ptr [ebp-04h],00000100h
        jz    L10001102
        jmp   CASE_1000126F_PROC0001
 L10001102:
        mov   ecx,[ebp+10h]
        mov   [ebp-08h],ecx
        mov   edx,[ebp-08h]
        sub   edx,0000006Bh
        mov   [ebp-08h],edx
        cmp   dword ptr [ebp-08h],0000000Fh
        ja    CASE_1000126F_PROC0001
        mov   eax,[ebp-08h]
        jmp   [CASE_PROCTABLE_1000126F+eax*4]
 CASE_1000126F_PROC000F:
        push   00000004h
        push   L10003010
        mov   ecx,[L10003000]
        push   ecx
        call   GameMemoryWrite
        add   esp,0000000Ch
        push   00000001h
        push   L10003030
        mov   edx,[L10003004]
        push   edx
        call   GameMemoryWrite
        add   esp,0000000Ch
        jmp   CASE_1000126F_PROC0001
 CASE_1000126F_PROC0008:
        push   00000004h
        push   L1000301C
        mov   eax,[L10003000]
        push   eax
        call   GameMemoryWrite
        add   esp,0000000Ch
        jmp   CASE_1000126F_PROC0001
 CASE_1000126F_PROC0000:
        push   00000004h
        push   L1000302C
        mov   ecx,[L10003004]
        push   ecx
        call   GameMemoryWrite
        add   esp,0000000Ch
        jmp   CASE_1000126F_PROC0001
 CASE_1000126F_PROC0009:
        push   00000004h
        push   L10003018
        mov   edx,[L10003000]
        push   edx
        call   GameMemoryWrite
        add   esp,0000000Ch
        jmp   CASE_1000126F_PROC0001
 CASE_1000126F_PROC000A:
        push   00000004h
        push   L10003014
        mov   eax,[L10003000]
        push   eax
        call   GameMemoryWrite
        add   esp,0000000Ch
        jmp   CASE_1000126F_PROC0001
 CASE_1000126F_PROC000B:
        push   00000004h
        push   L10003020
        mov   ecx,[L10003000]
        push   ecx
        call   GameMemoryWrite
        add   esp,0000000Ch
        jmp   CASE_1000126F_PROC0001
 CASE_1000126F_PROC000C:
        push   00000004h
        push   L10003038
        mov   edx,[L1000300C]
        push   edx
        call   GameMemoryWrite
        add   esp,0000000Ch
        jmp   CASE_1000126F_PROC0001
 CASE_1000126F_PROC0002:
        push   00000004h
        push   L1000303C
        mov   eax,[L1000300C]
        push   eax
        call   GameMemoryWrite
        add   esp,0000000Ch
        jmp   CASE_1000126F_PROC0001
 CASE_1000126F_PROC000D:
        push   00000004h
        push   L10003028
        mov   ecx,[L10003000]
        push   ecx
        call   GameMemoryWrite
        add   esp,0000000Ch
        jmp   CASE_1000126F_PROC0001
 CASE_1000126F_PROC000E:
        push   00000004h
        push   L10003024
        mov   edx,[L10003000]
        push   edx
        call   GameMemoryWrite
        add   esp,0000000Ch
        jmp   CASE_1000126F_PROC0001
 CASE_1000126F_PROC0007:
        push   00000004h
        push   L100030B4
        mov   eax,[L10003008]
        push   eax
        call   GameMemoryWrite
        add   esp,0000000Ch
 CASE_1000126F_PROC0001:
        mov   ecx,[ebp+14h]
        push   ecx
        mov   edx,[ebp+10h]
        push   edx
        mov   eax,[ebp+0Ch]
        push   eax
        mov   ecx,[ebp+08h]
        push   ecx
        mov   edx,[L100030A0]
        push   edx
        call   [USER32.dll!CallWindowProcA]
        mov   esp,ebp
        pop   ebp
        retn   0010h
;------------------------------------------------------------------------------
 CASE_PROCTABLE_1000126F:
       dd   CASE_1000126F_PROC0000
       dd   CASE_1000126F_PROC0001
       dd   CASE_1000126F_PROC0002
       dd   CASE_1000126F_PROC0001
       dd   CASE_1000126F_PROC0001
       dd   CASE_1000126F_PROC0001
       dd   CASE_1000126F_PROC0001
       dd   CASE_1000126F_PROC0007
       dd   CASE_1000126F_PROC0008
       dd   CASE_1000126F_PROC0009
       dd   CASE_1000126F_PROC000A
       dd   CASE_1000126F_PROC000B
       dd   CASE_1000126F_PROC000C
       dd   CASE_1000126F_PROC000D
       dd   CASE_1000126F_PROC000E
       dd   CASE_1000126F_PROC000F
 L100012AF:
        push   ebp
        mov   ebp,esp
        push   SetAuditionHook
        push   FFFFFFFCh
        push   00000000h
        push   SSZ1000308C_DLightClass
        call   [USER32.dll!FindWindowA]
        push   eax
        call   [USER32.dll!SetWindowLongA]
        mov   [L100030A0],eax
        xor   eax,eax
        pop   ebp
        retn
;------------------------------------------------------------------------------
 SUB_L100012D6:
        push   ebp
        mov   ebp,esp
        push   ecx
        push   ebx
        push   esi
        push   edi
        mov   dword ptr [ebp-04h],00000000h
        pushad
        pushfd
        mov   eax,fs:[00000030h]
        mov   eax,[eax+0Ch]
        mov   [ebp-04h],eax
        mov   esi,[eax+0Ch]
        mov   edx,[eax+10h]
 L100012F8:
        lodsd
        mov   esi,eax
        mov   ecx,[eax+18h]
        cmp   ecx,[ebp+08h]
        jnz   L1000130F
        mov   ebx,[eax]
        mov   ecx,[eax+04h]
        mov   [ecx],ebx
        mov   [ebx+04h],ecx
        jmp   L10001313
 L1000130F:
        cmp   edx,esi
        jnz   L100012F8
 L10001313:
        mov   eax,[ebp-04h]
        mov   esi,[eax+14h]
        mov   edx,[eax+18h]
 L1000131C:
        lodsd
        mov   esi,eax
        mov   ecx,[eax+10h]
        cmp   ecx,[ebp+08h]
        jnz   L10001333
        mov   ebx,[eax]
        mov   ecx,[eax+04h]
        mov   [ecx],ebx
        mov   [ebx+04h],ecx
        jmp   L10001337
 L10001333:
        cmp   edx,esi
        jnz   L1000131C
 L10001337:
        mov   eax,[ebp-04h]
        mov   esi,[eax+1Ch]
        mov   edx,[eax+20h]
 L10001340:
        lodsd
        mov   esi,eax
        mov   ecx,[eax+08h]
        cmp   ecx,[ebp+08h]
        jnz   L10001357
        mov   ebx,[eax]
        mov   ecx,[eax+04h]
        mov   [ecx],ebx
        mov   [ebx+04h],ecx
        jmp   L1000135B
 L10001357:
        cmp   edx,esi
        jnz   L10001340
 L1000135B:
        popfd
        popad
        pop   edi
        pop   esi
        pop   ebx
        mov   esp,ebp
        pop   ebp
        retn
;------------------------------------------------------------------------------
        Align   16
 SUB_L10001370:
        push   ebp
        mov   ebp,esp
        push   edi
        push   esi
        mov   esi,[ebp+0Ch]
        mov   ecx,[ebp+10h]
        mov   edi,[ebp+08h]
        mov   eax,ecx
        mov   edx,ecx
        add   eax,esi
        cmp   edi,esi
        jbe   L10001390
        cmp   edi,eax
        jc    L10001508
 L10001390:
        test   edi,00000003h
        jnz   L100013AC
        shr   ecx,02h
        and   edx,00000003h
        cmp   ecx,00000008h
        jc    L100013CC
        rep movsd
        jmp   [L100014B8+edx*4]
 L100013AC:
        mov   eax,edi
        mov   edx,00000003h
        sub   ecx,00000004h
        jc    L100013C4
        and   eax,00000003h
        add   ecx,eax
        jmp   [L100013D0+eax*4]
 L100013C4:
        jmp   [L100014C8+ecx*4]
        Align   4
 L100013CC:
        jmp   [L1000144C+ecx*4]
       db   90h;   '?'
       dd   L100013E0
       dd   L1000140C
       dd   L10001430
 L100013E0:
       db   23h;   '#'
       db   D1h;   ''
       db   8Ah;   '?'
       db   06h;
       db   88h;   '?'
       db   07h;
       db   8Ah;   '?'
       db   46h;   'F'
       db   01h;
       db   88h;   '?'
       db   47h;   'G'
       db   01h;
       db   8Ah;   '?'
       db   46h;   'F'
       db   02h;
       db   C1h;   ''
       db   E9h;   ''
       db   02h;
       db   88h;   '?'
       db   47h;   'G'
       db   02h;
       db   83h;   '?'
       db   C6h;   ''
       db   03h;
       db   83h;   '?'
       db   C7h;   ''
       db   03h;
       db   83h;   '?'
       db   F9h;   ''
       db   08h;
       db   72h;   'r'
       db   CCh;   ''
       db   F3h;   ''
       db   A5h;   '?'
       db   FFh;   ''
       db   24h;   '$'
       db   95h;
       dd   L100014B8
        Align   4
 L1000140C:
       db   23h;   '#'
       db   D1h;   ''
       db   8Ah;   '?'
       db   06h;
       db   88h;   '?'
       db   07h;
       db   8Ah;   '?'
       db   46h;   'F'
       db   01h;
       db   C1h;   ''
       db   E9h;   ''
       db   02h;
       db   88h;   '?'
       db   47h;   'G'
       db   01h;
       db   83h;   '?'
       db   C6h;   ''
       db   02h;
       db   83h;   '?'
       db   C7h;   ''
       db   02h;
       db   83h;   '?'
       db   F9h;   ''
       db   08h;
       db   72h;   'r'
       db   A6h;   ''
       db   F3h;   ''
       db   A5h;   '?'
       db   FFh;   ''
       db   24h;   '$'
       db   95h;
       dd   L100014B8
        Align   4
 L10001430:
       db   23h;   '#'
       db   D1h;   ''
       db   8Ah;   '?'
       db   06h;
       db   88h;   '?'
       db   07h;
       db   46h;   'F'
       db   C1h;   ''
       db   E9h;   ''
       db   02h;
       db   47h;   'G'
       db   83h;   '?'
       db   F9h;   ''
       db   08h;
       db   72h;   'r'
       db   8Ch;   '?'
       db   F3h;   ''
       db   A5h;   '?'
       db   FFh;   ''
       db   24h;   '$'
       db   95h;
       dd   L100014B8
        Align   4
 L1000144C:
       dd   L100014AF
       dd   L1000149C
       dd   L10001494
       dd   L1000148C
       dd   L10001484
       dd   L1000147C
       dd   L10001474
       dd   L1000146C
 L1000146C:
        mov   eax,[esi+ecx*4-1Ch]
        mov   [edi+ecx*4-1Ch],eax
 L10001474:
        mov   eax,[esi+ecx*4-18h]
        mov   [edi+ecx*4-18h],eax
 L1000147C:
        mov   eax,[esi+ecx*4-14h]
        mov   [edi+ecx*4-14h],eax
 L10001484:
        mov   eax,[esi+ecx*4-10h]
        mov   [edi+ecx*4-10h],eax
 L1000148C:
        mov   eax,[esi+ecx*4-0Ch]
        mov   [edi+ecx*4-0Ch],eax
 L10001494:
        mov   eax,[esi+ecx*4-08h]
        mov   [edi+ecx*4-08h],eax
 L1000149C:
        mov   eax,[esi+ecx*4-04h]
        mov   [edi+ecx*4-04h],eax
        lea   eax,[00000000h+ecx*4]
        add   esi,eax
        add   edi,eax
 L100014AF:
        jmp   [L100014B8+edx*4]
        Align   4
 L100014B8:
       dd   L100014C8
       dd   L100014D0
       dd   L100014DC
       dd   L100014F0
 L100014C8:
        mov   eax,[ebp+08h]
        pop   esi
        pop   edi
        leave
        retn
;------------------------------------------------------------------------------
        Align   4
 L100014D0:
        mov   al,[esi]
        mov   [edi],al
        mov   eax,[ebp+08h]
        pop   esi
        pop   edi
        leave
        retn
;------------------------------------------------------------------------------
        Align   4
 L100014DC:
        mov   al,[esi]
        mov   [edi],al
        mov   al,[esi+01h]
        mov   [edi+01h],al
        mov   eax,[ebp+08h]
        pop   esi
        pop   edi
        leave
        retn
;------------------------------------------------------------------------------
        Align   4
 L100014F0:
        mov   al,[esi]
        mov   [edi],al
        mov   al,[esi+01h]
        mov   [edi+01h],al
        mov   al,[esi+02h]
        mov   [edi+02h],al
        mov   eax,[ebp+08h]
        pop   esi
        pop   edi
        leave
        retn
;------------------------------------------------------------------------------
        Align   4
 L10001508:
        lea   esi,[ecx+esi-04h]
        lea   edi,[ecx+edi-04h]
        test   edi,00000003h
        jnz   L1000153C
        shr   ecx,02h
        and   edx,00000003h
        cmp   ecx,00000008h
        jc    L10001530
        std
        rep movsd
        cld
        jmp   [L10001650+edx*4]
        Align   4
 L10001530:
        neg   ecx
        jmp   [L10001600+ecx*4]
        Align   4
 L1000153C:
        mov   eax,edi
        mov   edx,00000003h
        cmp   ecx,00000004h
        jc    L10001554
        and   eax,00000003h
        sub   ecx,eax
        jmp   [L10001558+eax*4]
 L10001554:
        jmp   [L10001650+ecx*4]
       db   90h;   '?'
       dd   L10001568
       dd   L10001588
       dd   L100015B0
 L10001568:
        mov   al,[esi+03h]
        and   edx,ecx
        mov   [edi+03h],al
        dec   esi
        shr   ecx,02h
        dec   edi
        cmp   ecx,00000008h
        jc    L10001530
        std
        rep movsd
        cld
        jmp   [L10001650+edx*4]
        Align   4
 L10001588:
        mov   al,[esi+03h]
        and   edx,ecx
        mov   [edi+03h],al
        mov   al,[esi+02h]
        shr   ecx,02h
        mov   [edi+02h],al
        sub   esi,00000002h
        sub   edi,00000002h
        cmp   ecx,00000008h
        jc    L10001530
        std
        rep movsd
        cld
        jmp   [L10001650+edx*4]
        Align   4
 L100015B0:
        mov   al,[esi+03h]
        and   edx,ecx
        mov   [edi+03h],al
        mov   al,[esi+02h]
        mov   [edi+02h],al
        mov   al,[esi+01h]
        shr   ecx,02h
        mov   [edi+01h],al
        sub   esi,00000003h
        sub   edi,00000003h
        cmp   ecx,00000008h
        jc    L10001530
        std
        rep movsd
        cld
        jmp   [L10001650+edx*4]
        Align   4
       dd   L10001604
       dd   L1000160C
       dd   L10001614
       dd   L1000161C
       dd   L10001624
       dd   L1000162C
       dd   L10001634
 L10001600:
       dd   L10001647
 L10001604:
       db   8Bh;   '<'
       db   44h;   'D'
       db   8Eh;   '?'
       db   1Ch;
       db   89h;   '%'
       db   44h;   'D'
       db   8Fh;   '?'
       db   1Ch;
 L1000160C:
       db   8Bh;   '<'
       db   44h;   'D'
       db   8Eh;   '?'
       db   18h;
       db   89h;   '%'
       db   44h;   'D'
       db   8Fh;   '?'
       db   18h;
 L10001614:
       db   8Bh;   '<'
       db   44h;   'D'
       db   8Eh;   '?'
       db   14h;
       db   89h;   '%'
       db   44h;   'D'
       db   8Fh;   '?'
       db   14h;
 L1000161C:
       db   8Bh;   '<'
       db   44h;   'D'
       db   8Eh;   '?'
       db   10h;
       db   89h;   '%'
       db   44h;   'D'
       db   8Fh;   '?'
       db   10h;
 L10001624:
       db   8Bh;   '<'
       db   44h;   'D'
       db   8Eh;   '?'
       db   0Ch;
       db   89h;   '%'
       db   44h;   'D'
       db   8Fh;   '?'
       db   0Ch;
 L1000162C:
       db   8Bh;   '<'
       db   44h;   'D'
       db   8Eh;   '?'
       db   08h;
       db   89h;   '%'
       db   44h;   'D'
       db   8Fh;   '?'
       db   08h;
 L10001634:
       db   8Bh;   '<'
       db   44h;   'D'
       db   8Eh;   '?'
       db   04h;
       db   89h;   '%'
       db   44h;   'D'
       db   8Fh;   '?'
       db   04h;
       db   8Dh;   '?'
       db   04h;
       db   8Dh;   '?'
       db   00h;
       db   00h;
       db   00h;
       db   00h;
       db   03h;
       db   F0h;   ''
       db   03h;
       db   F8h;   ''
 L10001647:
        jmp   [L10001650+edx*4]
        Align   4
 L10001650:
       dd   L10001660
       dd   L10001668
       dd   L10001678
       dd   L1000168C
 L10001660:
        mov   eax,[ebp+08h]
        pop   esi
        pop   edi
        leave
        retn
;------------------------------------------------------------------------------
        Align   4
 L10001668:
        mov   al,[esi+03h]
        mov   [edi+03h],al
        mov   eax,[ebp+08h]
        pop   esi
        pop   edi
        leave
        retn
;------------------------------------------------------------------------------
        Align   4
 L10001678:
        mov   al,[esi+03h]
        mov   [edi+03h],al
        mov   al,[esi+02h]
        mov   [edi+02h],al
        mov   eax,[ebp+08h]
        pop   esi
        pop   edi
        leave
        retn
;------------------------------------------------------------------------------
        Align   4
 L1000168C:
        mov   al,[esi+03h]
        mov   [edi+03h],al
        mov   al,[esi+02h]
        mov   [edi+02h],al
        mov   al,[esi+01h]
        mov   [edi+01h],al
        mov   eax,[ebp+08h]
        pop   esi
        pop   edi
        leave
        retn
;------------------------------------------------------------------------------
       0000095Bh DUP (??)
;
;
;------------------------------------------------------------------------------
;  Name: .rdata (Data Section)
;  Virtual Address:    10002000h  Virtual Size:    000001C8h
;  Pointer To RawData: 00002000h  Size Of RawData: 00001000h
;
 KERNEL32.dll!CreateThread:
        dd   ??
 KERNEL32.dll!ExitProcess:
        dd   ??
 KERNEL32.dll!VirtualProtect:
        dd   ??
 KERNEL32.dll!TerminateThread:
        dd   ??
        dd   00000000
 USER32.dll!SetWindowLongA:
        dd   ??
 USER32.dll!MessageBeep:
        dd   ??
 USER32.dll!MessageBoxA:
        dd   ??
 USER32.dll!GetActiveWindow:
        dd   ??
 USER32.dll!FindWindowA:
        dd   ??
 USER32.dll!CallWindowProcA:
        dd   ??
        dd   00000000
        dd   0000206Ch
        dd   00000000h
        dd   00000000h
        dd   000020DEh
        dd   00002000h
        dd   00002080h
        dd   00000000h
        dd   00000000h
        dd   0000214Ch
        dd   00002014h
        dd   00000000h
        dd   00000000h
        dd   00000000h
        dd   00000000h
        dd   00000000h
        dd   000020AEh
        dd   000020BEh
        dd   000020CCh
        dd   0000209Ch
        dd   00000000h
        dd   000020ECh
        dd   000020FEh
        dd   0000210Ch
        dd   0000211Ah
        dd   0000212Ch
        dd   0000213Ah
        dd   00000000h
        dw   029Fh
        db   'TerminateThread',0
        dw   004Ah
        db   'CreateThread',0
        db   00h
        dw   007Dh
        db   'ExitProcess',0
        dw   02C3h
        db   'VirtualProtect',0
        db   00h
        db   'KERNEL32.dll',0
        db   00h
        dw   0258h
        db   'SetWindowLongA',0
        db   00h
        dw   01BDh
        db   'MessageBeep',0
        dw   01BEh
        db   'MessageBoxA',0
        dw   00DDh
        db   'GetActiveWindow',0
        dw   00D5h
        db   'FindWindowA',0
        dw   0016h
        db   'CallWindowProcA',0
        db   'USER32.dll',0
        db   00h
       db   00h;
       db   00h;
       db   00h;
       db   00h;
       db   00h;
       db   00h;
       db   00h;
       db   00h;
        dd   00000000h
        dd   4BC668F8h
        dw   0000h
        dw   0000h
        dd   0000219Ch
        dd   00000001h
        dd   00000002h
        dd   00000002h
        dd   00002188h
        dd   00002190h
        dd   00002198h
        dd   000010B8h
        dd   000010E8h
        dd   000021A8h
        dd   000021B8h
        dw   0000h
        dw   0001h
        db   '6087SEA.dll',0
        db   'GameMemoryWrite',0
        db   'SetAuditionHook',0
;------------------------------------------------------------------------------
       00000E38h DUP (??)
;
;
;------------------------------------------------------------------------------
;  Name: .data
;  Virtual Address:    10003000h  Virtual Size:    000000B8h
;  Pointer To RawData: 00003000h  Size Of RawData: 00001000h
;
 L10003000:
        dd   00D2D978h
 L10003004:
        dd   00D2D97Ch
 L10003008:
        dd   00820B6Ch
 L1000300C:
        dd   00D2DAE4h
 L10003010:
       db   20h;   ' '
       db   00h;
       db   00h;
       db   00h;
 L10003014:
       db   80h;   '?'
       db   00h;
       db   00h;
       db   00h;
 L10003018:
       db   00h;
       db   20h;   ' '
       db   00h;
       db   00h;
 L1000301C:
       db   00h;
       db   40h;   '@'
       db   00h;
       db   00h;
 L10003020:
       db   00h;
       db   00h;
       db   08h;
       db   00h;
 L10003024:
       db   00h;
       db   04h;
       db   00h;
       db   00h;
 L10003028:
       db   01h;
       db   00h;
       db   00h;
       db   00h;
 L1000302C:
       db   00h;
       db   00h;
       db   01h;
       db   00h;
 L10003030:
       db   95h;
       db   00h;
       db   00h;
       db   00h;
       db   A4h;   ''
       db   70h;   'p'
       db   7Dh;   '}'
       db   3Fh;   '?'
 L10003038:
       db   07h;
       db   00h;
       db   00h;
       db   00h;
 L1000303C:
       db   12h;
       db   00h;
       db   00h;
       db   00h;
 SSZ10003040_AuditionSEA_Public:
        db   'AuditionSEA Public',0
        Align   4
 SSZ10003054_Public_Hack:
        db   'Public Hack',0
 SSZ10003060_Please_use_with_AuditionSEA_exe:
        db   'Please use with AuditionSEA.exe',0
 SSZ10003080_DLightClass:
        db   'DLightClass',0
 SSZ1000308C_DLightClass:
        db   'DLightClass',0
       db   00h;
       db   00h;
       db   00h;
       db   00h;
       db   00h;
       db   00h;
       db   00h;
       db   00h;
 L100030A0:
        dd   00000000h
 L100030A4:
        dd   00000000h
       db   00h;
       db   00h;
       db   00h;
       db   00h;
 L100030AC:
        dd   00000000h
       db   00h;
       db   00h;
       db   00h;
       db   00h;
 L100030B4:
       db   00h;
       db   00h;
       db   00h;
       db   00h;
;------------------------------------------------------------------------------
       00000F48h DUP (??)
;
;
;------------------------------------------------------------------------------
; Exports
;
    Index: 1   Name: GameMemoryWrite
    Index: 2   Name: SetAuditionHook
;
;------------------------------------------------------------------------------
; Imports from KERNEL32.dll
;
    extrn CreateThread
    extrn ExitProcess
    extrn VirtualProtect
    extrn TerminateThread
;
; Imports from USER32.dll
;
    extrn SetWindowLongA
    extrn MessageBeep
    extrn MessageBoxA
    extrn GetActiveWindow
    extrn FindWindowA
    extrn CallWindowProcA
;
;------------------------------------------------------------------------------
Back to top
View user's profile Send private message
Slugsnack
Grandmaster Cheater Supreme
Reputation: 71

Joined: 24 Jan 2007
Posts: 1857

PostPosted: Thu May 06, 2010 7:49 pm    Post subject: Reply with quote

lol. No way I'm reading all of that. Try and work it out yourself. Just go through it line by line and see if you can see what it's doing.
Back to top
View user's profile Send private message
blitz02
Cheater
Reputation: 0

Joined: 28 Feb 2007
Posts: 44

PostPosted: Thu May 06, 2010 8:11 pm    Post subject: Reply with quote

Noob Question : But how would you assume that you are reading it right?
So on the GameMemoryWrite, I assume I would find the LPVoid address right?


-----------

Oh I think I know now, Gonna trace it back.
I'll be back. If I have any questions please do not fail to answer me mr.Slugsnark. I know I'm noob Smile but any hint would be a big thing.. Thanks.
Back to top
View user's profile Send private message
Slugsnack
Grandmaster Cheater Supreme
Reputation: 71

Joined: 24 Jan 2007
Posts: 1857

PostPosted: Thu May 06, 2010 8:20 pm    Post subject: Reply with quote

Not sure what you mean to ask. Do you mean how did I come about to make those comments I made ?
Back to top
View user's profile Send private message
blitz02
Cheater
Reputation: 0

Joined: 28 Feb 2007
Posts: 44

PostPosted: Thu May 06, 2010 10:28 pm    Post subject: Reply with quote

Slugsnack wrote:
Not sure what you mean to ask. Do you mean how did I come about to make those comments I made ?


Yes. Do you have any patterns or any references to look on?
I really want to understand how it works.
Back to top
View user's profile Send private message
Slugsnack
Grandmaster Cheater Supreme
Reputation: 71

Joined: 24 Jan 2007
Posts: 1857

PostPosted: Fri May 07, 2010 8:42 am    Post subject: Reply with quote

Well for your first snippet, I looked at the call and worked backwards from there. You can find what the parameters are by googling. Then because it's STDCALL you know they're pushed on in reverse order. Then by knowing how the stack frame works you can determine what each of the [ebp+X] represent.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites