Drucken

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
09:30 - 17:00
Alternative Termine stehen am Ende dieser Seite


Dieses Training findet in der typischen Classroom Variante und in der Live Variante übers Internet via ZOOM Session statt. Sie können selber entscheiden welche Variante besser für sie passt.


Kursort:


Das Classroom Training findet statt bei:

LinuxCampus
Brodtischgasse 4
2700 Wr. Neustadt (Österreich) Austria
Website des Veranstaltungsortes
LinuxCampus
Das Live Training findet statt bei:

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
Die Unterrichtssprache ist Deutsch
Die Kursunterlagen werden im PDF Format bereitgestellt
Jeder Teilnehmer erhält ein Kurszertifikat
Kalt- und Heißgetränke und Snacks werden kostenlos bereitgestellt

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

EUR 2.235,00
Tooltip
Erforderlich Tooltip
Tooltip
Tooltip
Tooltip
Erforderlich Tooltip
Tooltip
Erforderlich Tooltip
Erforderlich Tooltip
Erforderlich Tooltip
Erforderlich
Erforderlich Tooltip
Erforderlich Tooltip
Erforderlich Tooltip
Erforderlich Tooltip
Hiermit bestätige ich das ich die AGB gelesen und akzeptiert habe
Erforderlich
1 Kursvariante
2 Anmeldedetails


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

Diese Seite verwendet Cookies. Für eine uneingeschränkte Nutzung der Webseite werden Cookies benötigt. Sie stimmen der Verwendung von Cookies durch Anklicken von "OK" zu. Nähere Informationen finden Sie in unseren Datenschutzbestimmungen und unter dem folgenden Link "Weitere Informationen".