Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Bits und Bytes

Empfohlene Antworten

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.

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).

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?

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

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.

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.

.. 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 :D

Grüße

Ripper

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.