來一篇:暴力破解Crystal Button 1.31A (7千字)

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

暴力破解Crystal Button 1.31A

破 解 者:AK47[FCG]
使用工具:<Trw1.23><SuperBPM><Fi><Hiew><PE Explorer 1.8>
          <ImportRECv1.4.2+><loader><PEditor>
軟體說明:Crystal Button“水晶按鈕”是一個用來建立專業品質的用於網路的圖形的工具。您可以建立多種三維的玻璃、金屬、塑膠甚至XP樣式的按鈕。您可以創作導航欄,用不同的滑鼠掠過效果來建立按鈕――突出顯示、按壓和其它。“水晶按鈕”能輕鬆建立3D影像。您可以修改影像材料和文字,照明,邊框型別,形狀以及更多!
開工啦!!!!!!!!
第一步:
用FI檢測顯示為 “ASProtect v1.2? Alexey ”好說請出 loader找到它的入口點:00432b00
執行Trw1.23還有SuperBPM
下斷點:bpx 017f:00432b00
執行Crystal Button被攔截,下命令:suspend 返回,用PEditor的tasks來抓取記憶體,儲存檔案為DUMPED.EXE。下一步進行修復,執行ImportRECv1.4.2+,選取Crystal Button.exe後在OEP中輸入
得到的入口點:00032b00點選IAT AutoSearch再點選get imports 和
show invalid用右鍵單擊被選中的部分用trace level1 (disasm)修復,
發現還有一部分沒有被修復,用右鍵選單中的pulgin trace(asprotect 1.2x emul)就可以全部修復了。
好!!點選Fix dump 在對話方塊中選中剛才得到的DUMPED.EXE,得到Dumped_.exe這個就是被脫了殼的Crystal Button,執行試一下沒有問題。到此脫殼成功。
進行第二步:
先看一下它需要修改的地方:1 .無法儲存方案和方案另存為
                          2. 執行程式有提示註冊的對話方塊
                          3. 匯出的影像帶有trial字樣的圖片
先解決 1.無法儲存方案和方案另存為:
經過跟蹤來找到這裡:

