| | L'arte del reversing - Esercizio | |
|
| Autore | Messaggio |
|---|
BlackLight Moderatore


Numero di messaggi: 277 Età: 25 Data d'iscrizione: 22.08.07
 | Oggetto: L'arte del reversing - Esercizio Mer Ago 22, 2007 5:32 pm | |
| Ecco un mio crackme per Linux, sviluppato con le librerie Qt, per allenare le vostre abilità di reverser. http://digilander.libero.it/BlackLight86/crackme.zip Quando lo eseguite vi verrà chiesta una password, che ovviamente non conoscete. Il vostro compito è entrare in possesso di questa password o bypassare il controllo, crackando l'eseguibile stesso. Come crackarlo. Passatelo a objdump in modo da avere l'elenco delle funzioni disponibili al suo interno, e guardate bene. Vi ritroverete davanti a una funzione del genere: | Codice: | 0804be90 <_ZN9MainPanel8checkPwdEv>: 804be90: 55 push %ebp 804be91: 89 e5 mov %esp,%ebp 804be93: 56 push %esi 804be94: 53 push %ebx 804be95: 83 ec 28 sub $0x28,%esp 804be98: 8b 75 08 mov 0x8(%ebp),%esi ........... |
Come potete intuire dal nome della funzione (MainPanel::checkPwd) è questa la funzione da crackare per bypassare la password. Diamo l'eseguibile in pasto a gdb e disassembliamo la funzione in questione:
| Codice: | (gdb) disas _ZN9MainPanel8checkPwdEv Dump of assembler code for function _ZN9MainPanel8checkPwdEv: 0x0804be90 <_ZN9MainPanel8checkPwdEv+0>: push %ebp 0x0804be91 <_ZN9MainPanel8checkPwdEv+1>: mov %esp,%ebp 0x0804be93 <_ZN9MainPanel8checkPwdEv+3>: push %esi .......... |
Tra le prime righe del codice disassemblato ci ritroviamo qualcosa del genere:
| Codice: | 0x0804beab <_ZN9MainPanel8checkPwdEv+27>: movl $0x804c50f,(%esp) 0x0804beb2 <_ZN9MainPanel8checkPwdEv+34>: push %ebx 0x0804beb3 <_ZN9MainPanel8checkPwdEv+35>: call 0x804b898 <_ZeqRK7QStringPKc@plt> 0x0804beb8 <_ZN9MainPanel8checkPwdEv+40>: mov 0xffffffe8(%ebp),%edx 0x0804bebb <_ZN9MainPanel8checkPwdEv+43>: mov %al,%bl 0x0804bebd <_ZN9MainPanel8checkPwdEv+45>: mov (%edx),%eax 0x0804bebf <_ZN9MainPanel8checkPwdEv+47>: dec %eax 0x0804bec0 <_ZN9MainPanel8checkPwdEv+48>: add $0x10,%esp 0x0804bec3 <_ZN9MainPanel8checkPwdEv+51>: test %eax,%eax 0x0804bec5 <_ZN9MainPanel8checkPwdEv+53>: mov %eax,(%edx) 0x0804bec7 <_ZN9MainPanel8checkPwdEv+55>: je 0x804bf30 <_ZN9MainPanel8checkPwdEv+160> 0x0804bec9 <_ZN9MainPanel8checkPwdEv+57>: test %bl,%bl 0x0804becb <_ZN9MainPanel8checkPwdEv+59>: je 0x804bf50 <_ZN9MainPanel8checkPwdEv+192> |
Ovvero una call ad una funzione che opera su QString e poco dopo un salto condizionato, quindi il controllo avviene qui. Gli argomenti della funzione che effettua l'uguaglianza tra le due stringhe sono salvati sullo stack, anzi abbiamo un indizio esplicito:
| Codice: | 0x0804beab <_ZN9MainPanel8checkPwdEv+27>: movl $0x804c50f,(%esp) |
Andiamo a vedere cosa c'è a quell'indirizzo:
| Codice: | (gdb) x/s 0x804c50f 0x804c50f <_ZTS6QGList+55>: "crackme" |
Ed ecco a voi la vostra password.
--PROPOSTA DI ESERCIZIO--
Nel modo descritto sopra è possibile entrare in possesso della password originale. Vi propongo invece di crackare il programma, ovvero fare in modo che qualsiasi password inserita sia corretta. Aiutino: basta giocare un po' con gli argomenti passati a checkPwd... |
|
 | |
abe93 membro importante


