Ergebnis 1 bis 4 von 4

X64dbg Frage

  1. #1 Zitieren
    Retro Micky Avatar von Blue Force
    Registriert seit
    May 2009
    Beiträge
    26.192
    Ich benutze den X64 Debugger und habe folgenden Haltepunkt gesetzt:
    [Bild: debug.jpg]

    Jetzt würde mich interessieren von welcher Adresse der Sprung auf diesen Haltepunkt kam, also wo der Befehlspointer vorher war. Man kann zwar den Haltepunkt rechts anklicken und "Verweise auf diese Adresse" suchen aber da findet er nichts. Aber irgendwie muss dieser Haltepunkt ja direkt angesprungen worden sein denn davor ist ein RETURN also kann er nicht einfach so erreicht worden sein.

    Ich habe etwas mit Tracing rumprobiert was aber nicht funktioniert hat. Vielleicht kann man auch eine Bedingung setzen daß der Debugger anhält wenn ein Sprung auf diese Adresse ausgeführt werden soll. Das Online Manual von X64Dbg ist für Einsteiger leider nicht brauchbar.

    Kann man die letze Position des Befehlszeigers auf einfachem Weg feststellen?
    1 2 3 4 5
    Blue Force ist offline

  2. #2 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.446
    Zitat Zitat von Blue Force Beitrag anzeigen
    Kann man die letze Position des Befehlszeigers auf einfachem Weg feststellen?
    Das kommt drauf an
    Wenn die Adresse mit einem jmp angesprungen wurde, bist du glaube ich ziemlich verloren, außer du lässt die gesamte Ausführung tracen (kA wie man das mit den üblichen Debuggern macht).

    Wenn es ein CALL war steht die Return-Adresse irgendwo auf dem Stack. Einfach mal bis zum nächsten Return steppen. Sieht allerdings nicht wie ein Funktionsanfang aus, da fehlt der Prolog (der aber glaube ich mit O3 nicht immer erzeugt wird).

    Die einfachste Lösung wird sein, einen Breakpoint an den Anfang der Funktion zu setzen und dann solange zu steppen, bis du an die gewünschte Stelle kommst.

    Eventuell kannst du auch Instruktionen instrumentalisieren, d.h. jedes Mal wenn ein Jump o.ä. ausgeführt wird, kannst du deinen eigenen Code ausführen. Keine Ahnung ob der Debugger deiner Wahl das kann und es wird garantiert sehr extrem auf die Performance gehen.
    Lehona ist gerade online

  3. #3 Zitieren
    Retro Micky Avatar von Blue Force
    Registriert seit
    May 2009
    Beiträge
    26.192
    Es hat funktioniert mit Step bis zum nächsten Return. Der Funktionsaufruf war call EAX.
    Danke
    1 2 3 4 5
    Blue Force ist offline

  4. #4 Zitieren
    Retro Micky Avatar von Blue Force
    Registriert seit
    May 2009
    Beiträge
    26.192
    Ok bei der Stackanzeige rechts unten hätte ich es auch sehen können. 4F2C77 war die Rücksprungadresse, also der nächste Befehl nach call EAX.
    1 2 3 4 5
    Blue Force ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •