25. September 200916 j Also es is ja allgemein bekannt, dass Computer nur mit Zahlen umgehen können. Im Endeffekt also nur mit Bits etc. Und in Foren etc. liest man öfters Sachen wie "das Programm bis ins letzte Bit zerlegen" usw. Meine Frage hierzu ist, was man mit den Bits eigentlich genau anstellen kann bzw. welche Rolle sie in der Programmierung spielen.
25. September 200916 j Meine Frage hierzu ist, was man mit den Bits eigentlich genau anstellen kann bzw. welche Rolle sie in der Programmierung spielen. Basis wäre das hier Assemblersprache ? Wikipedia Naja wenn Du Dir z.B. ein C++ Programm, sprich eine Hochsprache anschaust, dann wird dieser Code durch den Kompiler (ich drücke es jetzt sehr vereinfacht aus), in Assemblercode und von dort in Maschinencode übersetzt. D.h. jeder Code, den Du als Mensch lesen kannst wird in architekturspezifische Bitcode übersetzt, mit denen dann der CPU gesagt werden, was sie zu tun hat. Falls Du das einmal selbst probieren willst empfehle ich The TOY Machine Heute wird kaum noch auf Bitebene gearbeitet, außer man muss sehr hardwarenah arbeiten, denn die Kompiler der Hochsprachen liefern sehr optimierten Code (analog ist das auch für die Shadersprachen der GPU).
29. September 200916 j Ja, aber mir gings u.A. darum, was ich z.B. mit einem Hex-Editor anfangen kann. Was kann ich alles aus dem so entstandenen Code erkennen bzw. was kann ich alles damit anstellen?
29. September 200916 j Ja, aber mir gings u.A. darum, was ich z.B. mit einem Hex-Editor anfangen kann. Ein Hex-Editor stellt Dir den Inhalt einer Datei eben als Hexadezimal-Blöcke dar. Mehr macht er nicht Was kann ich alles aus dem so entstandenen Code erkennen bzw. was kann ich alles damit anstellen? Nichts, denn der Code wird nur anders dargestellt. Was willst Du eigentlich machen? Assemblercode zu lesen, zu interpretieren bzw auch zu schreiben ist wirklich sehr schwierig, weil Du sehr viel über die Architektur wissen musst
29. September 200916 j Nichts stimmt nicht. Ein Hex Editor ist halt wie der Name vermuten lässt ein Editor der dir den Inhalt einer Datei Hexadezimal anzeigt. Diesen kannst du natürlich beliebig bearbeiten, sonst wärs ja kein Editor. Was du da erkennen kannst oder was für Möglichkeiten du in der Bearbeitung hast kommt natürlich auf die Art der Datei an. Aber du kannst auch ausführbare Dateien auf diese Weise verändern.
29. September 200916 j Das ist aus der Beschreibung des Hex-Editors MX: Der kostenlose "Hex-Editor MX" stellt somit Profis Möglichkeiten zur Daten-Manipulation bereit, die in anderen Editoren nicht möglich sind. Ob versteckte Einstellungen, Spiele-Cheats oder Viren: Mit einem Hex-Editor und dem nötigen Know-how können so manche Dinge angestellt werden. Klang für mich nur sehr interessant, was man da alles genau mit anstellen kann. Seis jetzt eine Musik/Bild/ausführbare - Datei. Aber das nur mal am Rande angesprochen. Wir werden eh aufm Host ausgebildet.
6. Oktober 200916 j .. Mit einem Hex-Editor und dem nötigen Know-how .. Der letzte Teil ist entscheidend Mal ganz frech gekl^H^H liehen vom Autor RFC822 (Programmiersprache aus HEX-Zahlen - BuHa-Security Board) Man nehme ein Assembler-Programm, löse eventuelle Referenzen, Variablennamen etc. auf und übersetze das ganze in "Hex-Zahlen", sogenannte Opcodes. Beispiel: einfaches COM-Programm für DOS. In Assembler: org 0x100 push cs pop ds mov ah,9 mov dx,HelloStr int 0x21 mov ax,0x4C00 int 0x21 HelloStr db "Hello world",13,10,"$" Erster Übersetzungsdurchgang: CS:0100 0E ; push cs CS:0101 1F ; pop ds CS:0102 B4 09 ; mov ah,09 CS:0104 BA HelloStr ; mov dx,HelloStr CS:0107 CD 21 ; int 21 CS:0109 B8 4C00 ; mov ax,4C00 CS:010C CD 21 ; int 21 ; HelloStr CS:010E "Hello world",13,10,"$" Zweiter Durchgang: 0E 1F B4 09 BA 0E 01 CD 21 B8 00 4C CD 21 "Hello world" 0D 0A "$" Endergebnis: 0E 1F B4 09 BA 0E 01 CD 21 B8 00 4C CD 21 48 65 6C 6C 6F 20 77 6F 72 6C 64 0D 0A 24 Wenn du das obige jetzt mit einem Hex-Editor in eine .com-Datei schreibst und die ausführst, gibt sie "Hello world" aus, wie das Assembler-Programm eben. Genaueres über die Opcodes und ähnliches findest in der Intel Instruction Set Reference zu den Prozessoren, siehe http://developer.intel.com/design/pentium4/manuals/ . Natürlich kann man so z.B. auch Passwortabfragen aushebeln - einfach den Opcode für einen Vergleich negieren (z.B: JNZ = 0x75/ auf JZ = 0x74 ändern). Aber: Warum alles von Hand machen Grüße Ripper
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.