Was registriert hat strcmp bewerten? x86 Assembly

Wie es scheint, dies ist allgemein bekannt, aber ich kann nicht finden, es geschrieben auf dem internet (noch).

Wenn ein Programm hat

call <JMP.&msvcrt.strcmp>

welche Werte werden verglichen? Ich bin mir nicht sicher, weil mit cmp ist es erklärt (cmp eax, ebp).

Ich weiß, das Ergebnis des Vergleichs ist wieder in das EAX-register, falls das hilft.

  • 'call' übergibt die Steuerung an die Adresse der Bibliothek-routine, strcmp, das ist nicht eine intrinsische Montageanleitung (wie cmp). Daher wird der Wert zurückgegeben / im Vergleich hängt die Funktion Unterschrift/Sprache, Aufruf-Konvention, etc. Es sei denn, du bist gut in reverse-engineering, würden Sie wahrscheinlich haben, um den ursprünglichen Prototyp der Funktion, die Staaten, wo/wie/welche Argumente übergeben werden.
  • Ich aktualisiert meine Frage nach einem Blick auf es in einem anderen debugger. Es msvcrt s strcmp
  • Für standard-Aufrufkonventionen der x86 -, Argumente schob den Stapel vor dem aufrufen der Funktion. Auf x64, einige Argumente können in Registern übergeben werden, statt. Immideately vor, Sie sollten sehen, einige Anweisungen drücken-Register auf dem stack, im Fall von x86, oder einige Bewegung in den Registern für x64 (kann schwieriger sein, zu sehen). Wieder, Sie kann nicht richtig identifizieren, welche Werte verwendet werden, und, wie, ohne die genaue Funktion Signatur und system-Architektur. Und selbst dann kann der compiler optimieren, aber es fühlt sich.
  • Ich sehe die Werte gedrückt, um den stack jetzt, danke!
InformationsquelleAutor user2059300 | 2015-01-28
Schreibe einen Kommentar