Assembler (x86_64) für Programmierer, Hacker und Forensiker
Moderne Programmiersprachen verstecken was der jeweilige Prozessor tatsächlich tut. Mit Assembler ist es möglich die CPU direkt zu programmieren. Das erlaubt es:
- gewisse Funktionen signifikant schneller zu machen
- Erweiterungen (Extensions) einer CPU zu nutzen die in der Hochsprache nicht verfügbar sind
- ein besseres Verständnis dessen zu erlangen was hinter den Kulissen passiert
- kreativ mit bestehenden Modulen & Programmen umzugehen, die nicht Open Source sind (Cracking, Reverse Engineering)
Das in diesem Kurs vermittelte Denken hilft dabei nicht nur bei hardwarenaher Programmierung. Auch für Hochsprachenprogrammierung, inklusive Skriptsprachen, ist es sehr nützlich. Gerade wenn es darum geht bestehende Programme signifikant schneller und effizienter zu machen hilft ein Grundverständnis wie eine CPU funktioniert und wie sie optimal genutzt werden kann.
Kursinhalte
1. Teil: Systemprogrammierung
- Einführung in Assembler-Programmierung
- Geschichte von x86
- CISC vs RISC
- Hello World
- Erklärung Register
- Standard-Register
- 8 bit, 16 bit, 32 bit, 64 bit
- Flag "Register"
- Einfache Befehle: mov, add, sub
- Speichermanagement
- Speicherhierarchie (Register, Cache, RAM)
- Pages
- Stack
- Heap
- Stackbefehle: push, pop
- Sprünge & Calls (jmp, call, j<condition>, ret)
- Kernel-Mode vs. User-Mode
- Syscalls
- /bin/cat in 30 Zeilen Assembler
- Analysetools
- strace
- objdump
- gdb
- FPU: Gleitkomma-Operationen
2. Teil: Funktionsoptimierung
- Assembler vs. Optimierender Compiler?
- Assembler-Funktionen aufrufen
- Beispiel
- Assembler-Funktionen debuggen
- x86-Erweiterungen
- CPUID Befehl
- Beispiel 1: Zeichensuche
- verschiedene Varianten
- Optimierung 1
- Optimierung 2
- Vektor-Extensions
- Wozu Vektor-Extensions?
- MMX
- SSE
- AVX
- Beispiel 2: Zeichensuche mit MMX/SSE/AVX
- Andere Erweiterungen (POPCNT, CRC32, ...)
3. Teil: Security & Reverse-Engineering
- Selbstmodifizierender Code
- Sicherheitsextensions x86-64
- Wie funktioniert Virtualisierung?
- Kann Code geschützt (verschlüsselt) werden?
- Trusted (Cloud) Computing - Ist das möglich?
- CPU-Bugs
- Meltdown
- Spectre (+retbleed)
- L1TF
- Andere
- Reverse Engineering
- statisch
- dynamisch
- Beispiel
- Codecracking
- Beispiel
Empfohlene Vorkenntnisse
Vorkenntnisse in zumindest einer Programmiersprache (inklusive Skriptsprachen) sind für diesen Kurs sehr empfehlenswert, wenn auch nicht unbedingt notwendig.
Kurslänge: 3 Tage
Details zu diesem Open Source Training
Kurstitel: | Assembler (x86_64) für Programmierer, Hacker und Forensiker |
Kurspreis: | 2.235,00 € exkl. MwSt pro Teilnehmer, Standardpreis ohne Rabatt |
Kursdatum: Kurszeiten: |
Open date - Open date |
|
|
Kursort: |
LinuxCampus Sie können vom jedem Ort teilnehmen von dem Sie möchten und es ist keine Anreise notwendig. Sie benötigen nur eine Webcam, einen Webbrowser (ZOOM-Session) und einen VNC-Client für den Zugriff auf ihr Teilnehmer LAB. |
Details: |
Der Kurs ist auf 10 Teilnehmer beschränkt |
Kennen Sie schon das LinuxCampus.net Rabatt & Bonus System? |
Den Kurstermin Open date - Open date buchen
Schritt 1: Auswahl der Kursvariante (Classroom oder Live)
Schritt 2: Angabe der Teilnehmer Daten
Alternative Kursmöglichkeiten
Alternativer Kursort:
Dieses Thema kann auch als In-House Training oder Einzeltraining gebucht werden
Alternativer Termin:
Ab 3 Teilnehmern bieten wir Ihnen gerne einen auf Ihre Bedürfnisse abgestimmten Termin an
Weitere Termine zu diesem Kursthema
Datum | Kurstitel | Ort |
---|---|---|
ohne Datum | Assembler (x86_64) für Programmierer, Ha... | LinuxCampus |