[FLUG] Il crt di Simon

  • From: Simon <f.simon@xxxxxxxx>
  • To: fanolug@xxxxxxxxxxxxx
  • Date: Sat, 21 Sep 2002 12:57:11 +0200

Visto che tanto il contest su #phrack.it non si farà (come
d'altra parte tutte le robe fighe)... posso rendere pubblica
parte del codice che ho scritto.

Praticamente il contest consisteva nel realizzare il più
piccolo (meno bytes) client pop3 secondo certe regole che
ora non vi sto a spiegare.

Tra gli accorgimenti che avrei addottato c'era anche quello
di non utilizzare i crt forniti con il gcc ma realizzarne
uno mio più piccolo.
Visto che non sono un giullare... ovviamente ce l'ho fatta.

Ecco il codice del crt realizzato da me in asm:

---------| inizio: crts.s |------------

/*
   Copyright (c) 2001 Federico 'Simon' Simoncelli <f.simon@xxxxxxxx>
   GNU/linux i386:  gcc -O3 -Wall -c crts.s
*/
        .file     "crts.s"
        .version  "01.00"

.text
        .align 4

.globl _start
        .type    _start,@function
_start:

movl   %esp, %eax
addl   $0x4, %eax
push   %eax
push   -4(%eax)
call   main
movl   %eax, %ebx
movl   $1, %eax
int    $0x80

------------| fine: crts.s |--------------

(non ve lo commento perchè tanto le mie mail non le
legge mai nessuno)

Ed ora un pò di statistiche... vediamo un semplice helloworld:

Crt Standard:
  Dimensione non stripped:   13211 bytes
  Dimensione stripped:        2944 bytes

Mio Crt:
  Dimensione non stripped:    2267 bytes
  Dimensione stripped:        1560 bytes

Eh? Eh? che ve ne pare?
Farei notare che sul non stripped guadagno qualcosa più
di 10K... metre sullo stripped circa 1.38K.

In allegato vi do tutto il pacchettino per il test.
Have fun!

-- 
/* Federico 's1m0n' Simoncelli <f.simon@xxxxxxxx>
   http://www.jkcal.org/simon
*/
int main(){unsigned int g,h=0;while(++h){for(g=(h>1)?2:1;g<
h/2+1&&h%g!=0;g++);if(g==h/2+1)printf("%i\n",h);}return 0;}

Other related posts: