Wie findet man eine Funktion in Ollydbg?



  • Hi,

    in meinem ersten Post möchte ich eine Frage zu Ollydbg loswerden. Ich habe vor kurzem ein Tutorial dazu gemacht, wie man innerhalb eines Games die Chat Funktion findet und diese nutzt:
    http://www.schlurmania.org/videometin-2-chat-funktion-finden-nutzen/

    Mein Problem ist allerdings, dass ich nicht nur die Chat Funktion finden will sondern einfach eine ganz allgemeine Funktion in der kein String vorkommt und wie ich deren Parameter herausfinde. (z.B. will ich ein Item aus meinem Inventar benutzen)

    Hat jemand eine Ahnung wie das dann funktioniert? Oder kennt ein Tutoial dazu?
    Wäre nett, wenn mir jemand antwortet.

    mfg Icy 😋

    Achja: ich weiß nicht ganz sicher, ob das die richtige Section ist. Ansonsten bitte verschieben. 🙂



  • Hat denn wirklich niemand eine Idee? 😞



  • Das hängt von so vielen Faktoren ab, darauf gibt es einfach keine allgemeingültige Antwort.

    OoicyoO schrieb:

    (z.B. will ich ein Item aus meinem Inventar benutzen)

    In dem Fall würde ich zuerst mal die Adresse herausfinden, an dem das Item im Speicher abgelegt ist. Danach würde ich einen Memory-Breakpoint auf diese Adresse setzen und im Spiel die Aktion ausführen, die du simulieren willst. Irgendwo in dem Callstack, der daraufhin entsteht, ist vermutlich ein Aufruf der gewünschten Funktion drin.

    Wie du an Adresse des Items kommst, hängt von der Architektur des Spiels ab. Nach dem Namen oder Eigenschaften (Anzahl, Hitpoints...) suchen bringt einen oft weiter, wenn auch meistens nur einen kleinen Schritt - wenn zB. der Name nicht direkt im Item steht, sondern in einer Tabelle, auf die das Item verweist.

    Hilfreich sind dafür Programme, mit denen man inkrementell nach Wertänderungen suchen kann. Ob OllyDbg das kann, weiß ich nicht. CheatEngine kann das.



  • Ansatzpunkt finden und reversen.
    Du wirst die interne Object-Struktur verstehen müssen um mehr machen zu können.
    Soetwas wird NIE statisch sein.



  • Von den meisten Sachen, die ich reverse, habe ich die .exe mit Debug Infos. Wenn das Spiel herauskommt, gibt es oft als 1. exe die exe, die im Debug Build herausgegeben wurde. Dann braucht man nix suchen, dann stehen so schöne Funktionen wie UseSkill oder SetPosition mit Namen da 😛
    Wenn man es nicht hat, wird es sehr schwer. Man könnte versuchen mit dem Tool Memory Hacking Software oder andere Memory Searchern eine Addresse zu finden z. B. die die HP beinhalten und dann gibt es oft eine Funktion Find what writes this address und dann kommt man z. B. zu der Funktion die die HP ändert.


Anmelden zum Antworten