x86 Assembly: Scrivi il codice che la CPU esegue davvero
Assembly è il linguaggio più vicino al bare metal senza scrivere il binario a mano. Ogni istruzione si mappa direttamente a un'operazione della CPU — niente runtime, niente garbage collector, niente astrazione che nasconde cosa fa l'hardware. Questo percorso copre x86 Assembly dai primi principi fino alla programmazione a livello di kernel, dandoti le fondamenta che rendono leggibile tutto, dai compilatori allo sviluppo di exploit.
Cosa imparerai
Inizierai con i registri, il layout della memoria e i tipi di dati, poi passerai alle istruzioni di base e al control flow, alla gestione dello stack e alle convenzioni di chiamata delle procedure. Da lì il percorso copre l'interoperabilità di Assembly con codice C e C++, l'emissione di system call, la gestione di interrupt e eccezioni, e il lavoro con le unità floating-point e le istruzioni SIMD. I corsi avanzati affrontano il debugging e l'ingegneria inversa, i meccanismi di protezione della memoria, la virtualizzazione, la programmazione di driver a livello di kernel e l'ottimizzazione delle prestazioni a basso livello, incluse le tecniche di sfruttamento.
Il percorso di apprendimento
Dodici corsi coprono i livelli da A2 a C2. Il corso introduttivo gratuito stabilisce la sintassi x86 e il modello concettuale. I corsi B1 e B2 costruiscono il nucleo pratico — registri, control flow, lo stack e le procedure. Il percorso poi passa alla profondità C1 con cinque corsi che coprono l'interoperabilità C/C++, i system call, gli interrupt, SIMD e l'ingegneria inversa. Due corsi C2 su Protezione della memoria e Virtualizzazione e Programmazione di driver a livello di kernel precedono il corso finale su Ottimizzazione delle prestazioni e Sfruttamento, che riunisce tutto, dal comportamento della cache alle tecniche a basso livello rilevanti per la sicurezza.
Come funziona
Ogni corso è diviso in lezioni brevi e mirate che completi nell'editor di codice integrato con feedback in tempo reale. Un tutor IA è disponibile quando rimani bloccato su una codifica di istruzione o su un segfault che non riesci a spiegare.