160 - 13 badboy
偷懶了很久也是時候要繼續(xù)開始學習了。
環(huán)境:
windows xp sp3
工具:
VB Decompiler v8.3
 
這次是個vb文件,所以嘗試一下用這個的感覺。
打開文件之后發(fā)現(xiàn)有兩個CrackMe選擇,分別是1.0版本和2.0版本。
 
 
打開vb decompiler,載入badboy,
在Forms的Form1里頭,幾乎有所有的控件的屬性,找到Caption為“try”的commandbutton,然后記下它的標號,分別是2,4
然后跑到code,在form1里面找到command2和command4的click事件。
因為1.0版本的CrackMe只有一個輸入框,那就可以猜測Command4是1.0的try,因為已經(jīng)有代碼了,照著看就好了。
發(fā)現(xiàn)要和Label3的caption相同才行,那么Label3的caption是如何來的呢?
把From1里頭的事件都找一遍,最后在Combol的click中找到了Label3,然后上面有一長串的計算公式,就不難猜測上面公式的計算結(jié)果就是Label3的capton內(nèi)容了。
公式內(nèi)容是:
CStr((((CLng(Day(Now) * Day(23) + Month(Now) * Month(2) + Year(Now) * Year(3)) + CLng((((Day(Now) * Day(23)) + (Month(Now) * Month(2))) + (Year(Now) * Year(3)))))
?+ CLng((Day(14) * Year(2020)))) + CLng((Day(14) * Year(2020)))))
根據(jù)這串公式就可以得出CrackMe 1,0的輸入內(nèi)容了。
Day(Now)是指今天的號數(shù),Month(Now)是今天的月份,Year(Now)則是今年的年份了
Day(23) 則是 22, Moth(3)則是1,Year(3)是1900,Day(14)是13,Year(2020)是1905
然后就可以寫出CrackMe1.0注冊機了。
 
現(xiàn)在來看看CrackMe 2.0的command2的click事件。
首先看到的是一個長度判斷,輸入的Name長度不能小于5
 
然后有一個很長的字符串:
var_94 = "0110617121214051216101106141404110614140411091211100810101608040610121608100416"
 
var_98 = Text1.text 這個就是保存輸入的name
 
緊接著就是2個for循環(huán),其中:
Mid()函數(shù)在我理解中是:Mid(char * s, int begin,int length),即從s[begin-1]的位置開始,數(shù)到s[begin-1+length],將這個范圍里的數(shù)字轉(zhuǎn)為數(shù)字。
如:Mid(var_94,CLng(var_A8*3),3),假設(shè)var_A8 = 4吧,然后找到var_94[11]的位置,然后數(shù)3個數(shù)字,所以函數(shù)返回結(jié)果是:1405
val()函數(shù)就是將string類型轉(zhuǎn)為double型
Asc()函數(shù)則是計算字母的ascii值
 
最后面是一個比較,比較的內(nèi)容是輸入的serial 和兩個for得出的結(jié)果的對比,相同則顯示成功。
 
在寫注冊機的時候需要注意的是,有些變量是突然間跑出來的,可以假設(shè)它之前為0,還有個問題是var_A8有一個var_A8+1判斷是否大于等于39,但是顯然找不到改變var_A8的值的地方,或許是工具反編譯的時候有問題,但是仍然可以猜想var_A8的改變情況,拿第一個for循環(huán)來講:或許是var_A8++,也可能是var_A8 *= 3,那么當它大于等于39的時候,它就會變成0,然后它將會一直為0,可以兩種方法都測試一下,會發(fā)現(xiàn)都得不到正確serial,那么就有可能是在 if(var_A8+1)>=39 then 這里的判斷多了,把“+1”去掉,在這個判斷前面加上var_A8++,就能得到正確的serial
 
 
 
 
 
 
總結(jié)
以上是生活随笔為你收集整理的160 - 13 badboy的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 鬼吹灯之牧野诡事2剧情介绍
 - 下一篇: 摩尔庄园手游超拉工资在哪里领