Buffer Overflows



  • ich hatte mich seit kurzen mal intensiver mit Buffer Overflows auseinandergesetzt und jetzt mal meine ersten Schritte unternommen. Ich mach das so, dass ich die Returnadresse einfach mit einer Adresse aus der Kernel32.dll überschreibe. Diese Adresse enthält dann den Befehl call esp. So nun müsste er normalerweise meinem Exploitcode den ich hinter die Adresse geschrieben aufrufen, nur er tut es nicht. Er gibt mir da jedesmal die Fehlermeldung, dass eine Access Violation stattgefunden hat. Also ich weiß im Augenblick nicht merh weiter vielleicht kann mir ja jemand von euch helfen.

    PS: ich benutz win2k vielleicht liegt es ja irgendwie daran

    MFG

    Till



  • Such nach "Smashing the stack for fun and profit", darin wird's genau erklärt (für Linux, aber wenn du's verstehst, kannst du es auch auf Windows ummünzen)



  • Das problem liegt nicht daran es nicht zu verstehen. Das Problem ist, dass es nicht funktioniert, obwohl es so beschrieben ist. Ich krieg nur jedesmal wenn ich bei dem Opcode für call esp in der kernel32.dll bin ne Access Violation vom System angezeigt, obwohl esp noch auf einen gültigen speicherbereich zeigt.
    Manchmal kommt es auch vor das er mir beim debuggen meldet das nen interner Haltepunkt im Speicher definiert wurde.

    Vielleicht kann mir ja einer helfen

    MFG

    Till



  • ich weiß jetzt woran das liegt, dass es nicht funktioniert. Das Call ist schuld, da es nochaml die nächste Returnadresse auf den stack pusht. Nun wollt ich einfach jmp esp nehmen doch in der Kernel32.dll hab ich es nicht gefunden. Weiß vielleicht jemand bescheit ob es in der kernel32.dll unter win2k und sp4 enthalten ist?


Anmelden zum Antworten