論一次VB程式的破解(新手看過來) <---wolflh2002兄請看!! (4千字)

看雪資料發表於2015-11-15

標 題:論一次VB程式的破解(新手看過來) <---wolflh2002兄請看!! (4千字)

發信人:偵探柯南[CCG]

時 間:2001-9-22 20:18:54 

詳細資訊:



今天有人求小弟幫著破這個軟體(技術交流),小弟看了看,原來是用VB編的,平時我是根本不動VB程式的,
我覺得VB編的好軟體比較少小弟於昨日加入了CCG,正處於心情好時,也就對付一下了....
軟體名稱:OverNimble Localize Plus v1.2
軟體主頁:http://www.overnimble.com
軟體功能:不詳.
文章目的:講解簡單的脫殼和爆破!
破解結論:簡單的VB程式不用smartcheck也能搞定.
用到工具:
1.trw2000 v1.23(娃娃版)
2.prodump v1.62
3.hiew v611
4.fileinfo v2.45
第一步:脫殼
    先是檢測檔案型別,用fileinfo發現是upx v1.2...
    於是開啟prodump選中unpack中的upx,瞬間脫殼....

    小弟在這裡有個疑惑,為什麼脫了殼後的程式,在用trw跟蹤時還是可以看到upx的領空???
    難道是我沒有脫乾淨??可是我反彙編沒問題呀???    請高手明示小弟..
第二步:爆破.
    我先試了getdlgitemtexta和messageboxa都不行(這是小弟的習慣,相信是個好習慣).
    於是就用法寶hmemcpy.

添入使用者名稱:WINDOW,註冊碼:123ABC
斷了下來後,先下bc,再下pmodule,後又有50下左右的F10來到:
00429B78: 8D4DE0                      lea      ecx,[ebp][-0020]
00429B7B: FF15FC064300                call      d,[0004306FC]
00429B81: E81AF8FFFF                  call    .0004293A0    <----關鍵的比較函式.
00429B8D: B904000280                  mov      ecx,080020004 ;
00429B92: B80A000000                  mov      eax,00000000A ;
00429B97: 894DA0                      mov      [ebp][-0060],ecx
00429B9A: 894598                      mov      [ebp][-0068],eax
00429B9D: 894DB0                      mov      [ebp][-0050],ecx
00429BA0: 8945A8                      mov      [ebp][-0058],eax
00429BA3: 894DC0                      mov      [ebp][-0040],ecx
00429BA6: 8945B8                      mov      [ebp][-0048],eax
00429BA9: 0F8424010000                je      .000429CD3  <---很關鍵的跳轉.
00429BAF: 391D4CDC4200                cmp      [00042DC4C],ebx

於是該了這個關鍵的跳轉,出現註冊成功的對話方塊,點了確定後發現註冊還是失敗了.
程式一定在很多地方呼叫了比較函式,搞定它就差不多了,於是就重比較函式入手.
在00429b81下F8,按了70次F10左右來到.

0042947F: 51                          push      ecx
00429480: FF15FC034300                call      d,[0004303FC]    -----|
00429486: 83F80C                      cmp      eax,00C ;            |->VB函式,這裡判斷註冊碼
00429489: 756A                        jne      .0004294F5        -----|的長度,一定不要跳才行.
0042948B: 8D55DC                      lea      edx,[ebp][-0024]
0042948E: 8955C0                      mov      [ebp][-0040],edx
00429491: C745B808400000              mov      d,[ebp][-0048],000004008 ;
00429491: C745B808400000              mov      d,[ebp][-0048],000004008
00429498: 8D45B8                      lea      eax,[ebp][-0048]
0042949B: 50                          push      eax
0042949C: FF1544054300                call      d,[000430544]    ----|
004294A2: 6685C0                      test      ax,ax                |->VB函式,這裡判斷註冊碼
004294A5: 744E                        je      .0004294F5        ----|是不是數字,也不要跳.
004294A7: 8B4DDC                      mov      ecx,[ebp][-0024]
004294AA: 51                          push      ecx
004294AB: FF1500074300                call      d,[000430700]
004294B1: FF15A8064300                call      d,[0004306A8]    ----|
004294B7: 8945E0                      mov      [ebp][-0020],eax      |->註冊碼比較,我不熟VB
004294BA: 83F801                      cmp      eax,001 ;            |所以沒有去找註冊碼.
004294BD: 7C36                        jl      .0004294F5        ----|不要跳.
004294BF: DB45E0                      fild      d,[ebp][-0020]
004294C2: DD5DA0                      fstp      q,[ebp][-0060]
004294C5: DD45A0                      fld      q,[ebp][-0060]
004294C8: DC1D181E4000                fcomp    q,[000401E18]
好了以後就沒有向004294f5(出錯的地方)跳的地方了.這樣我們就爆破成功了.

第三步:手動修改成正式版.
不管你是用Hex edit,還是Unasm(我用的是hiew,主要是我中了病毒,別的工具都不能用了).
只需要該以下三個地方:
1.)00429489的jne------>90,90(即nop,空指令).
2.)004294a5同上.
3.)004294bd同上.
好了我們完成了....我的VB不好,就不去找註冊碼了.

組織:China Crack Group[CCG]
ID:柯南

相關文章