LOA Hacklab - Corso di ASM/reversing/secure C by Lidl&&Mala ========================================================================= PROGRAMMA DELLE LEZIONI ========================================================================= 0001) Introduzione al corso e descrizione del programma Terminologia e concetti di base Strumenti in circolazione, siti di riferimento etc. ========================================================================= 0010) ASM basics Notazioni binaria, decimale, esadecimale Byte, word e dword La macchina con cui lavoriamo I registri Le istruzioni mov e assegnamenti (diretti e non) add/sub/mul/div/inc/dec and/or/not/xor cmp/test/jmp vari push/pop/call/ret BIBLIOGRAFIA: - Lucidi seminari - Opcode list - 386INTEL.TXT - The Art of the Assembly Language ========================================================================= 0011) Approccio alla programmazione ASM sezioni, call, passaggio parametri, macro, procedure teoria sulla struttura di un programma in assembly dichiarazione delle variabili di ogni tipo label e salti "particolari" (uso del $ con i j*) chiamate di sistema trucchi con l'INT 80h scrivere programmi con Nasm (<- sara' quello che usiamo di piu') con AS (overview veloce sulla sintassi) con Gas (overview veloce sulla sintassi) BIBLIOGRAFIA: - Assembly Programming Journal: Introduction to asm (_mammon) Using the Gnu AS Assembler - NASM Docs - Snippets from linuxassembly.org ========================================================================= 0100) Primi passi di reversing: conversioni semplici da C ad ASM overview delle keyword di flow control del C, delle strutture dati del C e quanto succede passando all'assembler Evitare gli errori comuni buffer overflow page faults'n'memory access failures BIBLIOGRAFIA: - Tutorial di Alor: alo_06_99.htm - Winmodem reversing intro ========================================================================= 0101) Reversing 2 la vendetta: GCC da vicino vicino GCC for phun and profit ovvero: . la migliore palestra del reverser (gcc -S) . cos'e' l'ottimizzazione e come interpretare il codice risultante . nota su: __asm__ e __volatile__ BIBLIOGRAFIA: - documentazione GCC ========================================================================= 0110) Monitoraggio selvaggio Sotto windoze filemon regmon list - string searching techniques Pratica: diventiamo degli dei a Baldur's Gate... ^__^ Reversing Calypso Sotto linux strace ltrace strings kernel tweakin' with ptrace BIBLIOGRAFIA: - RE techniques #01: String searching by +mala - Calypso reversing - parte 2 - Linux Man pages - qualke tute sul vecchio +f ========================================================================= 0111) Cracking selvaggio Sotto windoze seguiamo le API x arrivare al miele :) hands on: shareware apps qualche programmino ad hoc Sotto linux hands on: Opera per Linux Coffee Cup BIBLIOGRAFIA: - Il racl (racl.oltrelinux.com) - Sandman, +f, la UIC - I tute di hculinux sulle protezioni ========================================================================= 1000) Aggiunta e/o modifica di funzioni Teoria: dove aggiungiamo il nostro codice? pe & elf: sezioni & compagnia bella Pratica: tompg crittante/winamp decrittante linpad/hnotepad BIBLIOGRAFIA: - Tute su tompg - Winamp reversing - Hnotepad by Neural Noise - Mouse drivers by Genius ========================================================================= 1001) BIBLIOGRAFIA: - Formmail unpublished +HCU tutorial - Webchat protocol reversing by Analyst - Progetto ANO ========================================================================= 1010) Esperimenti divertenti :) codice automodificante crittazione e decrittazione del codice at run-time tecniche antidebugging e anti-antidebugging e anti-anti-antidebugging e anti-anti-anti-antidebugging e anti-ant.... segmentation fault BIBLIOGRAFIA: - linuxassembly.org - Assembly Programming Journal