TheWhiteShadow
Messages postés135Date d'inscriptionmercredi 15 janvier 2003StatutMembreDernière intervention 7 avril 2006 22 sept. 2003 à 09:32
ben le magic_buf tu le recup dans un debugger... :)
Evidemment pour faire un keygen, faut d'abord connaitre l'algo qui permet de crypter et donc en trouver un qui decrypte !!
En l'occurence, ce tableau c'est des octets que l'auteur a choisi au hasard, pour augmenter la qualité du cryptage.
... voilà, qu'est-ce que tu veux que je t'explique de plus ?
au fait, c'est vrai... on peut pas avoir une idée générale de comment ça marche en voyant la source. D'ailleurs cet algo je l'ai recup d'un autre keygen, y'avait un *.txt avec :). Tiens j'te copie l'expli, tu devrai mieux comprendre (je l'ai fait à partir de ça) :
Pass=034D3F4342097B <- encrypted pass
^^ = first magic number
Pass=034D3F4342097B <- encrypted pass
^^ = first encrypted char in pass
Pass=034D3F4342097B <- encrypted pass
^^ = second encrypted pass
etc
the calculations is simple.. first char in pass is calculated like this:
0x4D XOR 0x79 (first char in magic buffer) = 0x34
0x34-0x03 (magic number) = 0x31 (1)
that's the first char in our password
0x3F XOR 0x41 (second char in magic buffer) = 0x7E
0x73-0x4D (first encrypted char) = 0x31 (1)
second char of the pass
0x43 XOR 0x33 (third char in magic buffer, think you get it now ;) = 0x70
0x70-0x3F (second encrypted char) = 0x31 (1)
0x42 XOR 0x36 = 0x74
0x74-0x43=0x31 (1)
0x09 XOR 0x7A = 0x73
0x73-0x42=0x31 (1)
0x7B XOR 0x41 = 0x3A
0x3A-0x09=0x31 (1)
so the password is 111111 ... not that hard ;)
NOTE if password is longer than 28 the pointer to the magic buffer=1 again
and if a char is > 0xFF then do like this:
0x5B XOR 0x41 = 0x1A
0x1A-0xE8 = 0xFFFFFF32 (all wrong here :)
0xFFFFFF32-0xFFFFFF01 = 0x31 (1) right answer ;)
cs_Sioban
Messages postés6Date d'inscriptionmercredi 13 février 2002StatutMembreDernière intervention21 septembre 2003 21 sept. 2003 à 16:23
Ca fait longtemps que je cherche à faire des keygens, mais là ton code me parait un peu inutile sans explications (je parle pour moi).
Je suis désolé de te demander çà mais pourrais tu expliquer ta source?
Du type:
Pourquoi remplir magic_buf[] avec 0x79, 0x41... comment as tu c'est valeurs?
Et pour ce qui ce passe dans la boucle for?
Merci
Sinon je trouve cette source très pédagogique.
cs_Dean
Messages postés500Date d'inscriptionmardi 16 avril 2002StatutMembreDernière intervention 2 août 2004 7 sept. 2003 à 20:06
À propos de ton source, je trouve que c'est pas mal du tout... D'autant que j'avais déjà essayer de m'attaquer à FlashFXP et je me suis cassé les dents dessus...
Bonne continuation ;-)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 sept. 2003 à 12:23
Visual Studio possede tous les outils au top pour generer une interface graphique a la souris et il t'ecrit le *.rc + le resource.h, pour info le gros exe Delphi tourne.
La prog par API direct, je la trouve plus simple que d'apprendre des sabirs de surcouche comme MFC chez MS ou ta syntaxe chez Borland. Va voir mes sources pour t'en convaincre.
TheWhiteShadow
Messages postés135Date d'inscriptionmercredi 15 janvier 2003StatutMembreDernière intervention 7 avril 2006 7 sept. 2003 à 12:11
voilà dans le zip j'ai rajouter "A_Tester.exe". Peux tu voir si celui ci marche ? j'ai simplement supprimé la ligne : #include <vcl.h> qui était la seule lib' incluse (apparemment). Au fait est-ce que la version delphi fonctionne chez toi ? En tout merci de m'avoir averti de ce détail très important :) Et ce taper la prog des fenetres avec les apis win faut être mega baleze... nan ?
sinon à propos du code y'aurai pas des améliorations à faire ?
En compilo y'a Visual C++ Visual Studio (et DevC++), le mieux c'est Visual Studio je pense ? Si j'apprends avec CBuilder je serai aussi programmer avec Visual C++/Studio ? pcq sinon ça m'emmerderai grave :) Visual Studio faut développer soit même l'interface graphique no ?
Bon vlàlala ça fait bcp de questions mais jss new alors :) merci de votre aide.
A+ Twis
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 sept. 2003 à 10:02
Salut, tant qu'a te mettre au C/C++, ce que je t'encourage vivement de poursuivre, a mon avis tu pourrais peut-etre te debarrasser de toute bibli additionnelle. Ton exe ne peut se lancer chez moi sans un setup, tu utilises les biblis Borland qui n'y sont pas, prog direct avec API win32 et exe sera independant.
22 sept. 2003 à 09:32
Evidemment pour faire un keygen, faut d'abord connaitre l'algo qui permet de crypter et donc en trouver un qui decrypte !!
En l'occurence, ce tableau c'est des octets que l'auteur a choisi au hasard, pour augmenter la qualité du cryptage.
... voilà, qu'est-ce que tu veux que je t'explique de plus ?
au fait, c'est vrai... on peut pas avoir une idée générale de comment ça marche en voyant la source. D'ailleurs cet algo je l'ai recup d'un autre keygen, y'avait un *.txt avec :). Tiens j'te copie l'expli, tu devrai mieux comprendre (je l'ai fait à partir de ça) :
"FlashFXP Password Decrypter 0.1
=============================
tested on FlashFXP 1.2 (build 475 beta)
get a SITE.DAT file and open it with any texteditor, and there you'll
find stuff like this:
[kz]
IP=ipip
User=klefz
Pass=034D3F4342097B
Port=21
Options=3003333000
so just copy 034D3F4342097B and paste it into the program and
press decrypt, p00f you'll get the decrypted password =]
The encryption routine
====================
magic buffer:
79 41 33 36 7A 41 34 38-64 45 68 66 72 76 67 68 yA36zA48dEhfrvgh
47 52 67 35 37 68 35 55-6C 44 76 33 00 00 00 00 GRg57h5UlDv3
example
[kz]
IP=ipip
User=klefz
Pass=034D3F4342097B <- encrypted pass
Port=21
Options=3003333000
Pass=034D3F4342097B <- encrypted pass
^^ = first magic number
Pass=034D3F4342097B <- encrypted pass
^^ = first encrypted char in pass
Pass=034D3F4342097B <- encrypted pass
^^ = second encrypted pass
etc
the calculations is simple.. first char in pass is calculated like this:
0x4D XOR 0x79 (first char in magic buffer) = 0x34
0x34-0x03 (magic number) = 0x31 (1)
that's the first char in our password
0x3F XOR 0x41 (second char in magic buffer) = 0x7E
0x73-0x4D (first encrypted char) = 0x31 (1)
second char of the pass
0x43 XOR 0x33 (third char in magic buffer, think you get it now ;) = 0x70
0x70-0x3F (second encrypted char) = 0x31 (1)
0x42 XOR 0x36 = 0x74
0x74-0x43=0x31 (1)
0x09 XOR 0x7A = 0x73
0x73-0x42=0x31 (1)
0x7B XOR 0x41 = 0x3A
0x3A-0x09=0x31 (1)
so the password is 111111 ... not that hard ;)
NOTE if password is longer than 28 the pointer to the magic buffer=1 again
and if a char is > 0xFF then do like this:
0x5B XOR 0x41 = 0x1A
0x1A-0xE8 = 0xFFFFFF32 (all wrong here :)
0xFFFFFF32-0xFFFFFF01 = 0x31 (1) right answer ;)
21 sept. 2003 à 16:23
Je suis désolé de te demander çà mais pourrais tu expliquer ta source?
Du type:
Pourquoi remplir magic_buf[] avec 0x79, 0x41... comment as tu c'est valeurs?
Et pour ce qui ce passe dans la boucle for?
Merci
Sinon je trouve cette source très pédagogique.
7 sept. 2003 à 20:06
Bonne continuation ;-)
7 sept. 2003 à 12:23
La prog par API direct, je la trouve plus simple que d'apprendre des sabirs de surcouche comme MFC chez MS ou ta syntaxe chez Borland. Va voir mes sources pour t'en convaincre.
7 sept. 2003 à 12:11
sinon à propos du code y'aurai pas des améliorations à faire ?
En compilo y'a Visual C++ Visual Studio (et DevC++), le mieux c'est Visual Studio je pense ? Si j'apprends avec CBuilder je serai aussi programmer avec Visual C++/Studio ? pcq sinon ça m'emmerderai grave :) Visual Studio faut développer soit même l'interface graphique no ?
Bon vlàlala ça fait bcp de questions mais jss new alors :) merci de votre aide.
A+ Twis
7 sept. 2003 à 10:02