|
Soluzioni del settimo corso NewBies Sniffiamo il KeyFile | ||
|
Data |
by "ANO'S" |
|
|
15/04/2005 |
Published by Quequero | |
|
Microsoft... |
Grazie tante Ano's :) |
...Your Passion Our Money... |
|
|
| |
|
Difficoltà |
(*)NewBies ( )Intermedio ( )Avanzato ( )Master |
|
Soluzioni del settimo corso NewBies
By ANO'S
|
Introduzione |
|
Tools usati |
|
URL o FTP del programma |
|
Essay |
sostituite 00401973: 0FBE95F1FDFFFF movsx edx,b,[ebp][0FFFFFDF1] 0040197A: 83FA5C cmp edx,05C ;"\" 0040197D: 7507 jne .000401986 -------- (4) 0040197F: C685F1FDFFFF00 mov b,[ebp][0FFFFFDF1],000 ;" " con 00401973: 0FBE95F3FDFFFF movsx edx,b,[ebp][0FFFFFDF3] 0040197A: 83FA5C cmp edx,05C ;"\" 0040197D: 7507 jne .000401986 -------- (4) 0040197F: C685F3FDFFFF00 mov b,[ebp][0FFFFFDF3],000 ;" " in pratica gli F1 con F3 |
* Possible StringData Ref from Data Obj ->"C:\KeyFile.And" :0040158D push 00404154 * Reference To: KERNEL32.CreateFileA, Ord:0031h :00401592 Call dword ptr [004052AC] :00401598 mov dword ptr [ebp-3C], eax :0040159B cmp dword ptr [ebp-3C], FFFFFFFF <- verfica se esiste il file :0040159F je 00401661 <- Se non esiste salta a "Errore nell'apertura del keyfile" :004015A5 push 00000000 :004015A7 mov eax, dword ptr [ebp-3C] :004015AA push eax * Reference To: KERNEL32.GetFileSize, Ord:00EDh :004015AB Call dword ptr [004052A8] :004015B1 mov dword ptr [ebp+FFFFFF54], eax :004015B7 cmp dword ptr [ebp+FFFFFF54], FFFFFFFF <- verifica la grandezza del file :004015BE je 0040164F <- se il file è di diversa grandezza salta a "Errore del filesize" :004015C4 push 00000000 :004015C6 lea ecx, dword ptr [ebp+FFFFFF58] :004015CC push ecx :004015CD mov edx, dword ptr [ebp+FFFFFF54] :004015D3 push edx :004015D4 lea eax, dword ptr [ebp+FFFFFF60] :004015DA push eax :004015DB mov ecx, dword ptr [ebp-3C] :004015DE push ecx * Reference To: KERNEL32.ReadFile, Ord:01D6h :004015DF Call dword ptr [004052A4] :004015E5 test eax, eax <- vede se il keyfile è vuoto :004015E7 je 0040163D <- se è vuoto salta ad un'altra beggar off :004015E9 cmp dword ptr [ebp+FFFFFF58], 00000000 <- idem :004015F0 je 0040163D <- idem :004015F2 mov edx, dword ptr [ebp+FFFFFF58] :004015F8 mov byte ptr [ebp+edx-000000A0], 00 :00401600 xor ecx, ecx <- veniamo al dunque :00401602 lea esi, dword ptr [ebp+ecx-000000A0] <-punta in esi la stringa corretta :00401609 lea edi, dword ptr [ebp+ecx-00000038] <-punta in edi "blablabla" :00401610 mov ecx, 0000002B :00401615 repz :00401616 cmpsb <- conpara le lettere delle stringhe ad una ad una :00401617 je 0040162B <- se le stringe sono identiche quindi il codice è giusto->"REGISTERED" * Possible StringData Ref from Data Obj ->" Codice sbagliato" :00401619 push 00404140 :0040161E lea ecx, dword ptr [ebp+FFFFFF5C] * Reference To: MFC42.Ordinal:035C, Ord:035Ch :00401624 Call 00401ED4 :00401629 jmp 0040163B * Referenced by a (U)nconditional or (C)onditional Jump at Address: :00401617(C) * Possible StringData Ref from Data Obj ->" - REGISTERED - " :0040162B push 0040412C :00401630 lea ecx, dword ptr [ebp+FFFFFF5C] * Reference To: MFC42.Ordinal:035C, Ord:035Ch :00401636 Call 00401ED4 * Referenced by a (U)nconditional or (C)onditional Jump at Address: :00401629(U) :0040163B jmp 0040164D * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: :004015E7(C), :004015F0(C) * Possible StringData Ref from Data Obj ->" KeyFile vuoto" :0040163D push 0040411C :00401642 lea ecx, dword ptr [ebp+FFFFFF5C] * Reference To: MFC42.Ordinal:035C, Ord:035Ch :00401648 Call 00401ED4 * Referenced by a (U)nconditional or (C)onditional Jump at Address: :0040163B(U) :0040164D jmp 0040165F * Referenced by a (U)nconditional or (C)onditional Jump at Address: :004015BE(C) * Possible StringData Ref from Data Obj ->" Errore nel filesize" :0040164F push 00404104 :00401654 lea ecx, dword ptr [ebp+FFFFFF5C] * Reference To: MFC42.Ordinal:035C, Ord:035Ch :0040165A Call 00401ED4 * Referenced by a (U)nconditional or (C)onditional Jump at Address: :0040164D(U) :0040165F jmp 00401671 * Referenced by a (U)nconditional or (C)onditional Jump at Address: :0040159F(C) * Possible StringData Ref from Data Obj ->" Errore nell'apertura del KeyFile" :00401661 push 004040E0 :00401666 lea ecx, dword ptr [ebp+FFFFFF5C] |
Alla riga 401615 avviene la comparazione
tra edi ed esi. facciamo-> d esi e abbiamo trovato il codice corretto ovvero
"LaFolliaGovernaIlVentoCheScendeDalleStelle"
Level One - REGISTERED -
Level Two
Usiamo il FileMon e vediamo dove va creato il filekey creiamo il file con la
solita stringa fittizia.
|
|
|
Level Four - REGISTERED -
DONE.
|
Note finali |
Grazie Que,AndreaG e tutta la [UIC] siete mitici! Ciao Al x i saluti sei sempre il primo della lista e soprattutto studia!(l'assembler ovviamente), un ultimo bafandohoculo a mia sorella che mi rompe i bip...
|
Disclaimer |
Vorrei ricordare che il software va comprato e non rubato, dovete registrare il vostro prodotto dopo il periodo di valutazione. Non mi ritengo responsabile per eventuali danni causati al vostro computer determinati dall'uso improprio di questo tutorial. Questo documento è stato scritto per invogliare il consumatore a registrare legalmente i propri programmi, e non a fargli fare uso dei tantissimi file crack presenti in rete, infatti tale documento aiuta a comprendere lo sforzo che ogni sviluppatore ha dovuto portare avanti per fornire ai rispettivi consumatori i migliori prodotti possibili.
PS Se volete fixare il settimo.exe dovete pagarmi (no scherzo, magari devo pagare io la [UIC])
Reversiamo al solo scopo informativo e per migliorare la nostra conoscenza del linguaggio Assembly.