Home of Gamehacking - Archiv
ReadLong - Druckversion

+- Home of Gamehacking - Archiv (http://archiv-homeofgamehacking.de)
+-- Forum: Coding (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=15)
+--- Forum: Visual Basic 6, VB.NET (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=19)
+--- Thema: ReadLong (/showthread.php?tid=248)



ReadLong - Bluespide - 21.02.2011

also, wenn ich mir mit CE MemoryViewer den Code eines Programmes angucke steht da z.B. "76 ED 65 68". Wenn ich jetzt mit VB.Net und ReadLong den Code auslese, dann steht da "68 65 ED 76", also genau anders herum. Warum eigentlich, und kann man das ändern oder muss ich das manuell umtauschen?


RE: ReadLong - iNvIcTUs oRCuS - 21.02.2011

Okay, ich kenn mich jetz nicht mit Visual Basic aus aber genau dasselbe findeste auch z.b. im Debugger/Memory Fenster von Olly Debugger. Das ist eine Eigenart die damals von Intel eingeführt wurde. Alle Prozessoren ein x86 Familie arbeiten mit "Little Endian".

Schreibe ich beispielsweise die Adresse "0045F3C8" in den Speicher, dann steht da auch "C8F34500".

Das ist auch sicherlich auch ein Punkt den viele nicht so beachten oder immer wieder verwechseln.

Edit:// Habe dazu eine passende Seite gefunden.

Code:
http://de.wikipedia.org/wiki/Byte-Reihenfolge




RE: ReadLong - Bluespide - 22.02.2011

achso, aber wenn ich das jetzt für das schreiben umdrehen und dann mein Programm jemanden schicke, der keinen Prozessoren der x86 Familie hat. Funktioniert das dann trotzdem oder hat er dann ein Problem?


RE: ReadLong - iNvIcTUs oRCuS - 22.02.2011

Funktioniert trotzdem...

Würde nur auf 100%ig anderen Prozessoren nicht funktionieren die ein anderes Format erwarten, die aber soweit ich weiß in einem Rechner so wie wir sie kennen keine Verwendung finden. So z.b. die ARM-CPU's oder Motorola Mikroprozessoren.

Selbst AMD CPU's arbeiten nach diesem Prinzip. Man kennt ja die Schreibweisen Little Endian und Big Endian. Diese werden auch gerne nach den Herstellern von Mikroprozessoren benannt bzw. tituliert. Also wenn man vom Intel-Format spricht ist die Rede von Little Endian. Spricht man vom Motorola-Format ist die Rede von Big Endian.


RE: ReadLong - Bluespide - 23.02.2011

aso ok thx Happy, aber noch ne frage
steht ein byte bei jedem Processor für den gleichen Opcode? z.B. 90=nop, weil wenn ich jetzt die bytes verändere will ich ja, dass das bei jedem die gleiche wirkung hat.


RE: ReadLong - iNvIcTUs oRCuS - 24.02.2011

Natürlich... Der Prozessor selbst versteht ja nur das binäre System, also 0 (Null) und 1, bzw. An und Aus, oder auch Low und High. Aber wie ich schon sagte hängt das von der Prozessorarchitektur und vom Befehlsdecoder ab.

Was z.b. nicht möglich wäre ist bei einem 286er der Versuch z.b. ein EAX Register anzusprechen. Weil der ja keins hat bzw. der 286er ja nur ein 16-Bit Prozessor ist.


RE: ReadLong - reptile - 24.02.2011

@ sILeNt heLLsCrEAm

wow viel fachwissen, gut zu wissen, stand schon in den büchern die ich mir kaufte, so langsam frage ich mich warum ich nicht im internet geschaut habe, anstatts mir die asm bücher zu aufen :-/:-/ nun aber da hat man(n) was im schrank Smiling


RE: ReadLong - iNvIcTUs oRCuS - 24.02.2011

Da gehts Dir vielleicht genauso wie mir. Ich schmökere gern mal in einem interessanten Buch. Ich habe auch ein Buch über Assembler und da stehen auch nicht nur Programmierbeispiele oder Assemblerbefehle drin.

Aber wens interessiert der kann sich gern diese 2 offiziellen PDF's von Intel reinziehen.

Intel® 64 and IA-32 Architectures Software Developer’s Manual
- Volume 2A

Intel® 64 and IA-32 Architectures Software Developer’s Manual
- Volume 2B