談談VB程式的破解 (5千字)
談談VB程式的破解
有很多人說破解VB程式的利器是SmartCheck,我不敢苟同,因為我一直以為,只要有一個偵錯程式就能完成所有的破解才是我向往的境界.當然這不一定最簡便,但無疑是最有效的.
這次就說說VB程式的破解,當然,我不知道是否有其它可行的途徑,我只知道,透過偵錯程式就能完成一個破解.
示例程式:隨便寫段VB程式碼,然後編譯為本機程式碼(P-Code不在本文的討論範圍之內,我也發現了一些相關的規律,還在研究中)
Private Sub Form_Load()
If ax = 0 Then
MsgBox ("hi!")
End
Else
MsgBox
("ok!")
End
End
If
End Sub
用TR載入
0187:00401166 FF2570104000 JMP NEAR [00401070] //從00401171到了這裡.
0187:0040116C 68A0124000 PUSH DWORD 004012A0
//載入後停在這裡
0187:00401171
E8F0FFFFFF CALL `MSVBVM60!ThunRTMain`
//這個Call一定要進入
0187:00401176 0000 ADD [EAX],AL
0187:00401178 0000
ADD [EAX],AL
0187:0040117A 0000
ADD [EAX],AL
......
MSVBVM60!ThunRTMain
0187:6600DE22 55
PUSH EBP
0187:6600DE23 8BEC
MOV EBP,ESP
0187:6600DE25 6AFF
PUSH BYTE -01
0187:6600DE27
6898980166 PUSH DWORD 66019898
0187:6600DE2C
6871EF0E66 PUSH DWORD 660EEF71
0187:6600DE31
64A100000000 MOV EAX,[FS:00]
0187:6600DE37
50 PUSH EAX
0187:6600DE38 64892500000000 MOV [FS:00],ESP
0187:6600DE3F
51 PUSH ECX
0187:6600DE40 51 PUSH ECX
0187:6600DE41 83EC4C SUB ESP,BYTE +4C
0187:6600DE44 53 PUSH EBX
0187:6600DE45 56
PUSH ESI
0187:6600DE46 57
PUSH EDI
0187:6600DE47 8965E8
MOV [EBP-18],ESP
0187:6600DE4A
8B7508 MOV ESI,[EBP+08]
0187:6600DE4D 8935DCF71066 MOV [6610F7DC],ESI
0187:6600DE53 8365FC00 AND DWORD [EBP-04],BYTE +00
0187:6600DE57 8D45A0 LEA EAX,[EBP-60]
0187:6600DE5A 50
PUSH EAX
0187:6600DE5B FF1518110066 CALL `KERNEL32!GetStartupInfoA`
0187:6600DE61 0FB745D0
MOVZX EAX,WORD [EBP-30]
0187:6600DE65 A3D8F71066
MOV [6610F7D8],EAX
0187:6600DE6A FF35CCF61066 PUSH DWORD [6610F6CC]
0187:6600DE70 56
PUSH ESI
0187:6600DE71 BE70F41066
MOV ESI,6610F470
0187:6600DE76 8BCE
MOV ECX,ESI
0187:6600DE78
E860000000 CALL 6600DEDD
//這個Call一定要進去哦.
......(其實不要看在DLL中轉,其實並不難,很快就可以返回到程式的領空,我的目的就是要在程式執行前進入程式領空)
0187:******** FFD0 CALL EAX //最後到了這裡,ok,返回程式領空了哦!
......
0187:0040146C 816C240433000000 SUB DWORD
[ESP+04],33 //停在這裡,這裡已經是程式領空了哦!
0187:00401474
E9B7040000 JMP 00401930
//跳到什麼地方,你看下面吧!
0187:00401479 0000
ADD [EAX],AL
......
0187:00401930 55 PUSH EBP //看看象什麼?是不是和彙編,delphi程式開始的地方一樣啊?我們終於來到VB程式真正開始的地方了.
0187:00401931 8BEC MOV EBP,ESP
0187:00401933 83EC0C SUB ESP,BYTE +0C
0187:00401936 68A6104000 PUSH DWORD 004010A6
0187:0040193B 64A100000000 MOV EAX,[FS:00]
......
0187:00401991 C7458C02800000 MOV DWORD [EBP-74],8002
0187:00401998 FF1538104000 CALL `MSVBVM60!__vbaVarTstEq`
0187:0040199E 6685C0
TEST AX,AX
0187:004019A1 B904000280
MOV ECX,80020004
0187:004019A6 B80A000000
MOV EAX,0A
0187:004019AB 894DA4
MOV [EBP-5C],ECX
0187:004019AE 89459C
MOV [EBP-64],EAX
0187:004019B1
894DB4 MOV [EBP-4C],ECX
0187:004019B4 8945AC MOV [EBP-54],EAX
0187:004019B7 894DC4 MOV [EBP-3C],ECX
0187:004019BA 8945BC MOV [EBP-44],EAX
0187:004019BD 7443
JZ 00401A02
(NO JUMP) //知道這裡嗎,就是我程式碼中的判斷,這更加肯定了,在程式程式碼執行以前我就返回程式領空了.
0187:004019BF 8D558C LEA EDX,[EBP-74]
0187:004019C2 8D4DCC LEA ECX,[EBP-34]
0187:004019C5 C74594F0154000 MOV DWORD [EBP-6C],004015F0
0187:004019CC C7458C08000000 MOV DWORD [EBP-74],08
0187:004019D3 FF1574104000 CALL `MSVBVM60!__vbaVarDup`
0187:004019D9 8D559C LEA EDX,[EBP-64]
0187:004019DC 8D45AC
LEA EAX,[EBP-54]
0187:004019DF 52
PUSH EDX
0187:004019E0
8D4DBC LEA ECX,[EBP-44]
0187:004019E3 50 PUSH EAX
0187:004019E4 51 PUSH ECX
0187:004019E5 8D55CC LEA EDX,[EBP-34]
後記:
現在很多程式都在程式執行時判斷是否註冊,我相信我找到的這個是個可行的辦法,能夠在程式程式碼開始前進入程式領空.就可以知道它到底幹了些什麼.然後可以爆破或其它.相信很多大蝦都不屑一顧,我想告訴大家的是一個通用的方法.不知道你注意上面的這麼一段了嗎?
0187:******** FFD0 CALL EAX //只要每次在這裡下斷,就能把所有的VB程式在執行前斷下來(包括P-code,當然P-code還有更簡單的辦法在程式執行前斷下來),接著就能來到程式開始的地方.程式不就任你魚肉了?
我在幾個VB編寫的程式上試了一下,都能用此法破解成功,例如:沐風網頁三叉戟等.
flyfancy
http://flyfancy.126.com
相關文章
- 利用VB的函式快速破解VB程式! (2千字)2001-11-03函式
- 談談VB的資料庫程式設計方式 (轉)2008-03-20資料庫程式設計
- 淺談VB6逆向工程(5)2004-12-27
- VB Pcode破解方法及例項 (5千字)2001-06-16
- 談談關於如何破解OicqPassOver.exe Ver1.14的問題
(4千字)2000-07-31
- 再談powerbuilder程式防止破解的辦法2009-09-16UI
- 也談《傲世三國》的暴力破解法 (11千字)2001-01-10
- 淺談用Ollydbg跟蹤vb程式---soli
兄弟的問題2015-11-15
- 修改指標法破解VB程式 騰圖影視'97 (14千字)2001-07-25指標
- VB輸入限制的記憶體破解 (2千字)2003-04-28記憶體
- PolyView 破解 (5千字)2000-12-31View
- 破解MyMahj (5千字)2001-06-20
- 淺談VB6逆向工程(1)2004-12-22
- 淺談VB6逆向工程(2)2004-12-23
- 淺談VB6逆向工程(3)2004-12-25
- 淺談VB6逆向工程(4)2004-12-27
- 談談甘肅省某醫藥檢驗管理系統6.0的丟狗方法 (5千字)2003-02-20
- 翻譯“如何破解VB5程式的密碼保護... ( By DMA-48!!! )”,希望不會翻重 (4千字)2001-06-30密碼
- 修改指標法破解VB程式-Fast PC Linker-III (8千字)2001-06-29指標AST
- 彩神悠悠1.0---用winHEX破解VB程式之例三 (1千字)2001-09-17
- 談談微信小程式2017-06-03微信小程式
- 四個簡單的VB6 PCODE的crackme的2 Nag, 2 Code的破解。 (5千字)2001-10-14
- 我的破解心得(5) (16千字)2001-03-13
- 破解TurboLaunch 4.04 (5千字)2001-06-06
- 彩虹狗GS-MH破解-淺談狗的破解方法2015-11-15
- 談談阻礙資料建模的5大藉口2022-11-22
- 關於破解以p-code方式編譯的VB程式一例 (2千字)2002-04-01編譯
- 極速登入3.6---用winHEX破解VB程式之例二 (1千字)2001-09-02
- ASProtect 1.23
b18脫殼淺談 (5千字)2015-11-15
- 談談程式碼重構2019-05-05
- 談談程式設計師2015-06-01程式設計師
- 談談作業系統的多程式2021-08-06作業系統
- 談談對程式設計師的管理2019-01-16程式設計師
- 談談 Python 程式的執行原理2016-08-13Python
- 用VB“破解”有時間限制的程式 (轉)2007-12-04
- jdpack的脫殼及破解 (5千字)2002-06-25
- 破解入門5 (3千字)2000-09-23
- duelist crackme 1 破解 (5千字)2000-10-16