VB逆向
大家或許有所察覺了,隨著我們課程的不斷深入學(xué)習(xí),我們感覺自身逆向的“內(nèi)功”也在不斷的增進(jìn)!
我們從爆破入手,到現(xiàn)在逐步大家進(jìn)入程序的內(nèi)部,認(rèn)識(shí)不同編譯器開發(fā)的程序,探索不同的加密邏輯。
?
前邊,我們的例子中既有VC++開發(fā)的程序,也有Delphi開發(fā)的程序,今天我們給大家分析一個(gè)VB程序的加密和解密思路。
為了讓大家更好地了解逆向,我們需要掌握不同編譯器編譯出來的程序的特點(diǎn),然后才能有針對(duì)性的進(jìn)行逆向。
?
其中,在逆向一個(gè)程序前,先搞清楚這個(gè)程序是由什么編譯器和神馬語言寫出來的,是灰常必要的。
高手只需要從代碼間的細(xì)小差別就可以看出端倪,而菜鳥們也有便捷的工具可以一步到位告訴你這個(gè)程序是由什么編譯器編譯的:PEiD.exe
?
我們看到了,這個(gè)程序是一個(gè)VB程序。
Virtual BASIC是由早期DOS時(shí)代的BASIC語言發(fā)展而來的可視化編程語言。
?
VB是由事件驅(qū)動(dòng)的編程語言:
就是在可視化編程環(huán)境下我們可以繪制一些窗體,按鈕,編輯框等控件,然后為這些控件所可能引發(fā)的事件如按鈕被單擊或者被雙擊編寫對(duì)應(yīng)的處理代碼。
?
不過作為類似的語言,小甲魚建議大家可以學(xué)下Delphi或者C#。
所有的VB程序幾乎都是依賴于一個(gè)外部的動(dòng)態(tài)鏈接庫。這個(gè)動(dòng)態(tài)鏈接庫的名字是:MSVBVM60.dll(可能有多個(gè)版本,但名字都差不多~)
然而正是因?yàn)閂B中所有的API函數(shù)都在DLL中去實(shí)現(xiàn),所以導(dǎo)致我們?cè)诟櫝绦虻膱?zhí)行代碼時(shí)灰常頻繁地在DLL領(lǐng)空和程序領(lǐng)空跳來跳去跳來跳去跳來跳去跳來跳去跳來跳去跳來跳去 。。。。。。
?
API函數(shù)的作用有很多,例如作為中介讓我們的程序和指定設(shè)備進(jìn)行溝通。
?
VB破解的關(guān)鍵
?
針對(duì)變量:
__vbaVarTstEq
__vbaVarTstNe
__vbaVarCompEq
__vbaVarCompLe
__vbaVarCompLt
__vbaVarCompGe
__vbaVarCompGt
__vbaVarCompNe
?
針對(duì)字符串:
__vbaStrCmp
__vbaStrComp
__vbaStrCompVar
__vbaStrLike
__vbaStrTextComp
__vbaStrTextLike
轉(zhuǎn)載于:https://www.cnblogs.com/milantgh/p/3870254.html
總結(jié)
- 上一篇: DF学数据结构系列——B树(B-树和B+
- 下一篇: Unity 4.3 2D 教程:新手上路