How to keygen Killer_3K's VB crackme 2 by ACiD BuRN [ECLiPSE / CiA]



quotes removed for some reasons :p



Tools needed : - Smart check (and only it)
               - a brain (that is need too)




I)Let's go


Fire up smart check , and open it on the K3K's crackme 2 =)
now , enter your name : ACiD BuRN , serial : 112233 ...
click on the button , and close the crackme.
Well , now u must see this in smart check after clicking on "command1_click" :

As you can see , this bith is takin the ascii value for each char , but what he does with ??!
i suppose your smart check is well configurated , so , click on : "show all events" now u must
see , some interesting stuff !!  :
now , you see the crackme taking ascii value of the current char (1st it is "A" from ACiD BuRN)
and then it add it to previous ascii value from others chars...

1st it add "65" to "0" coz no chars before "A" ...
in smart check you see this with this line :
__vbavaradd(VARIANT:Empty,VARIANT:Integer:65)

this add 65 to 0 (empty means : no value yet)

if you look down , you see same with the next chars of the name "C" (C from ACiD BuRN)
Asc(String("C") returns Integer: 67   <== take ascii value of the current char , here "C"
then add it to the last add of ascii value:

__vbavaradd(VARIANT:65,VARIANT:Integer:67)
then u see the result :
__vbavarmove(VARIANT:integer:132,VARIANT:Integer:65)
the result is : 132 , and the value:65 is the old result.So we can assume it replace 65 by the
new value : 132

Well it does this for each char ascii value  , so this loop take each char ascii value in decimal
from your name , and add them...

--------------------------------
A = 65 + 0
C = 67 + 65 = 132
i = 132 + 105 = 237
D = 237 + 68 = 305
space = 305 + 32 = 337
B = 337 + 66 = 403
u = 403 + 117 =  520
R = 520 + 82 = 602
N = 602 + 78 = 680
---------------------------------

so , the final value from this addition of ascii value is : 680 in decimal ....

now , lets look at the final calcul :

lemme explain you this little shit !!!
1st : you see the entered fake serial : 112233
2nd : you see this : 112133 (it changed !! fake - 100)
3rd : you see : __vbavardiv(VARIANT:112133,VARIANT:12) : this divise the modifed serial with 12
4th : you see : __vbavarmul(VARIANT:9344.42,VARIANT:2) : this multiple the result from the div with 2
5th : you see : __vbavarTstEq(VARIANT:18688,8,VARIANT:Integer:680) : compare the final result with
               680 (this is the calculed value with ascii)
6th : you see : Msgbox (VARIANT:"WRONG SERIAL" ... blablabla)

well , now what do u think we must do ? , if you use your brain , all is clear !!

Lemme explain !!

II)Final Explanation :

this crackme does some operations on the entered serial , and compare the serial returned from
this operations to the value of all additioned ascii value (in decimal)...
Well , it is quite easy to find what to do now !!
the result of the operations must be equal to the value of all additioned ascii value (in decimal)
so , lets take this value , and lets reverse this operations !!

- Division become Multiplication ( "/" become " * " )
- Multiplication become Division ( " * " become " / " )
- substracion become addition    ( " - " become " + " )

Sorry , but i writte all , to be sure to not have LAME mails and questions !! heh

so , just reverse the serial check to make good serial :

  4th : you see : __vbavarmul(VARIANT:9344.42,VARIANT:2) : this multiple the result from the div
  with 2

so take ascii value and Divise it with "2"

  3rd : you see : __vbavardiv(VARIANT:112133,VARIANT:12) : this divise the modifed serial with 12

so , take the result of the divistion and mutliply it with 12

  2nd : you see this : 112133 (it changed !! fake - 100)

so , add the result of the mul with 100

  1st : you see the entered fake serial : 112233

now , is not fake but GOOD serial coz it is calculated from the ascii value :)


HERE COMES THE ALGO :

1st = calculate ascii total
2nd = take ascii total and Divise it with "2"
3rd = take the result of the divistion and mutliply it with "12"
4th = add 100 to the result of the multiply.
5th = FUCK !! nothing much , i though u understand =) kidding dude !


Exemple for my nick: ACiD BuRN

1st = 680 (ascii total)
2nd = 680 / 2 = 340
3rd = 340 * 12 = 4080
4th = 4080 + 100 = 4180

NOW TEST IT !!

open the crackme , enter ACiD BuRN as name , and : 4180 as serial !!
A nice little messagebox tell us : GOOD WORK =)

arff !! WE DiD it !!

i hope you enjoyed all this tut !!



III)Bonus : Source in VB5 of the Keygen !!

i coded a little keygen for this , and i will show u source :


--------------------START OF VB 5 SOURCE -------------------------------------

Private Sub Text1_Change()
If Text1.Text = "" Then
Text2.Text = "Enter your name!"
Else
Text2.Text = ""
For i = 1 To Len(Text1.Text)                                  '\
    bignum = Val(bignum) + Val(Asc(Mid$(Text1.Text, i, 1)))   ' > LOOP for total of ascii     
Next i                                                        '/
bignum = bignum / 2                    'Div with 2
bignum = bignum * 12                   'Mul with 12 
bignum = bignum + 100                  'add 100
Text2.Text = bignum                    'this is the final code
End If
End Sub

--------------------END OF VB 5 SOURCE ---------------------------------------




IV)Ending ....


Well , this tut is finish , hope u understand all this piece of shit, but if you have a 
comment or one question, mail me to : [email protected]
you can found all my tuts at : http://acidburn2000.cjb.net/
Enjoy!


Greetings to my groups : ECLiPSE / CiA

Also greetingz to: (no specific order)

R!SC, ^Inferno^, AB4DS, Cyber Blade, Klefz, , Volatility, TORN@DO, T4D
Jeff, [Virus], JaNe , Appbusta , Duelist , tKC , BuLLeT , Lucifer48 , 
MiZ , DnNuke , Bjanes , Skymarshall , afkayas , elmopio , SiFLyiNG , 
Fire Worx , Crackz , neural_en  , WarezPup , _y , SiONIDE , SKORPIEN
Lazarus , Eternal_Bliss , Magic Raphoun , DEZM , Bisoux , Carpathia ,
K17 , theMc , noos , Xmen , TeeJi , JB007 , Arobas , T0AD ,ytc , Kwai_lo , Killer_3K....


if your name is not here sorry !!! lot of men to greets !


				ACiD BuRN [ECL/CiA]