Wie kann man Maschinensprache erlernen?

... komplette Frage anzeigen

7 Antworten

Bist du wirklich sicher, dass du "Maschinensprache" und nicht etwa "Assembler" meinst? :)

Zu Assembler gibt es genügend Quellen im Netz und Bücher bei Amazon.

Falls du wirklich "Maschinensprache" meinst, schnapp dir das "Intel 64 and IA-32 Architectures Software Developers's Manual", und lerne die Opcodes passend zu den Instruktionen auswendig.

Dann weißt du zwar wie du nach einem Vergleich vorzeichenbehaftete und vorzeichenlose Ganzzahlen mit 0x77 und 0x7F vergleichst und danach entsprechende Sprünge ausführst, aber was willst du damit erreichen?

Im Hexeditor zu programmieren ist zwar lustig, aber für mehr als Minimalstprogrämmchen ist das völlig ungeeignet. Höchstens um mal schnell ein paar Binaries zu patchen ist dieses Wissen sehr praktisch und dafür braucht man auch nicht mehr, als eine Hand voll Opcodes, aber alles in allem ist das nur eine Spielerei. :)

Lern lieber vernünftig Assembler und nimm dir für Reversing-Aufgaben einen ordentlichen Disassembler bzw. Debugger. (z. B. IDA, aber für das meiste reicht auch WinDBG oder GCCs objdump)

Naja, viel Spaß! ;)

Antwort bewerten Vielen Dank für Deine Bewertung

Ich würde nicht mit Hexcode einsteigen, sondern es bei Assembler belassen, damit arbeitet es sich viel leichter. Ich empfehle, mit Inline-Assemblercode zu beginnen, d.h. wenigen Assembler-Anweisungen, den Du z.B. in ein C-Programm einbaust. So kannst Du leicht den Input steuern und beobachten, was der Assemblercode damit macht.

https://de.wikipedia.org/wiki/Integrierter\_Assembler

Der Befehlssatz und der Aufbau unterscheiden sich bei den verschiedenen Prozessortypen. Deshalb ist ein Assemblerprogramm immer auf einen bestimmten Prozessor oder eine Prozessorfamilie zugeschnitten und kann nicht ohne weiteres auf jedem anderen Chip funktionieren, auch wenn bestimmte Vorgehensweisen sich wiederholen oder ähneln. Das Gleiche gilt auch für die Assembler-Lehrbücher, die beschreiben oft speziell den Umgang mit bestimmten Prozessorfamilien. Du wirst Dich also zunächst auf eine bestimmte Sorte von Maschinen spezialisieren.

Ansonsten lernt man das, wie man alles lernt: Indem man sich Aufgaben stellt und sie zu lösen versucht.

Hier ist eine Anleitung für übliche PC-Prozessoren: https://de.wikibooks.org/wiki/Assembler-Programmierung\_f%C3%BCr\_x86-Prozessoren

Antwort bewerten Vielen Dank für Deine Bewertung

Wirklich? Ich finde eine ganze Menge Treffer die sofort Einleitungen usw. anbieten.

Wozu genau willst du Maschinensprache lernen? Bist du ein sehr guter Programmierer der nichts mehr zu tun hat?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von honigtopf3239
24.09.2016, 23:15

Zum Verständnis : Maschinensprache ist ein Teil der Informatik der eher für sehr weit fortgeschrittene ist. Man braucht ihn aber kaum. Deinen früheren Fragen folgend denke ich du meinst "Programmiersprache", was eine ganz andere Sache ist (kein Spieleentwickler z.B. braucht Maschinencode lesen zu können - Programmiersprachen machen alles).

Wenn du da Hilfe oder einen Einstieg möchtest, kannst du mir gerne eine Freundschaftsanfrage schicken.

0

Assembler? Was soll das bringen? Lern lieber Java, C#, C++, Python, oder wenn dir das zu einfach ist lern C. Dann hast du auch einen Nutzen von der sprache. 

Antwort bewerten Vielen Dank für Deine Bewertung

was meinst du denn mit Maschinensprache? Normalerweise ist Maschinencode der Code in nullen und einsen umgewandelt, auch als binär bekannt.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich habe gerade nur grob auf youtube geguckt aber da gibt es tutorials

da kannst du ja mal nach schauen ob es da was für dih gibt

Antwort bewerten Vielen Dank für Deine Bewertung

Setzt dich einfach mit Digitaltechnik auseinander

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?