| L'arte del reversing - Esercizio | |
|
|
Autore | Messaggio |
---|
BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: L'arte del reversing - Esercizio Mer Ago 22, 2007 7: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.zipQuando 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à : 31 Localizzazione : Piacenza Data d'iscrizione : 18.08.07
| Titolo: Re: L'arte del reversing - Esercizio Mer Ago 22, 2007 7: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à : 37 Data d'iscrizione : 22.08.07
| Titolo: Re: L'arte del reversing - Esercizio Mer Ago 22, 2007 8: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à : 31 Localizzazione : Piacenza Data d'iscrizione : 18.08.07
| Titolo: Re: L'arte del reversing - Esercizio Gio Ago 23, 2007 3: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à : 37 Data d'iscrizione : 22.08.07
| Titolo: Re: L'arte del reversing - Esercizio Gio Ago 23, 2007 3: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à : 31 Localizzazione : Piacenza Data d'iscrizione : 18.08.07
| Titolo: Re: L'arte del reversing - Esercizio Gio Ago 23, 2007 4:34 pm | |
| | |
|
| |
giozh°_° Moderatore
Numero di messaggi : 156 Data d'iscrizione : 18.08.07
| Titolo: Re: L'arte del reversing - Esercizio Gio Ago 23, 2007 6: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à : 37 Data d'iscrizione : 22.08.07
| Titolo: Re: L'arte del reversing - Esercizio Gio Ago 23, 2007 6: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
| |
| |
BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: Re: L'arte del reversing - Esercizio Ven Ago 24, 2007 1:13 pm | |
| | |
|
| |
Contenuto sponsorizzato
| Titolo: Re: L'arte del reversing - Esercizio | |
| |
|
| |
| L'arte del reversing - Esercizio | |
|