Non disassembla. Se seleziono il main mi dice che non ci sono simboli di debug (a sto punto non credo neanche ci sia il main). Ho dato un'occhiata a quel tool di unstrip, ma ti sarei grato se riuscissi a essere un po' più specifico.
È un eseguibile linux, ma comunque l'output è questo
Codice:
./findthepassword1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
12.1 anche io. Non mi chiede quanto sopra
Se può far comodo ho il source del CrackMe. È stato scritto in asm, ma comunque ce l'ho. Ho solo evitato di guardarlo per evitare di anticiparmi le cose
Secondo me continuerà comunque a non andarti, poichè tutte le info sono strippate. Non ho particolare dimestichezza con Linux, ma provo a guidarti.
Lancia
gdb ./findthepassword1
.
A questo punto digita
info file
, serve ad avere appunto le info, e ti darà l'entry point del programma (Nota: le info sono nell'header del file; Linux usa ELF, Windows usa PE).
Avrai qualcosa tipo:
a questo punto dovrai settare un breakpoint a questo indirizzo, e quindi farai:
Ora lo lanci, digitando
run
. Non dovresti vedere nulla stampato a schermo, se non il fatto che è il breakpoint è "hit". Ora il programma è fermo e in teoria ti trovi all'entry point.
Prova a guardare il disassemblato controllando l'indirizzo puntato da EIP, quindi stampa alcune istruzioni, tipo:
quello che vedi - o che dovresti vedere - è il codice assembly dell'eseguibile (e visto che è scritto in ASM e disponi del sorgente, se controlli, vedrai che saranno identici).
Cerca la parte di codice che ti interessa raggiungere, e setta un breakpoint come fatto qui sopra a quell'indirizzo; poi dovrai digitare
continue
, e il codice verrà eseguito sino al tuo BP.
Per vedere il contenuto dei registri devi digitare
info registers
(e mi sembra che facendo tipo
info register $eax
vedi il singolo registro).
E' MOLTO più scomodo di un tool grafico. Sotto Linux c'è anche Radare2 ora che mi ricordo, che dispone di una GUI (ma non è come sotto Windows, che hai l'imbarazzo della scelta 🙃).
PS: vista la semplicità di questo crackme (difficoltà = 1, come dicevi sopra), dubito si sia preso la briga di proteggerlo e di strippare "cose" per far del male a chi si avvicina... un consiglio che posso darti, e che è comunque meglio applicarlo sempre, è controllare le stringhe usate nel programma.
Lancia da shell
strings <noome_file>
, e vedrai tutte le stringhe... è probabile (molto) che la password sia in chiaro e visibile qui.
EDIT:
PPS: ricordati che Linux fa uso di AT&T come sintassi; io trovo più leggibile quella Intel. Puoi dire a GDB di usare Intel, cerca in rete (c'è un flag da passare o una qualche 'direttiva' che va data una volta in gdb).