giovedì 8 marzo 2012

Semtex level3 writeup

Questo livello è stato molto bello... Perchè richiedeva di controllare come il programma reagiva alla pressione dei tasti e di scrivere un codice per il bruteforce della soluzione... Infatti il programma reagiva alla pressione dei tasti aggiungendo/sottraendo al valore di partenza 300 una determinata quantità... Le colonne sulle quali agiva ogni tasto erano 5... Era una questione di combinazione... Infatti ecco cosa diceva la descrizione del livello:
Number-Lock Action
You are almost on Semtex 4, there is just one big door before you. It is locked with a number lock.
Analyze and use the locks in /semtex/semtex3 to adjust all the numbers in the correct way.
They will open your way to the next level.
Tip :
If you are not good at math, you should consider brute force. Rewrite the program and try all possible combinations of the locks. It wont take more than a few seconds ;)

Io ho risolto con python... All'inizio credevo fosse impossibile da risolvere, perchè avevo escluso erroneamente lo zero come soluzione della combinazione... Ed ecco che non trovavo la soluzione... E magari avevo pure scritto male il codice... Invece ho trovato questa soluzione che sulla mia macchina virtuale impiega 80 secondi per essere risolta e 44 milioni di iterazioni:
Consiglio di cliccare su download raw per vederlo ben indentato... Il risultato finale ci restituisce quante volte cliccare il numero 1,2,3,4,5,6,7,8 sul tastierino numerico, il tempo trascorso e le iterazioni necessarie... Per il prossimo livello necessito di un po' di tempo... E' una scrittura di un ptrace con modifica di una syscall... E questo va fatto in C, caro odioso C...

Nessun commento: