ASM Riddle di Quequero

Stato
Discussione chiusa ad ulteriori risposte.

GabriPr0

Utente Electrum
25 Aprile 2009
303
13
32
132
Ragazzi non so se qualcuno ha mai provato a fare i Riddle di quequero. Sono tipo indovinelli da risolvere reversando/crackando e alcune volte sono bastardate. Mi sono bloccato al livello 2. Se qualcuno è riuscito a farlo posti qui magari un suggerimento... Se qualcuno ha problemi con il livello 0 e livello 1 chieda a me...
 
Ultima modifica:
Sometime nothing is returned, but something is set. è la soluzione di questo che vorrei se ce l'hai ovviamente.mi sembra che sia questo il livello1.il livello
zero l'avevo risolto anch'io.grazie infinite comunque.dovrebbe essere una parola di 12 lettere (004060E7 00 B4 A3 BE A5 A2 AB A1 AD A2 A5 AD )
a volte non viene restituito,ma qualcosa è impostato(traduzione letterale,non pienamente comprensibile per la verità).


 
la password del livello 1 è xoringmania se nn sbaglio o_O Infatti se inserisci o sbagli serial viene settato un Flag (nn mi ricordo quale a 1)
 
Ultima modifica:
ciao.grazie per la replica.ho provato,anche sul sito non solo sull'eseguibile,ma la password non funziona.forse non è quella?
è di 11 lettere.non so se azzecco ,ma
004011CA . FF15 A4504000 CALL DWORD PTR DS:[<&USER32.GetDlgItemTextA>] ; \GetDlgItemTextA
004011D0 . 33C0 XOR EAX,EAX
004011D2 > 8A5C04 18 MOV BL,BYTE PTR SS:[ESP+EAX+18]
004011D6 . 80F3 CC XOR BL,0CC
004011D9 . 885C04 18 MOV BYTE PTR SS:[ESP+EAX+18],BL
004011DD . 40 INC EAX
004011DE . 83F8 0B CMP EAX,0B
004011E1 .^ 7C EF JL SHORT level1.004011D2
004011E3 . 33C0 XOR EAX,EAX
004011E5 > 8A4C04 18 MOV CL,BYTE PTR SS:[ESP+EAX+18]
004011E9 . 8A5404 0C MOV DL,BYTE PTR SS:[ESP+EAX+C]
004011ED . 3ACA CMP CL,DL
004011EF . 75 48 JNZ SHORT level1.00401239
004011F1 . 40 INC EAX
004011F2 . 83F8 0B CMP EAX,0B
004011F5 .^ 7C EE JL SHORT level1.004011E5
dopo il breakpoint su GetDlgItemTextA ci son ben 2 CMP EAX,0B-----qiundi 0B=11 lettere,si nel precedente post avevo scritto 12 ma mi sono sbagliato credendo che l'istruzione fosse cmp eax,0C,ma invece è CMP EAX,0B.non funziona comunque .sembrerebbe giusta comunque guardando il mio post sopra :00 B4 A3 BE A5 A2 AB A1 AD A2 A5 AD <-----AD sono 2 e sono la lettera A, A2 la lettera N,A5 la lettera I,le uniche doppie nella password.non funziona ma penso che sei molto vicino.
 
asd ho riprovato è xoringmania cmq nel livello 2 dice

Level1 is a simple protection scheme, btw program doesn't show a messagebox if you enter a wrong/correct serial, and no values are returned but only a boolean flag is set... This is pretty common, and as you saw is not so simple to identify such a flag :).
 