Numero di messaggi: 205 Età: 19 Localizzazione: Piacenza Data d'iscrizione: 18.08.07
 | Oggetto: Re: L'arte del reversing - Esercizio Mer Ago 22, 2007 5:39 pm | |
| inizia a stare coi piedi per terra xkè io in pratica non ci ho capito una mazza... puoi rispiegarlo con termini + semplici??? |
|
 | |
BlackLight Moderatore


Numero di messaggi: 277 Età: 25 Data d'iscrizione: 22.08.07
 | Oggetto: Re: L'arte del reversing - Esercizio Mer Ago 22, 2007 6:22 pm | |
| È un esercizio di reversing, che consiste nel crackare un eseguibile in modo da trovarne la password o bypassare il controllo sulla password. Il tutto disassemblando l'eseguibile e agendo sul codice macchina, faccio prima vedere come si fa a entrare in possesso della password quindi propongo un esercizio. È un esercizio di reverse engineering abbastanza basilare (sempre se si conoscono un minimo di rudimenti di Assembly), se non conosci le basi dell'Assembly ti consiglio una qualsiasi guida sulla rete. |
|
 | |
abe93 membro importante


Numero di messaggi: 205 Età: 19 Localizzazione: Piacenza Data d'iscrizione: 18.08.07
 | Oggetto: Re: L'arte del reversing - Esercizio Gio Ago 23, 2007 1:04 pm | |
| ok adesso ci sono ho capito ma il programma per il disassembly dove lo trovo che non riesco a trovarlo??? |
|
 | |
BlackLight Moderatore


Numero di messaggi: 277 Età: 25 Data d'iscrizione: 22.08.07
 | Oggetto: Re: L'arte del reversing - Esercizio Gio Ago 23, 2007 1:57 pm | |
| | abe93 ha scritto: | | ok adesso ci sono ho capito ma il programma per il disassembly dove lo trovo che non riesco a trovarlo??? |
| me_stesso ha scritto: | Passatelo a objdump in modo da avere l'elenco delle funzioni disponibili al suo interno
.......
Diamo l'eseguibile in pasto a gdb e disassembliamo la funzione in questione |
In questo caso uso solo objdump (un utility Linux che consente di avere informazioni su qualsiasi eseguibile, compreso il codice Assembly) e Gdb (il debugger della GNU per Linux, che consente di disassemblare eseguibili, eseguirli passo per passo, verificare la memoria in uso dal processo e molte altre cose. Su Windows un valido debugger è OllyDBG. |
|
 | |
abe93 membro importante


Numero di messaggi: 205 Età: 19 Localizzazione: Piacenza Data d'iscrizione: 18.08.07
 | Oggetto: Re: L'arte del reversing - Esercizio Gio Ago 23, 2007 2:34 pm | |
| |
|
 | |
giozh°_° Moderatore


Numero di messaggi: 156 Data d'iscrizione: 18.08.07
 | Oggetto: Re: L'arte del reversing - Esercizio Gio Ago 23, 2007 4:14 pm | |
| | BlackLight ha scritto: | | se non conosci le basi dell'Assembly ti consiglio una qualsiasi guida sulla rete. |
e io che ci sto a fare?? non sarà il massimo la mia guida però se la cava...anche se è agli inizi 
ma che file è???non me lo apre manco ollydbg.... |
|
 | |
BlackLight Moderatore


Numero di messaggi: 277 Età: 25 Data d'iscrizione: 22.08.07
 | Oggetto: Re: L'arte del reversing - Esercizio Gio Ago 23, 2007 4:50 pm | |
| | giozh°_° ha scritto: | | ma che file è???non me lo apre manco ollydbg.... |
| me_stesso ha scritto: | | Ecco un mio crackme per Linux |
È un eseguibile per Linux, nel formato standard Linux (ELF)  |
|
 | |
giozh°_° Moderatore


Numero di messaggi: 156 Data d'iscrizione: 18.08.07
 | Oggetto: Re: L'arte del reversing - Esercizio Ven Ago 24, 2007 10:56 am | |
| ah ecco... comunque c'è una guida in italico che spiega come funziona ollydbg??? lo so che mi vorresti dire cerca con goOOogle, ma peccodi pigrizia  |
|
 | |
BlackLight Moderatore


Numero di messaggi: 277 Età: 25 Data d'iscrizione: 22.08.07
 | Oggetto: Re: L'arte del reversing - Esercizio Ven Ago 24, 2007 11:13 am | |
| Su quequero dovresti trovare qualcosa...
https://quequero.org/uic/destroyer_olly_vb_p2.html |
|
 | |
| | L'arte del reversing - Esercizio | |
|