:00409D70 64A100000000            mov eax, dword ptr fs:[00000000]
:00409D76 6AFF                    push FFFFFFFF
:00409D78 68CC8B4800              push 00488BCC
:00409D7D 50                      push eax
:00409D7E 64892500000000          mov dword ptr fs:[00000000], esp
:00409D85 81ECA8000000            sub esp, 000000A8
:00409D8B 56                      push esi
:00409D8C 8BF1                    mov esi, ecx
:00409D8E E8E98D0700              call 00482B7C
:00409D93 8B4004                  mov eax, dword ptr [eax+04]
:00409D96 8B80C0000000            mov eax, dword ptr [eax+000000C0]
:00409D9C 8B48F8                  mov ecx, dword ptr [eax-08]
:00409D9F 85C9                    test ecx, ecx
:00409DA1 0F85A6020000            jne 0040A04D――――》》》這裡是關鍵
:00409DA7 6A02                    push 00000002
:00409DA9 8D4C2414                lea ecx, dword ptr [esp+14]
:00409DAD E81EC70100              call 004264D0
:00409DB2 8D4C2410                lea ecx, dword ptr [esp+10]
:00409DB6 C78424B400000000000000  mov dword ptr [esp+000000B4], 00000000
:00409DC1 E8A45D0600              call 0046FB6A
:00409DC6 83F801                  cmp eax, 00000001
:00409DC9 0F854F020000            jne 0040A01E
:00409DCF 53                      push ebx
:00409DD0 57                      push edi
:00409DD1 E8A68D0700              call 00482B7C
:00409DD6 8B7804                  mov edi, dword ptr [eax+04]
:00409DD9 687CD24B00              push 004BD27C
:00409DDE 8D4C2414                lea ecx, dword ptr [esp+14]
:00409DE2 E8F2470600              call 0046E5D9
:00409DE7 6874D24B00              push 004BD274
:00409DEC 8D4C2410                lea ecx, dword ptr [esp+10]
:00409DF0 C68424C000000001        mov byte ptr [esp+000000C0], 01
:00409DF8 E8DC470600              call 0046E5D9
:00409DFD 8B00                    mov eax, dword ptr [eax]
:00409DFF 81C7386E0000            add edi, 00006E38
:00409E05 8BF0                    mov esi, eax
:00409E07 8B07                    mov eax, dword ptr [edi]
用HIEW 將00409DA1    jne 0040A04D 改為Je就可以成功地使用儲存方案和方案另存為的功能。
解決2. 執行程式有提示註冊的對話方塊
每次程式執行的時候就會提示註冊,現在就是要去掉它:
經跟蹤來到:
:0046FB6A B8E4B64800              mov eax, 0048B6E4
:0046FB6F E88434FCFF              call 00432FF8
:0046FB74 83EC18                  sub esp, 00000018
:0046FB77 53                      push ebx
:0046FB78 56                      push esi
:0046FB79 8BF1                    mov esi, ecx
:0046FB7B 57                      push edi
:0046FB7C 8965F0                  mov dword ptr [ebp-10], esp
:0046FB7F 8975E4                  mov dword ptr [ebp-1C], esi
:0046FB82 8B4648                  mov eax, dword ptr [esi+48]
:0046FB85 8B7E44                  mov edi, dword ptr [esi+44]
:0046FB88 8945E8                  mov dword ptr [ebp-18], eax
:0046FB8B E8EC2F0100              call 00482B7C
:0046FB90 837E4000                cmp dword ptr [esi+40], 00000000
:0046FB94 8B580C                  mov ebx, dword ptr [eax+0C]
:0046FB97 741E                    je 0046FBB7------》》》這時是關鍵
:0046FB99 E8DE2F0100              call 00482B7C
:0046FB9E 8B580C                  mov ebx, dword ptr [eax+0C]
:0046FBA1 6A05                    push 00000005
:0046FBA3 FF7640                  push [esi+40]
:0046FBA6 53                      push ebx
將0046FB97    je 0046FBB7中的je改為jne就可以完成去掉提示註冊的對話方塊的任務
下面進行最後一項:解決 3. 匯出的影像帶有trial字樣的圖片
用PE Explorer 1.8開啟Dumped_.exe ,在資源的點陣圖中的292項可以看到帶有trial字樣的圖片
就是它,程式每次在使用匯出的影像功能時,就是將它放在匯出的影像上面。
好!我們們就將它刪除,一定要注意在刪除它之前得先選擇“XP可視方式顯示嚮導”並下一步下一步
一直到完成,然後才將它刪除並儲存為一個新的檔案,我將它取名為:Button.exe
執行Button.exe看看能不能用,發現問題:在選用“匯出的影像”功能時整個程式就時入了死迴圈。
好說,執行TRW,並下斷點: pbx 0046fb6a 然後使用“匯出的影像”功能被攔截,一直小心跟蹤
看看它是在哪兒死迴圈,一直到:
|:0040B75C(C)
|
:0040B745 85C9                    test ecx, ecx
:0040B747 7C0D                    jl 0040B756
:0040B749 85D2                    test edx, edx
:0040B74B 7C09                    jl 0040B756
:0040B74D 0FAFC2                  imul eax, edx
:0040B750 0306                    add eax, dword ptr [esi]
:0040B752 C60408FF                mov byte ptr [eax+ecx], FF

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040B747(C), :0040B74B(C)
|
:0040B756 8B4318                  mov eax, dword ptr [ebx+18]
:0040B759 41                      inc ecx
:0040B75A 3BC8                    cmp ecx, eax
:0040B75C 7CE7                    jl 0040B745――――》》》》注意這裡

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040B743(C)
|
:0040B75E 8B431C                  mov eax, dword ptr [ebx+1C]
:0040B761 42                      inc edx
:0040B762 3BD0                    cmp edx, eax
:0040B764 7CD1                    jl 0040B737――――》》》還有這裡

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040B732(C)
|
:0040B766 8D4D98                  lea ecx, dword ptr [ebp-68]
:0040B769 C645FC01                mov [ebp-04], 01
:0040B76D E83A710600              call 004728AC
:0040B772 C745D0C40C4900          mov [ebp-30], 00490CC4
:0040B779 8D4DD0                  lea ecx, dword ptr [ebp-30]
:0040B77C C745FC04000000          mov [ebp-04], 00000004
:0040B783 E8E37B0600              call 0047336B
跟蹤發現問題就在:
    0040B75C    jl 0040B745
和  0040B764    jl 0040B737
分別將它們的JL改為JNL就可以了。
執行一下完全正常,匯出的影像看一下:那個討厭的帶有trial字樣的圖片不見了!!!!!
到此破解完成。由於沒有仔細測試,也不知有什麼方有錯,但有一點可以肯定,匯出的檔案有那個
討厭的標誌了。

相關文章