-
Numero contenuti
824 -
Iscritto
-
Ultima visita
Tipo di contenuto
Profili
Forum
Gallery
Download
Blogs
Articles
Risposte pubblicato da BeTmAsTeR
-
-
non è niente, solo un falso positivo ... ho spulciato il codice byte dopo byte e ti posso assicurare che non è infetto
-
-
non ci sono manuali per olly. Anche se non sembra OllyDBG è un programma abbastanza semplice da usare.
L' importante è imparare l' assemby, ti consiglio questo SITO
-
http://img508.imageshack.us/img508/2745/reversev.png
hai sbagliato un paio di cose
MOV AL,BYTE PTR [ESI]
BYTE PRT stà per Byte Pointer, ed ESI è il puntatore quindi
Muovi in AL quello che stà puntando ESI
XOR EAX,EDX non calcola nessun vettore, è solo un operazione
MOV ESI,Easy_Key.004031FC Copia in ESI quello che è contenuto in 004031FC
MOV ECX,DWORD PTR [40318C]
DWORD PTR, Double word pointer, come ti ho spiegato prima ma spostando una DWORD
-
La classifica delle 10 cose che vorreste fare prima di morire
1) Bunjee Jumping dal Bloukrans Bridge ( 216mt )
2) Visitare gli stati uniti
3) Vedere l' aurora boreale
4) Creare un blog/sito di successo
5) Vedere le piramidi
6) Salire sul tetto del mondo (everest)
7) Far crescere un bonsai
8) Prendere la laurea in informatica
9) Essere d' esempio a qualcuno
10) Allungare questa lista
a voi
-
sono già su questa distro ormai da più di un anno
-
great !
ottimo lavoro
-
Non esiste una procedura da seguire. Devi farti un po di esperienza reversando i crackMe che trovi sul Web e che metterò qui.
Chiaramente è meglio se ti affidi ad un forum preciso per avere supporti quando incontri problemi.
Metterò un paio di crackMe ( e relativo tutorial) con difficoltà [-1/10] XD in modo che tutti possano capire
-
no tanto c'è già il mio
-
comunque ...
MOV a,b -> Muove b in a
ADD a,b -> a = a+b
ROL a -> ROtate Left a
ROR a -> ROtate Right a
INC a -> a=a+1
DEC a -> a=a-1
XOR a,b -> a = a XOR b ( guarda la calcolatrice di windows )
JNZ -> Jump Not Zero ( salta se il risultato dell' operazione prima non è 0 )
-
ok ci sei, guarda anche un po più su dalle parti di 004010D6
-
tu metti il BP troppo un anticipo, e quindi vedi delle funzioni di sistema che non ti servono a niente ... devi mettere il BP prima dell' algoritmo che elabora il seriale
-
weeeeee. Ottimo lavoro, modifico il titolo e metto il tag [solved by Wentstorm]
-
aggiornato con il poster ufficiale
-
DeDe ? per questo ti basta OllyDBG ... non serve altro
-
veramente ti conviene seguire sia il disassembleto che lo stack mettendo qualche commento
-
stavolta il source non te lo passo XD, l' unico problema che ho avuto è stato "portare in C" le funzioni ROL , ROR
EDIT : 7E3BA149 ?? sei fuori strada il programma finisce a 00401212A come fai ad aver trovare quell 'address lì ?
-
no, questi sono file appositamente creati per essere crakkati. E' un esercizio di reversing
-
Oggi vi propongo questo ...
Vi chiedo le seguenti soluzioni (quelle che ho fatto io):
1) Una versione patchata che accetti qualsiasi seriale
2) Un keygen
ps: Il SelfKeygen è in creazione
-
non andiamo off, apro un altro topic e metto t4y
-
Guarda, questa è la soluzione commentata :
00401153 $ 55 PUSH EBP00401154 . 8BEC MOV EBP,ESP
00401156 . 68 B4304000 PUSH Ice9.004030B4 ; /String = "Zyrel"
0040115B . E8 42010000 CALL <JMP.&kernel32.lstrlenA> ; \lstrlenA
00401160 . BA 6A314000 MOV EDX,Ice9.0040316A
00401165 . 8902 MOV DWORD PTR DS:[EDX],EAX ; infila nell indirizzo puntato da EDX la lunghezza del nick
00401167 . BF B4304000 MOV EDI,Ice9.004030B4 ; muove il nick in EDI
0040116C . BE 19314000 MOV ESI,Ice9.00403119 ; ASCII "370512621"
00401171 . 33C0 XOR EAX,EAX ; azzera EAX
00401173 . 33DB XOR EBX,EBX ; azzera EBX
00401175 . 33C9 XOR ECX,ECX ; azzera ECX
00401177 . 33D2 XOR EDX,EDX ; azzera EDX
00401179 . BA 6A314000 MOV EDX,Ice9.0040316A
0040117E . 8B12 MOV EDX,DWORD PTR DS:[EDX] ; muove la lunghezza del nick in EDX
00401180 > 83C3 01 ADD EBX,1 ; parte un ciclo for con il counter inizializzato ad 1
00401183 . 3BD3 CMP EDX,EBX ; compare la len con EBX (0)
00401185 . 74 15 JE SHORT Ice9.0040119C ; se è uguale salta
00401187 . 8A07 MOV AL,BYTE PTR DS:[EDI] ; Prende il primo carattere del nick e lo mette in AL
00401189 . 3C 5A CMP AL,5A ; controlla se il carattere è <= di 90
0040118B . 7E 05 JLE SHORT Ice9.00401192 ; se si salta al prossimo if
0040118D > 03C8 ADD ECX,EAX ; somma ECX con EAX (valore ASCII del char)
0040118F . 47 INC EDI ; incrementa EDI (variabile counter dell' iterazione)
00401190 .^ EB EE JMP SHORT Ice9.00401180 ; cicla di nuovo
00401192 > 3C 41 CMP AL,41 ; controlla che il char sia maggiore o uguale a 65
00401194 . 7D 02 JGE SHORT Ice9.00401198 ; se si (quindi se il carattere è MAIUSCOLO) salta
00401196 . EB 02 JMP SHORT Ice9.0040119A ; se no salta a 00401198
00401198 > 04 2C ADD AL,2C ; somma 44 al valore del char tenuto in EAX
0040119A >^ EB F1 JMP SHORT Ice9.0040118D ; somma EAX con ECX (004018D)
0040119C > 81C1 9A020000 ADD ECX,29A ; somma_char = somma_char + 666
004011A2 . 69C9 39300000 IMUL ECX,ECX,3039 ; somma_char = somma_char * 12345
004011A8 . 83E9 17 SUB ECX,17 ; somma_char = somma_char - 23
004011AB . 6BC9 09 IMUL ECX,ECX,9 ; somma_char = somma_char * 9
004011AE . 33DB XOR EBX,EBX ; azzera EBX
004011B0 . 8BC1 MOV EAX,ECX ; muove il seriale corretto (non completo) in EAX
004011B2 . B9 0A000000 MOV ECX,0A
004011B7 > 33D2 XOR EDX,EDX ; azzera EDX (che conteneva la len del nick)
004011B9 . F7F1 DIV ECX ; divide ECX
004011BB . 80C2 30 ADD DL,30 ; somma 30 a DL
004011BE . 881433 MOV BYTE PTR DS:[EBX+ESI],DL ; mette DL nell' indirizzo puntato
004011C1 . 83C3 01 ADD EBX,1 ; EBX + 1
004011C4 . 83F8 00 CMP EAX,0 ; compara il nostro seriale con 0
004011C7 . 74 02 JE SHORT Ice9.004011CB ; se lo è salta a 004011CB
004011C9 .^ EB EC JMP SHORT Ice9.004011B7 ; se no torna allo XOR ad 004011B7
004011CB > BF C8304000 MOV EDI,Ice9.004030C8 ; ASCII "126215073el"
004011D0 > 8A4433 FF MOV AL,BYTE PTR DS:[EBX+ESI-1] ; mette il char contenuto nell' indirizzo puntato in AL
004011D4 . 8807 MOV BYTE PTR DS:[EDI],AL ; AL và nel indirizzo puntato da EDI
004011D6 . 47 INC EDI ; aumenta EDI
004011D7 . 4B DEC EBX ; decrementa EBX
004011D8 . 83FB 00 CMP EBX,0 ; compara EBX con 0
004011DB .^ 75 F3 JNZ SHORT Ice9.004011D0 ; se non è = a = cicla di nuovo da 004011D0
004011DD . C607 00 MOV BYTE PTR DS:[EDI],0
004011E0 . 8D3D B4304000 LEA EDI,DWORD PTR DS:[4030B4]
004011E6 . 68 B7304000 PUSH Ice9.004030B7 ; prende le ultime due lettere del nick
004011EB . 68 C8304000 PUSH Ice9.004030C8 ; pusha la prima parte del serial
004011F0 . E8 BB000000 CALL Ice9.004012B0 ; concatena le due stringhe (prima parte numerica e ultimi 2 char)
004011F5 68 C8304000 PUSH Ice9.004030C8 ; ecco qui il nostro seriale!!
Questo invece è il source del mio keygen :
#include <iostream>#include <string.h>
using namespace std;
int main ()
{
char name[100];
int stringdec=0;
int lun=0;
cout<<"Ice9 crackME keygen, created by BeTmAsTeR\n";
cout<<"Inserisci l' username\n";
gets(name); // get the username
lun = strlen(name); // get username lenght
if (lun <4 || lun>10)
{
cout<<"Inserisci un username valido, 4 < caratteri < 10 \n";
return 0;
}
for (int i=0;i<(lun-1);i++)
stringdec+=int(name);
cout<<endl;
stringdec+=666; // Operazioni per la generazione
stringdec=stringdec*12345;
stringdec-=23;
stringdec=stringdec*9;
cout<<"Il serial e' : ";
cout<<stringdec; // Stampa la stringa generata
for (int i=3;i<lun;i++) // Aggiunge le lettere dopo le prima 3
cout<<name;
cout<<endl<<endl;
system("PAUSE");
return 0;
}
Guarda le operazioni per la generazione.
Per il seriale devi:
1) sommare l' ASCII delle lettere tranne l' ultima
2) Fare le 4 operazioni di generazione con il numero che hai ottenuto
3) Aggiungere tutte le lettere dopo le prime 3 del nick
Es :
Nick = Matteo
m = 109
a = 97
t = 116
t = 116
e = 101
valore_intermedio = 109+97+(116*2)+101 = 539
parte_numerica = ((((539+666)*12345)-23)*9) = 133881318
parte_letterale = teo ( tutto quello dopo le prime 3 lettere del nick )
seriale_finale = parte_numerica + parte_letterale = 133881318teo
-
Vi prego di postare le domande relativa ad Ice9 nel relativo post ...
-
se metti bene il breakpoint ti deve passare all' istruzione dopo premendo F8
-
guarda su 0040119A
Miglior modem wi-fi
in Software
Inviato
io non posso che consigliarti un Fonera,
guarda il Fonera Simpl + Fontenna o il Fonera2.0N ( dipende dalle tue finanze )
http://www.fon.com/it
http://corp.fon.com/it/products/