Obfuskering Tiny C-kompilator (OTCC) er en veldig liten C-kompilator jeg skrev for å vinne den internasjonale maskeres C Kode Contest (IOCCC) i 2002.
Målet mitt var å skrive den minste C-kompilator som er i stand til å kompilere selv. Jeg velger en undergruppe av C som var generelt nok til å skrive et lite C-kompilator. Da jeg utvidet C undergruppe til jeg nådde den maksimale størrelsen som er autorisert av konkurransen: 2048 bytes av C kilde unntatt ';', '{', '}' og mellomrom.
Jeg velger å generere i386 kode. Den opprinnelige OTCC kode kan bare kjøre på i386 Linux fordi det støttet seg på endianness og unaligned tilgang. Det genereres programmet i minnet og lansert den direkte. Eksterne symbolene ble løst med dlsym ().
For å ha en bærbar versjon av OTCC laget jeg en variant som heter OTCCELF. Det er bare litt større enn OTCC, men det genererer direkte en dynamisk koblet i386 ELF kjørbar fra et C kilde uten å stole på noen binutils verktøy! OTCCELF ble testet med hell på i386 Linux og på Sparc Solaris.
MERK: Min andre prosjekt TinyCC som er en fullverdig ISOC99 C-kompilator ble skrevet ved å starte fra kildekoden til OTCC!
Compilation:
gcc -O2 otcc.c -o OTCC -ldl
gcc -O2 otccelf.c -o otccelf
Self-samling:
./otccelf otccelf.c otccelf1
Prog.varedetaljer:
Versjon: 1.0
Last opp dato: 3 Jun 15
Lisens: Gratis
Popularitet: 33
Kommentarer ikke funnet