Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.
Moderatoren: crack, Krüsty, Marwin
-
asmNoob
- Newbie
- Beiträge: 4
- Registriert: Montag 8. Januar 2007, 17:49
Beitrag
von asmNoob » Montag 8. Januar 2007, 17:53
Hi,
ich fange gerade an mich mich Assembler zu beschäftigen und bin dabei auf was gestoßen. Ich habe folgendes Programm geschrieben:
Code: Alles auswählen
.586P
.MODEL FLAT,STDCALL
includelib c:\masm32\lib\user32.lib
EXTERN MessageBoxA@16:NEAR
; Data segment
_DATA SEGMENT
TEXT1 DB 'Hello World!',0
TEXT2 DB 'Message',0
_DATA ENDS
; Code segment
_TEXT SEGMENT
START:
PUSH OFFSET 0
PUSH OFFSET TEXT2
PUSH OFFSET TEXT1
PUSH 0
CALL MessageBoxA@16
RETN
_TEXT ENDS
END START
Wenn ich mir die Opcodes anschaue, dann sehe ich nach dem RET ein xor al,bl. OllyDBG macht daraus ein DB 32 und dumpbin.exe macht daraus auch das xor al,bl; RETN.
Was hat es mit dem xor aufsich?
Gruß
Chris
-
crack
- Administrator
- Beiträge: 280
- Registriert: Dienstag 21. Dezember 2004, 15:02
- Wohnort: 53783 Eitorf
-
Kontaktdaten:
Beitrag
von crack » Dienstag 9. Januar 2007, 21:35
XOR steht für Exklusiv Oder: Dabei werden beide Werte bitweise verknüpft, die Funktion XOR hat folgende Wahrheitswerte:
A B X
0 0 0
1 0 1
0 1 1
1 1 0
mit freundlichen grüssen,
with best regards,
crack
-
asmNoob
- Newbie
- Beiträge: 4
- Registriert: Montag 8. Januar 2007, 17:49
Beitrag
von asmNoob » Mittwoch 10. Januar 2007, 00:39
Was XOR ist weiß ich. Das Problem lag wo anders.
Ich habe 2 Programme geschrieben und in einem habe ich nach dem RET ein DB 50 gemacht und das war das Problem.
Jetzt ist aber das Problem das MASM32 auf dem DB 50 das xor al,bl macht
-
crack
- Administrator
- Beiträge: 280
- Registriert: Dienstag 21. Dezember 2004, 15:02
- Wohnort: 53783 Eitorf
-
Kontaktdaten:
Beitrag
von crack » Mittwoch 10. Januar 2007, 00:44
es ist so: im Debug Modus werden Datenfelder nicht als solche erkannt, der Decompiler (oder Disassembler) interpretiert die Bytes in den Datenfeldern als Opcodes und Operanden. Für die Datenfelder anzuschauen benutzt man ein einfaches HexDump Programm oder den 'Dump Modus' des Debuggers.
mit freundlichen grüssen,
with best regards,
crack
-
asmNoob
- Newbie
- Beiträge: 4
- Registriert: Montag 8. Januar 2007, 17:49
Beitrag
von asmNoob » Donnerstag 11. Januar 2007, 11:17
ahh cool danke