Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Opcode xchg

Diskussion: Opcode xchg im Forum Code Kitchen, in der Kategorie Software Home; Anzeige hey, Ich habe heute mit Ollydbg ein bisschen rumgespielt und bin aus was merkwürdiges gestoßen: Man kann xchg eax,ecx ...

Antwort
Alt 20.12.10, 16:55   #1 (permalink)
 
Registriert seit: 05.11.06
Dark Snake Leistung: Facit NTK
Likes: 0
Standard Opcode xchg

Anzeige

hey,

Ich habe heute mit Ollydbg ein bisschen rumgespielt und bin aus was merkwürdiges gestoßen:

Man kann xchg eax,ecx in 3 Varianten ausdrücken:

1. 0x91
2. 0x87,0xC1
3. 0x87,0xC8

Nun meine Frage: sind wirklich alle 3 Schreibweisen korrekt oder ist Ollydbg nur ein bisschen Buggy das er die Opcodes so interpretiert?

mfg

Dark Snake

Dark Snake ist offline   Mit Zitat antworten
Alt 20.12.10, 18:39   #2 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Jep. Die Schreibweisen sind korrekt. Hier sieht man sehr schön die "Altlasten" von Intel
Wenn man sich nämlich eine Opcode Tabelle sucht:
http://ref.x86asm.net/coder32-abc.html
einmal gib es das als
Code:
XCHG 	r16/32 	eAX  90+r
(Opcode berechnet sich aus 0x90 + "Register Nummer" == ECX == 1)
und:
Code:
XCHG 	r16/32 	r/m16/32 						87 		r
wobei das r ==
Zitat:
r indicates that the ModR/M byte contains a register operand and an r/m
also beide operanden in einem Byte kodieren kann - einmal als
C1 == ECX, EAX
und C8 == EAX, ECX

(wobei die Tabelle imho nicht so schön lesbar ist (ich hatte jetzt aber auf langwierige Suche nicht so die Lust ) )
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 20.12.10, 21:02   #3 (permalink)
 
Registriert seit: 05.10.05
Inliferty Leistung: 8086
Inliferty eine Nachricht über ICQ schicken
Likes: 5
Standard

Für sowas ist die Intel-Doku ein super Anhaltspunkt

http://www.intel.com/Assets/PDF/manual/253666.pdf (Befehle A-M)
http://www.intel.com/Assets/PDF/manual/253667.pdf (Befehle N-Z)
XCHG -> Seite 540 (2tes PDF)
Den Aufbau einer Instruktion findet man dabei im 1sten PDF auf der Seite 33

Verwende diese Docs gern als Nachschlagewerk, wenn in OllyDbg mal wieder der Disassembler versagt...

MfG
Inliferty
Inliferty ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Opcode xchg
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61