Xhack

Un forum dedicato all'hacking
 
IndiceIndice  PortalePortale  CalendarioCalendario  FAQFAQ  CercaCerca  RegistrareRegistrare  Lista utentiLista utenti  GruppiGruppi  Connessione  

Condividere | 
 

 L'arte del reversing - Esercizio

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso 
AutoreMessaggio
BlackLight
Moderatore
Moderatore


Numero di messaggi: 277
Età: 25
Data d'iscrizione: 22.08.07

MessaggioOggetto: 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...
Tornare in alto Andare in basso
Vedere il profilo dell'utente http://blacklight.gotdns.org
abe93
membro importante
membro importante


Numero di messaggi: 205
Età: 19
Localizzazione: Piacenza
Data d'iscrizione: 18.08.07

MessaggioOggetto: 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???
Tornare in alto Andare in basso
Vedere il profilo dell'utente http://www.abe93.altervista.org
BlackLight
Moderatore
Moderatore


Numero di messaggi: 277
Età: 25
Data d'iscrizione: 22.08.07

MessaggioOggetto: 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.
Tornare in alto Andare in basso
Vedere il profilo dell'utente http://blacklight.gotdns.org
abe93
membro importante
membro importante


Numero di messaggi: 205
Età: 19
Localizzazione: Piacenza
Data d'iscrizione: 18.08.07

MessaggioOggetto: 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???
Tornare in alto Andare in basso
Vedere il profilo dell'utente http://www.abe93.altervista.org
BlackLight
Moderatore
Moderatore


Numero di messaggi: 277
Età: 25
Data d'iscrizione: 22.08.07

MessaggioOggetto: 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.
Tornare in alto Andare in basso
Vedere il profilo dell'utente http://blacklight.gotdns.org
abe93
membro importante
membro importante


Numero di messaggi: 205
Età: 19
Localizzazione: Piacenza
Data d'iscrizione: 18.08.07

MessaggioOggetto: Re: L'arte del reversing - Esercizio   Gio Ago 23, 2007 2:34 pm

Grazie molto gentile
Tornare in alto Andare in basso
Vedere il profilo dell'utente http://www.abe93.altervista.org
giozh°_°
Moderatore
Moderatore


Numero di messaggi: 156
Data d'iscrizione: 18.08.07

MessaggioOggetto: 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 lol!

ma che file è???non me lo apre manco ollydbg....
Tornare in alto Andare in basso
Vedere il profilo dell'utente
BlackLight
Moderatore
Moderatore


Numero di messaggi: 277
Età: 25
Data d'iscrizione: 22.08.07

MessaggioOggetto: 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) Wink
Tornare in alto Andare in basso
Vedere il profilo dell'utente http://blacklight.gotdns.org
giozh°_°
Moderatore
Moderatore


Numero di messaggi: 156
Data d'iscrizione: 18.08.07

MessaggioOggetto: 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 Very Happy afro
Tornare in alto Andare in basso
Vedere il profilo dell'utente
BlackLight
Moderatore
Moderatore


Numero di messaggi: 277
Età: 25
Data d'iscrizione: 22.08.07

MessaggioOggetto: 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
Tornare in alto Andare in basso
Vedere il profilo dell'utente http://blacklight.gotdns.org
 

L'arte del reversing - Esercizio

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto 
Pagina 1 su1

 Argomenti simili

-
» Leggere un'opera d'arte
» MUSEO D'ARTE DEL NOVECENTO a Milano
» Rielaborazione opere d'arte
» 21) COLLAGE DI IMMAGINI con maschere e sfumature
» 56) Esercizi di restauro in Photoshop

Permesso del forum:Non puoi rispondere agli argomenti in questo forum
Xhack :: Other :: Reverse Engineering-