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

[HaBo]

 
Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert.

Stack Pointer Manipulation (IA-32)

Diskussion: Stack Pointer Manipulation (IA-32) im Forum Hacks & Crackmes, in der Kategorie Software Home; Anzeige Hallo Community! Ich spiele mich gerade etwas mit Assembler und wollte fragen welche Opcodes ihr kennt, die den Stack ...

Antwort
Alt 06.04.10, 23:26   #1 (permalink)
 
Registriert seit: 05.10.05
Inliferty Leistung: 8086
Inliferty eine Nachricht über ICQ schicken
Likes: 5
Question Stack Pointer Manipulation (IA-32)

Anzeige

Hallo Community!

Ich spiele mich gerade etwas mit Assembler und wollte fragen welche Opcodes ihr kennt, die den Stack Pointer verändern.

Der Anfang ist ja noch leicht:
PUSH
POP
CALL
RET

Nun suche ich alle restlichen Opcodes die noch den Stack Pointer manipulieren.
In der "Instruction Set Reference" von Intel sind die Opcodes leider nur alphabetisch sortiert und erst beim lesen des Pseudocodes ist es möglich zu erkennen, ob die Funktion den Stack Pointer ändert oder nicht.
Dies würde für alle Opcodes aber etwas länger dauern. :/
Daher wäre ich sehr erfreut wenn ihr bitte alle Opcodes postet, von dennen ihr wisst, dass sie den Stack Pointer verändern.
Falls jemand einen Link zu dem Thema hat, wär das natürlich auch hilfreich.

Danke im Voraus
Inliferty

Inliferty ist offline   Mit Zitat antworten
Alt 07.04.10, 00:15   #2 (permalink)
Member of Honour
 
Benutzerbild von +++ATH0
 
Registriert seit: 02.04.05
+++ATH0 Leistung: K 6-3+++ATH0 Leistung: K 6-3+++ATH0 Leistung: K 6-3
Likes: 76
Standard

Du meinst schon die "Instruktionsart", ne?
Weil von den genannten Instruktionen gibt es mehrer Kodierungen, ergo mehrere Opcodes. Also "PUSH %REG", "PUSH DWORD PTR" usw.
Ein sehr gutes Beispiel ist auch (PUSH FS) für den es eine völlig unabhängige TwoByte Opcode Kodierung gibt ohne MOD R/M, die sich ganz von den anderen PUSHs unterscheidet.

Du meinst auch Instruktionen, die unabhängig von einer möglichen Einkodierung vom ESP in das MOD R/M Bytes den Stack Pointer, verändern, richtig?

Zum einen wären da alle privilegierten Instruktionen, gesetzt dem Falle, dass wir unser Thread im usermode läuft. (INT %d, HLT,..)
Alle Operationen, die Exceptions verursachen (Division by Zero, Access Violations)

Dann fallen mir noch ein:
PUSHFD
PUSHAD
POPFD
POPAD
ENTER
LEAVE

Privilegiert::
IRET
RETF (Far Return)
CALL FAR
SYSENTER
SYSEXIT
+++ATH0 ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

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

Äh ja Instruktionsart trifft es wohl besser.
Das es dann mehrere Varianten gibt (PUSH EAX, PUSH EBX, ...) ist mir dann schon klar.

Zitat:
Du meinst auch Instruktionen, die unabhängig von einer möglichen Einkodierung vom ESP in das MOD R/M Bytes den Stack Pointer, verändern, richtig?

Mir ist zwar klar was MOD R/M ist, aber seit wann kann man damit den Stack Pointer verändern. Soweit mir bekannt ist kann ich dadurch doch nur ein Offset addieren und diese Addresse dann auslesen.

In der Nacht ist mir noch eine triviale Möglichkeit eingefallen den Stack Pointer zu ändern:
MOV ESP, 0xDEADBEEF

MfG
Inliferty
Inliferty ist offline   Mit Zitat antworten
Alt 07.04.10, 21:59   #4 (permalink)
Member of Honour
 
Benutzerbild von +++ATH0
 
Registriert seit: 02.04.05
+++ATH0 Leistung: K 6-3+++ATH0 Leistung: K 6-3+++ATH0 Leistung: K 6-3
Likes: 76
Standard

ESP lässt sich über die genannten Instruktionen hinaus genauso manipulieren, wie jedes andere Register auch.
Vielleicht verwechselst du den Stack Pointer gerade mit dem Instruction Pointer? (Da geht das nämlich nicht)

Genau DAS meine ich damit -> "MOV ESP, 0xDEADBEEF"

Dort ist ESP in das MOD R/M Byte einkodiert.
Genauso gehen auch alle anderen arithmetischen Operationen. (ADD/SUB... ESP, %REG/%CONST/%PTR)
+++ATH0 ist offline   Mit Zitat antworten
Alt 07.04.10, 22:04   #5 (permalink)
Themenstarter
 
Registriert seit: 05.10.05
Inliferty Leistung: 8086
Inliferty eine Nachricht über ICQ schicken
Likes: 5
Standard

Hmpf SIB mit MOD verwechselt :/

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

Werbung ist gerade online    

[HaBo] » Software Home » Hacks & Crackmes » Stack Pointer Manipulation (IA-32)
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