Funktionsanfang finden?



  • Hallo 🙂

    Ich habe eine Adresse die in einer Funktion für etwas zuständig ist. Wie kann ich den Anfang der Funktion finden?

    Danke im Voraus



  • Es tut mir leid für den Doppelpost.

    Ich habe vergessen zu erwähnen das ich mit Olly Debugger arbeite.

    Danke



  • Zu wenig Information. Was hast Du denn genau vor?

    Ansonsten:

    Lubu schrieb:

    Wie kann ich den Anfang der Funktion finden?

    Indem Du den Code liest und versuchst zu verstehen, was da gemeint ist...



  • START:
    PUSH EBP
    .......
    .......
    .......
    RETN 4
    END:

    Beispiel:

    0065522F   55               PUSH EBP
    00655230   894C24 10        MOV DWORD PTR SS:[ESP+10],ECX
    00655234   895C24 14        MOV DWORD PTR SS:[ESP+14],EBX
    00655238   FF15 D0E17700    CALL DWORD PTR DS:[<&KERNEL32.EnterCriti>; ntdll.RtlEnterCriticalSection
    0065523E   68 38147900      PUSH Client.00791438                     ; ASCII "Post_Send"
    00655243   8D4D 3C          LEA ECX,DWORD PTR SS:[EBP+3C]
    00655246   FF15 ACE27700    CALL DWORD PTR DS:[<&MSVCP80.??4?$basic_>; MSVCP8_1.??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z
    0065524C   8345 1C 01       ADD DWORD PTR SS:[EBP+1C],1
    00655250   389E CC000000    CMP BYTE PTR DS:[ESI+CC],BL
    00655256   0F85 28010000    JNZ Client.00655384
    0065525C   399E BC000000    CMP DWORD PTR DS:[ESI+BC],EBX
    00655262   0F8E 1C010000    JLE Client.00655384
    00655268   8B8E C0000000    MOV ECX,DWORD PTR DS:[ESI+C0]
    0065526E   8B96 B4000000    MOV EDX,DWORD PTR DS:[ESI+B4]
    00655274   8386 BC000000 FF ADD DWORD PTR DS:[ESI+BC],-1
    0065527B   8D0449           LEA EAX,DWORD PTR DS:[ECX+ECX*2]
    0065527E   83C1 01          ADD ECX,1
    00655281   3B8E B8000000    CMP ECX,DWORD PTR DS:[ESI+B8]
    00655287   8D0482           LEA EAX,DWORD PTR DS:[EDX+EAX*4]
    0065528A   898E C0000000    MOV DWORD PTR DS:[ESI+C0],ECX
    00655290   75 06            JNZ SHORT Client.00655298
    00655292   899E C0000000    MOV DWORD PTR DS:[ESI+C0],EBX
    00655298   8B50 04          MOV EDX,DWORD PTR DS:[EAX+4]
    0065529B   57               PUSH EDI
    0065529C   8B38             MOV EDI,DWORD PTR DS:[EAX]
    0065529E   8B40 08          MOV EAX,DWORD PTR DS:[EAX+8]
    006552A1   C686 CC000000 01 MOV BYTE PTR DS:[ESI+CC],1
    006552A8   899E E4000000    MOV DWORD PTR DS:[ESI+E4],EBX
    006552AE   899E E8000000    MOV DWORD PTR DS:[ESI+E8],EBX
    006552B4   899E EC000000    MOV DWORD PTR DS:[ESI+EC],EBX
    006552BA   899E F4000000    MOV DWORD PTR DS:[ESI+F4],EBX
    006552C0   899E F8000000    MOV DWORD PTR DS:[ESI+F8],EBX
    006552C6   899E 00010000    MOV DWORD PTR DS:[ESI+100],EBX
    006552CC   889E F0000000    MOV BYTE PTR DS:[ESI+F0],BL
    006552D2   889E F1000000    MOV BYTE PTR DS:[ESI+F1],BL
    006552D8   33C9             XOR ECX,ECX
    006552DA   898E D0000000    MOV DWORD PTR DS:[ESI+D0],ECX
    006552E0   898E D4000000    MOV DWORD PTR DS:[ESI+D4],ECX
    006552E6   894424 28        MOV DWORD PTR SS:[ESP+28],EAX
    006552EA   8D86 D0000000    LEA EAX,DWORD PTR DS:[ESI+D0]
    006552F0   8948 08          MOV DWORD PTR DS:[EAX+8],ECX
    006552F3   8948 0C          MOV DWORD PTR DS:[EAX+C],ECX
    006552F6   8948 10          MOV DWORD PTR DS:[EAX+10],ECX
    006552F9   8B4E 18          MOV ECX,DWORD PTR DS:[ESI+18]
    006552FC   0196 C8000000    ADD DWORD PTR DS:[ESI+C8],EDX
    00655302   83F9 FF          CMP ECX,-1
    00655305   897C24 1C        MOV DWORD PTR SS:[ESP+1C],EDI
    00655309   895424 18        MOV DWORD PTR SS:[ESP+18],EDX
    0065530D   C786 E4000000 03>MOV DWORD PTR DS:[ESI+E4],3
    00655317   89BE F4000000    MOV DWORD PTR DS:[ESI+F4],EDI
    0065531D   74 64            JE SHORT Client.00655383
    0065531F   53               PUSH EBX
    00655320   50               PUSH EAX
    00655321   53               PUSH EBX
    00655322   8D5424 20        LEA EDX,DWORD PTR SS:[ESP+20]
    00655326   52               PUSH EDX
    00655327   6A 01            PUSH 1
    00655329   8D4424 2C        LEA EAX,DWORD PTR SS:[ESP+2C]
    0065532D   50               PUSH EAX
    0065532E   51               PUSH ECX
    0065532F   FF15 78E67700    CALL DWORD PTR DS:[<&WS2_32.WSASend>]    ; WS2_32.WSASend
    00655335   83F8 FF          CMP EAX,-1
    00655338   75 49            JNZ SHORT Client.00655383
    0065533A   FF15 E4E67700    CALL DWORD PTR DS:[<&WS2_32.#111>]       ; WS2_32.WSAGetLastError
    00655340   3D E5030000      CMP EAX,3E5
    00655345   74 3C            JE SHORT Client.00655383
    00655347   8B4E 14          MOV ECX,DWORD PTR DS:[ESI+14]
    0065534A   8B5424 10        MOV EDX,DWORD PTR SS:[ESP+10]
    0065534E   51               PUSH ECX
    0065534F   50               PUSH EAX
    00655350   68 00147900      PUSH Client.00791400                     ; ASCII "Post_Send() WSASend got a error [ %d ] on NetID %u (B)
    "
    00655355   52               PUSH EDX
    00655356   E8 E5FF0A00      CALL Client.00705340
    0065535B   8B4C24 20        MOV ECX,DWORD PTR SS:[ESP+20]
    0065535F   8B01             MOV EAX,DWORD PTR DS:[ECX]
    00655361   8B56 14          MOV EDX,DWORD PTR DS:[ESI+14]
    00655364   8B40 2C          MOV EAX,DWORD PTR DS:[EAX+2C]
    00655367   83C4 10          ADD ESP,10
    0065536A   52               PUSH EDX
    0065536B   FFD0             CALL EAX
    0065536D   8B4C24 10        MOV ECX,DWORD PTR SS:[ESP+10]
    00655371   57               PUSH EDI
    00655372   81C1 84020000    ADD ECX,284
    00655378   889E CC000000    MOV BYTE PTR DS:[ESI+CC],BL
    0065537E   E8 CDD4FFFF      CALL Client.00652850
    00655383   5F               POP EDI
    00655384   8345 1C FF       ADD DWORD PTR SS:[EBP+1C],-1
    00655388   68 12597A00      PUSH Client.007A5912
    0065538D   8D4D 3C          LEA ECX,DWORD PTR SS:[EBP+3C]
    00655390   FF15 ACE27700    CALL DWORD PTR DS:[<&MSVCP80.??4?$basic_>; MSVCP8_1.??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z
    00655396   55               PUSH EBP
    00655397   FF15 D4E17700    CALL DWORD PTR DS:[<&KERNEL32.LeaveCriti>; ntdll.RtlLeaveCriticalSection
    0065539D   5E               POP ESI
    0065539E   5D               POP EBP
    0065539F   5B               POP EBX
    006553A0   83C4 1C          ADD ESP,1C
    006553A3   C2 0400          RETN 4
    

    Nur so als Info, falls du OllyDBG benutzen drück "Analyze code".. dann wird er dir so anfang / ende darstellen.



  • Danke dir 🙂

    Ja, das mit "Analyze Code" habe ich erst nach meiner Frage gesehn, trotzdem danke für das antworten


Anmelden zum Antworten