Ultima modifica:
ciao.grazie ancora.avevi ragione.sì avevo capito che non c'è il popup della messagebox,quindi inserendo la giusta/sbagliata password nessun avviso comparirebbe.lo strano è che l'avrò provata almeno una decina di volte sul
sito e non funzionava.oggi ho visto il tuo post che conferma la password e ho riprovato sul sito:funziona.o digitavo male la password o c'era qualcosa nel mio xp.mille grazie ancora.adesso provo il livello successivo.vediamo.casomai ti riscrivo.grazie per l'attenzione.se posso esserti utile in qualcosa chiedi.io solitamente crakko i giochi.post scriptum:
la seconda parte della frase (traduzione dall'inglese):
questo è piuttotsto comune,e come puoi vedere non è facile identificare tale flag:sei in grado di spiegarmi questo?so cos'è un flag ma non capisco cosa fa
questa semplice protezione:un'altra cosa: xchè nell'indirizzo di ESI che contiene la password (vedi mio post sopra) non è possibile vedere la password vera?come vedi a quei valori esadecimali( B4 A3 BE A5 A2 AB A1 AD A2 A5 AD) che sono le lettere della password corrispondono caratteri ascii che non sono la password. ciao Grazie.
@@@@@!!!!!avrò riprovato altre 20 volte con la password sul sito,ma mi restituisce sempre :Sorry man....... Try again!
il bello è che quando sono entrato avevo firewall,antivirus(Avira Premium),tutto attivato.morale: adesso riesco a scaricarmi i livelli (1 e 2) xchè quando mi loggo li trovo tutti e due avendoli risolti ovviamente, ma sta benedetta password(ho capito che è quella esatta ormai)
non vuole funzionare.cos'è stato un miracolo che me l'ha presa una sola volta(allora non è il mio xp e non ho digitato erroneamente questa volta).
hai qualche suggerimento?
 
Rispondo per punti
1.
Codice:
 Un registro molto importante è il registro EFLAGS. Questo registro è un campo di bit, formato da un gran numero di [I]flags[/I], ossiavalori binari (0 oppure 1) con scopi disparati. 

 A parte un certo numero di flags utili, di fatto, solo per la programmazione di sistema, ve ne sono 6 (gli [I]status flags[/I]) che vengono impostati ad 1 oppure 0 a seconda del risultato di molte istruzioni. È fondamentale conoscerli. 

[B]Carry Flag[/B] ([B]CF[/B], bit 0) - Flag di riporto. Viene messo ad 1 quando c'è un riporto (nel caso di una somma) o un prestito (nel caso di una sottrazione) dal bit più significativo di una operazione. Ad esempio, EAX contiene il valore esadecimale 0x9000000 e si esegue l'istruzione ADD EAX, EAX, il risultato (0x120000000) viene troncato ai 32 bit meno significativi (0x20000000), e la presenza del riporto viene segnalata dal processore impostando il Carry Flag ad 1. Nelle operazioni di shift o di rotazione, invece, il significato è diverso, ma lo vedremo più avanti. 

[B]Parity Flag[/B] ([B]PF[/B], bit 2) - Flag di parità. Viene settato quando il byte meno significativo del risultato di molte operazioni contiene un numero pari di bit 1. Viene generalmente usato nei sistemi di trasmissione dati come sistema di controllo; per chi è alle prime armi può essere sufficiente conoscerne l'esistenza. L'uso effettivo è piuttosto raro. 

[B]Auxiliary Carry Flag[/B] ([B]AF[/B], bit 4) - Viene impostato ad 1 quando c'è un riporto o un prestito dal terzo bit di una operazione di tipo BCD ([I]Binary Coded Decimal[/I]), azzerato in caso contrario. L'uso è raro, questo flag può essere certamente ignorato dai novizi. 

[B]Zero Flag[/B] ([B]ZF[/B], bit 6) - Viene impostato ad 1 se il risultato di una operazione è zero, altrimenti viene azzerato. 

[B]Sign Flag[/B] ([B]SF[/B], bit 7) - Flag del segno. Viene messo ad 1 se, dopo un'operazione aritmetica, il bit più significativo (il bit del segno) è 1. In caso contrario viene azzerato. 

[B]Overflow Flag[/B] ([B]OF[/B], bit 11) - Viene messo ad 1 quando il risultato di un'operazione è troppo grande ([I]overflow[/I]) o troppo piccolo ([I]underflow[/I]) per essere contenuto nel registro di destinazione; è azzerato altrimenti. Più precisamente, esso viene impostato ad 1 se il bit del segno (il più significativo) del risultato è diverso da quello di entrambi gli operandi. Nel caso di somme o sottrazioni è facile convincersi che questa condizione equivale ad un overflow/underflow. 

L'importanza degli [I]status flag[/I]s risulterà chiara quando analizzeremo le istruzioni di controllo del flusso (ma sono utili anche per altre istruzioni).


I flag servono per controllare flusso un po' come gli if in programmazione.
Qui un flag viene settato dopo un controllo: cmp password inserita , password giusta.



2. Perchè non è come l'esempio che hai fatto te: usa lo stack. Mette i codici ASCII nello stack. Poi controlla uno per uno quelli che hai inseriti. Non controlla direttamente 2 registri come nei + facili crackme. Se lo stack dopo essere stato xorrato rimane 0 viene settato il flag
 
Ultima modifica:
ciao. per il Livell0 2 non è che bisogna fare un operazione di NOT al nome SULTAN? ho provato ma i codici HEX corrispondono a caratteri non-stampabili,usati cioè da windows .come inserisco la pass?o cè un altro trucco che non capisco?CIAO!
PS:grazie mille per le spiegazioni,mi ero accorto (seguendo in OLLY dump un'istruzione prima di CMP EAX,0B ,adesso non ti so indicare l'istruzione precisa,ma era un MOV mi pare)che le mie lettere della password cambiavano ad una ad una steppando con F8 ,fino al completamento di CMP EAX,0B,cioè un loop delle stesse righe per 11 volte,ma poi guardando bene il codice più in su ho visto che la password (quella generata dal programma)viene manipolata,per cui era impossibile vedere i giusti caratteri ascii.non mi ricordo chi ,ma nel forum UIC a proposito di questo Riddle,qualcuno ha scritto che in OLLY,cambiando un solo Byte ti mostra la soluzione.va bè.grande l'amico.grazie ancora per tutto.ciao!
 
Ultima modifica:
il livello 2 non sono riuscito a risolverlo... chiedevo aiuto per questo ma a quanto pare interessano solo a te XD. Ho provato ad aprire con un HEX editor e vedere i caratteri. Ho nottato ma nn sono riuscito a trovare nll. Se riesci a sapere qualcos'altro posta. Sul forum sono alquanto vaghi...
Allego Screen
33awg81.jpg
 
Ultima modifica:
ciao.nel riddle c'è scritto "solution is _not_ the Surname of coder":non so se c'è un doppio senso qui ,cioè fare un 'operazione sul Cognome,oppure "non è il cognome",quindi è il nome e anche qui "nottare" il nome.poi c'è quel 20 in hex,che apri l'exe con tasto dx,proprietà vedi un 2 seguito da 8 caratteri unicode.Sultan dovrebbe essere il nome e i caratteri unicode il cognome.quel
20 HEX se lo converti in binario è 100000,cioè 32 decimale,cioè un carattere spazio.non so come esca quel 2 seguito da 8 unicode visto che l'HEX ascii di 2 è=32 ,e non B2 come si vede nel'hex editor.
comunque dal tuo snapshot partendo da 006A1E (B2)fino a 006A2E(96)(lascio perdere il 20 hex per il momento,quello che sarebbe lo spazio),se "nottiamo"
uno ad uno questi valori hex ottieni come stringa "Musamishi" che dovrebbe esserne ilcognome.quindi Sultan Musamishi.se nottiamo"Sultan" ottengo caratteri non-stampabili che sono usati dal sistema di windows ,quindi impossibili da inserire come password.io ho provato con Musamishi,può
essere che non sia la giusta password (quel 2? boh...),ma visto che ho problemi nel sito anche quando ho la giusta password,magari provala tu e dimmi se funziona.per ora alto mare....ciao!!speriamo che dopo aver letto tutto questo,magari ti viene qualche ...idea .
la password è Musamishi; provata! funziona.
 
Ultima modifica:
Asd c'ero vicino ma mi mancava qualcosa... grazie mille. Cmq ora inizio il livello 3. Speriamo sia facile... L'username è 7 lettere e anche la password. Praticamente prende la lettera (esempio seriale aaaaaaa) a = 61 . Poi 61 xor 81. E0 shr 1 = 70 = P. Quindi come seriale va bn ppppppp. Ci sono milioni di seriali possibili ma serve il nome di un oggeto che nn capisco da dv si vede.Praticamente dal nome dobbiamo generare il seriale.

Edit. Il nome dell'oggetto va trovato sullo stereogramma che si vede cliccando su about. Se riesci a trovare il nome dell'oggetto è fatta..
 
ho provato anche io a capire lo stereogramma, in quanto modestamente sono piuttosto bravo (sese come no :patt:) cmq si vede una specie di jet / aereo / shuttle... cioè simile ad un aereo ma ha le ali triangolari e situate piuttosto indietro... la punta è simile a quella di uno shuttle...
la cosa strana è che è come se mancassero dei pezzi, infatti manca tutto il vetro/tetto che ricopre la parte superiore dell'aereo, alcune parti degli alettoni posteriori... dentro l'interno dell'aereo che si vede proprio perché è aperto si notano come 3 pannelli orizzontali uno dietro l'altro, non molto grandi e in ordine crescente di grandezza (o forse sono solo io che gli sto dando importanza)
 
l'immagine in 3d riesco a vederla anch'io,ma non riesco a capire che cosa sia.
la "punta" dello Shuttle sarebbe rivolta a sinistra?
riesco a vedere il contorno dell'immagine 3d con al centro una specie di zona scavata e a dx un po più in alto una specie di paio d'orecchi(forse gli alettoni di cui tu parli.
 
Ultima modifica:
mi sn connesso solo ora xfetto. Io odio li stereogrammi.... cmq ora inizio il 4
Ma è OFF il server di quequero... va solo la pagina dei riddle quindi niente forum :D
Manca il button per verificare se il serial va bn cmq all'addres 40122F c'è la MessageBox del serial sbagliato..

Edit. mi sembra di capire dal codice che la password è di 7 lettere.. ripartito il forum...
Di suggerimenti ce ne sn pochi.. cmq sono riuscito ad abilitare il pulsante per il controllo della password... ora dv riuscire a capire qual'è
 
Per il button non ci sono problemi.. c'è un semplice switch. L'unico problema è nella password. Non è difficile l'algoritmo usato. Solo che mi viene come prima lettera 7F che è un carattere non stampabile. Tutto dipende dal registro ebx. Sub lettera 1 , bl xor lettera1 , al (al = bl in qualche passaggio prima) cmp lettera1 7F. bl però vale 0 quindi mi rimane 61 nel caso della a.
Stase continuo a lavorarci su
 
mi spieghi quel "Per il Button non ci sono problemi,è uno semplice switch".ho aperto l'exe con resource hacker e ho notato che il BUTTON con la scritta CHECK (che ovviamente non si vede) è sotto il form dove va inserita la password;ma spiegami quel non ci sono problemi è uno semplice switch per il button.cosa devo fare per vederlo? ero andato anche qui:
004012CC . 6A 05 PUSH 5 ( check ,credo) ; /ShowState = SW_SHOW
004012CE . 50 PUSH EAX ; |hWnd = NULL
004012CF . FF15 BC504000 CALL DWORD PTR DS:[<&USER32.ShowWindo>; \ShowWindow

poi cercavo le API EnableWindows, e quelle riguardanti i messaggi,ma ...alto mare ,almeno per il momento.se mi dici come fare per abilitarlo vado avanti a cercare la pass.grazie.ciao!
 
Per abilitare il pulsante basta reindirizzare il salto del tasto ok all'address giusto o con resource hack semplicemnte aggiungere il tag WS_VISIBLE al button. Cmq ti metto su megaupload le 2 versioni del riddle (quello che con il tasto OK che ti dà la messagebox o quello cn il tasto check visibile e qualche immagine del switch di olly).

MEGAUPLOAD - The leading online storage and file delivery service

cmq sei hai messenger o skype dimmelo che ti aggiungo
 
sto scaricando da megaupload.grazie ,intanto.forse ti riferivi aquesto?
00401025 |. 50 PUSH EAX ; /ShowState = SW_HIDE
00401026 |. 56 PUSH ESI ; |hWnd FFFFFFFF
00401027 |. FF15 BC504000 CALL DWORD PTR DS:[<&USER32.ShowWindow>] ; \ShowWindow
0040102D |. 56 PUSH ESI ; /hWnd = FFFFFFFF
0040102E |. FF15 C0504000 CALL DWORD PTR DS:[<&USER32.UpdateWindow>] ; \UpdateWindow
00401034 |. 8B35 C4504000 MOV ESI,DWORD PTR DS:[<&USER32.GetMessageA>] ; USER32.GetMessageA
ma dove va a finire l'OK quando clicco,termina sempre il programma.che lo possa reindizzare prima sono d'accordo,basta cambiare address,ma il punto di partenza di quel OK dov'è?
 
Stato
Discussione chiusa ad ulteriori risposte.