再次分析壞盤拷貝

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

BadCopy Pro V3.71.0727 漢化版破解分析                 
   
軟體名稱:

  BadCopy Pro V3.71.0727 漢化版
   
軟體簡介:
 
    BadCopy 軟體可以在不需要人工干預的情況下幫您讀出CD-ROM或磁碟上的壞檔案。效果顯著,還具有智慧修復的功能,最大程度挽回您的損失。新增或加強了以下特別功能:1、優化的演算法,保證修復拯救資料更快更全。2、支援資料夾直接複製,您甚至可以直接把整個邏輯盤完整複製到另一個資料夾下。3、可以自由定製BadCopy的各項糾錯引數,保證能高效,最大限度的挽救您的寶貴資料。4、可以直接對隱含或系統檔案進行操作。5、檔案操作安全性增強,危險操作先行提示,避免不必要的損失。6、可以直接在BadCopy裡面執行或開啟程式。
   
下載地址:

  http://www.skycn.com/soft/3497.html
------------------------------------------------------------
   
破解作者:

  weiyi75[Dfcg]


破解工具:

  olldbg,AspackDie,peid,hiew,dede2.40b
   
破解目的:

  個性使用者名稱,對抗Antidede程式。
   
------------------------------------------------------------
   
[破解過程]
   
     這個漢化版本的使用說明中已經含有註冊碼,好長啊,沒數多少位,填入註冊成功。標題是授權Id=Brought云云,看著好不舒服。這個註冊碼如果可以找出來,也很不錯啊,實在不行就爆掉它。

     看登錄檔中它把註冊資訊寫哪去了,作為破解愛好者不難找到位置在

[HKEY_CURRENT_USERSoftwareJufSoftBadCopy]
"ShowNotice"="FALSE"
"Key"="[8655115][ID=BROUGHT TO YOU BY ECLIPSE][JUFSOFT-BADCOPY]"
"KeyName"="ID=BROUGHT TO YOU BY ECLiPSE"

看到這裡,實時比較估計不好跟蹤,到是啟動跟蹤比較相對容易些。破解思路,刪除原先的註冊資訊,爆破關鍵點,讓程式授權給空使用者,然後偽造一份註冊資訊到登錄檔中成為"合法使用者"。像Vopt7.X,videofixer3.23
Crack版和我的方法類似,也不失為一種方法。你可能會問,追出註冊碼不比爆破好嗎,下一版還可以用。是的,但一我跟不出註冊碼,二,這些軟體的註冊碼作者每個版本的演算法都不一樣,三,在知識不夠的情況下,但需要用這個軟體爆破是捷徑。啟動時讀取登錄檔中的值時,先讀KeyName,再讀Key的鍵值,讀完開始分界。


詳細過程:

    啟動時讀取登錄檔的必經之函式攔截非ADVAPI32中的RegQueryValueExA莫屬。

開始,這裡是從未輸入過假使用者名稱和假註冊碼的跟蹤過程,即登錄檔中無註冊資訊,全都為空。

用Od載入程式,用外掛隱藏Od.右鍵程式碼視窗-搜尋-當前模組中的名稱,就是輸入表。找到

ADVAPI32.RegQueryValueExA   有兩處,選第二處, 回車,

參考位於Unpacked:CODE 到 advapi32.RegQueryValueExA
地址       反彙編                                    註釋
00407174   jmp dword ptr ds:[<&advapi32.RegQueryVal  ADVAPI32.RegQueryValueExA
0046F588   call <jmp.&advapi32.RegQueryValueExA>
004731CE   call <jmp.&advapi32.RegQueryValueExA>
0047334B   call <jmp.&advapi32.RegQueryValueExA>


找到這些呼叫,點右鍵在每個命令中下斷點,因為我們暫時不清除哪個呼叫是關鍵Call,跟蹤時自然明白。

F9執行程式,時刻觀察堆疊視窗中的登錄檔中的鍵值。 慢慢按F9

0046F588    .  E8 E77BF9FF   call <jmp.&advapi32.RegQueryV>; RegQueryValueExA  第一處斷點。
0046F58D    .  85C0          test eaxeax
0046F58F    .  75 4F         jnz short Unpacked.0046F5E0
...........................................................



004731CE   |.  E8 A13FF9FF   call <jmp.&advapi32.RegQueryV>; RegQueryValueExA  第三處中斷開始讀
004731D3   |.  85C0          test eaxeax                      "KeyName"
004731D5   |.  0F94C3        sete bl
004731D8   |.  8B0424        mov eaxdword ptr ss:[esp]
004731DB   |.  E8 78FBFFFF   call Unpacked.00472D58
..........................................................

堆疊視窗。

0012FD14   004F2A08  |ValueName = "KeyName"
0012FD18   00000000  |Reserved = NULL  登錄檔中什麼資訊也沒有輸,Keyname不存在。
0012FD1C   0012FD28  |pValueType = 0012FD28
0012FD20   00000000  |Buffer = NULL
0012FD24   0012FD44  pBufSize = 0012FD44
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

00407174    $- FF25 84B2B700 jmp dword ptr ds:[<&advapi32.>;  ADVAPI32.RegQueryValueExA  F9
0040717A       8BC0          mov eaxeax
0040717C    $- FF25 80B2B700 jmp dword ptr ds:[<&advapi32.>;  ADVAPI32.RegSetValueExA
00407182       8BC0          mov eaxeax
00407184    $- FF25 F0B3B700 jmp dword ptr ds:[<&kernel32.>;  kernel32.CloseHandle
0040718A       8BC0          mov eaxeax

堆疊視窗。

0012FD0C   004731D3  /CALL 到 RegQueryValueExA 來自 Unpacked.004731CE
0012FD10   00000090  |hKey = 90
0012FD14   004F2A08  |ValueName = "KeyName"  讀取完畢keyname,無內容啊。
0012FD18   00000000  |Reserved = NULL
0012FD1C   0012FD28  |pValueType = 0012FD28
0012FD20   00000000  |Buffer = NULL
0012FD24   0012FD44  pBufSize = 0012FD44
...........................................................

F9幾次,到了

004731CE   |.  E8 A13FF9FF   call <jmp.&advapi32.RegQueryV>; RegQueryValueExA
004731D3   |.  85C0          test eaxeax         
004731D5   |.  0F94C3        sete bl
004731D8   |.  8B0424        mov eaxdword ptr ss:[esp]
004731DB   |.  E8 78FBFFFF   call Unpacked.00472D58

堆疊視窗。

0012FD10   00000090  |hKey = 90
0012FD14   004F2A38  |ValueName = "Key" 開始讀Key
0012FD18   00000000  |Reserved = NULL    登錄檔中什麼資訊也沒有輸,Key不存在。
0012FD1C   0012FD28  |pValueType = 0012FD28   
0012FD20   00000000  |Buffer = NULL
0012FD24   0012FD44  pBufSize = 0012FD44
0012FD28   0012FD40
0012FD2C   004F2A38  ASCII "Key"
..........................................................


00407174    $- FF25 84B2B700 jmp dword ptr ds:[<&advapi32.>;  ADVAPI32.RegQueryValueExA
0040717A       8BC0          mov eaxeax   呵,到站了,在F9就飛了。
0040717C    $- FF25 80B2B700 jmp dword ptr ds:[<&advapi32.>;  ADVAPI32.RegSetValueExA
00407182       8BC0          mov eaxeax
00407184    $- FF25 F0B3B700 jmp dword ptr ds:[<&kernel32.>;  kernel32.CloseHandle
0040718A       8BC0          mov eaxeax
0040718C    $- FF25 ECB3B700 jmp dword ptr ds:[<&kernel32.>;  kernel32.CompareStringA
00407192       8BC0          mov eaxeax
00407194    $- FF25 E8B3B700 jmp dword ptr ds:[<&kernel32.>;  kernel32.CreateDirectoryA
0040719A       8BC0          mov eaxeax

堆疊視窗。

0012FD0C   004731D3  /CALL 到 RegQueryValueExA 來自 Unpacked.004731CE
0012FD10   00000090  |hKey = 90
0012FD14   004F2A38  |ValueName = "Key"
0012FD18   00000000  |Reserved = NULL   讀取完畢key,任無內容啊,鬱悶,程式說的。
0012FD1C   0012FD28  |pValueType = 0012FD28
0012FD20   00000000  |Buffer = NULL
0012FD24   0012FD44  pBufSize = 0012FD44
0012FD28   0012FD40
0012FD2C   004F2A38  ASCII "Key"

.............................................................

讀取登錄檔鍵值完畢,程式即將開始比較結果,現在Alt+B取消所有斷點,從系統領空中回到程式中去,ADVAPI32只負責讀取登錄檔,比較真偽可不是它的工作。

Ctrl+F9


77DA24F7     C2 1800         retn 18
77DA24FA     397D 1C         cmp dword ptr ss:[ebp+1C], ed>
77DA24FD     0F84 5CF50000   je ADVAPI32.77DB1A5F
77DA2503   ^ E9 29FFFFFF     jmp ADVAPI32.77DA2431
77DA2508     3955 18         cmp dword ptr ss:[ebp+18], ed>
77DA250B   ^ 0F84 A6FEFFFF   je ADVAPI32.77DA23B7
77DA2511     837D 08 01      cmp dword ptr ss:[ebp+8], 1
77DA2515     0F85 DB000000   jnz ADVAPI32.77DA25F6
......................................................

Ctrl+F9

004731EA   .  C3            retn
004731EB       90            nop
004731EC   /$  53            push ebx
004731ED   |.  56            push esi

F8

回家

00473200   |.  84C0          test alal   這裡。
00473202   |.  74 06         je short Unpacked.0047320A
00473204   |.  8B4424 04     mov eaxdword ptr ss:[esp+4]
00473208   |.  EB 03         jmp short Unpacked.0047320D
0047320A   |> 83C8 FF       or eax, FFFFFFFF
0047320D   |>  59            pop ecx
0047320E   |.  5A            pop edx
0047320F   |.  5E            pop esi
00473210   |.  5B            pop ebx
00473211   .  C3            retn



00473254   |.  8BD8          mov ebxeax
00473256   |.  85DB          test ebxebx
00473258   |.  7E 4F         jle short Unpacked.004732A9  放心走,沒那麼快比較。

負雜程式要繞一些彎子,你程式跟蹤多了,一眼就可以找到關鍵點。

....................................................
004732A9   |> 8BC7          mov eaxedi
004732AB   |.  E8 B017F9FF   call Unpacked.00404A60
004732B0   |>  5A            pop edx
004732B1   |.  5D            pop ebp
004732B2   |.  5F            pop edi
004732B3   |.  5E            pop esi
004732B4   |.  5B            pop ebx
004732B5   .  C3            retn


004F27B6    .  8B45 CC       mov eaxdword ptr ss:[ebp-34>
004F27B9    .  8D55 F0       lea edxdword ptr ss:[ebp-10>
004F27BC    .  E8 5F69F1FF   call Unpacked.00409120
004F27C1    .  33C0          xor eaxeax
004F27C3    .  5A            pop edx
004F27C4    .  59            pop ecx
004F27C5    .  59            pop ecx
004F27C6    .  64:8910       mov dword ptr fs:[eax], edx
004F27C9    .  EB 0A         jmp short Unpacked.004F27D5

004F27D5    > 68 442A4F00   push Unpacked.004F2A44
004F27DA    .  6A 00         push 0
004F27DC    .  68 B8000000   push 0B8
004F27E1    .  B0 03         mov al, 3
004F27E3    .  E8 EC75F1FF   call Unpacked.00409DD4
004F27E8    .  E8 6733F1FF   call Unpacked.00405B54
004F27ED    .  52            push edx                      ; /Arg2
004F27EE    .  50            push eax                      ; |Arg1
004F27EF    .  8D45 C8       lea eaxdword ptr ss:[ebp-38>; |
004F27F2    .  E8 756BF1FF   call Unpacked.0040936C        ; Unpacked.0040936C
004F27F7    .  FF75 C8       push dword ptr ss:[ebp-38]
004F27FA    .  68 502A4F00   push Unpacked.004F2A50        ;  ASCII "]["
004F27FF    .  8D55 C0       lea edxdword ptr ss:[ebp-40>
004F2802    .  A1 18A2B600   mov eaxdword ptr ds:[B6A218>
004F2807    .  E8 C466F1FF   call Unpacked.00408ED0
004F280C    .  8B45 C0       mov eaxdword ptr ss:[ebp-40>
004F280F    .  8D55 C4       lea edxdword ptr ss:[ebp-3C>
004F2812    .  E8 0969F1FF   call Unpacked.00409120
004F2817    .  FF75 C4       push dword ptr ss:[ebp-3C]
004F281A    .  68 5C2A4F00   push Unpacked.004F2A5C
004F281F    .  68 682A4F00   push Unpacked.004F2A68        ;  ASCII "[JUFSOFT-BADCOPY]"
004F2824    .  8D45 F4       lea eaxdword ptr ss:[ebp-C]
004F2827    .  BA 06000000   mov edx, 6
004F282C    .  E8 A725F1FF   call Unpacked.00404DD8
004F2831    .  B3 01         mov bl, 1
004F2833    .  A1 18A2B600   mov eaxdword ptr ds:[B6A218>
004F2838    .  E8 DB24F1FF   call Unpacked.00404D18
004F283D    .  83F8 05       cmp eax, 5
004F2840    .  0F8E B1000000 jle Unpacked.004F28F7

004F28F7    > 8B45 F4       mov eaxdword ptr ss:[ebp-C]  
004F28FA    .  8B55 F0       mov edxdword ptr ss:[ebp-10>  
004F28FD    .  E8 5A25F1FF   call Unpacked.00404E5C   
004F2902    .  75 1C         jnz short Unpacked.004F2920  
                                                           
004F2904    .  8D55 BC       lea edxdword ptr ss:[ebp-44>
004F2907    .  A1 18A2B600   mov eaxdword ptr ds:[B6A218>
004F290C    .  E8 0F68F1FF   call Unpacked.00409120
004F2911    .  837D BC 00    cmp dword ptr ss:[ebp-44], 0
004F2915    .  74 09         je short Unpacked.004F2920
004F2917    .  C745 FC 05270>mov dword ptr ss:[ebp-4], 270>
004F291E    .  EB 05         jmp short Unpacked.004F2925

004F2981    .  E8 A687F1FF   call Unpacked.0040B12C
004F2986    .  DD5D B4       fstp qword ptr ss:[ebp-4C]
004F2989    .  9B            wait
004F298A    .  E8 6189F1FF   call Unpacked.0040B2F0
004F298F    .  DC5D B4       fcomp qword ptr ss:[ebp-4C]
004F2992    .  DFE0          fstsw ax
004F2994    .  9E            sahf
004F2995    .  76 19         jbe short Unpacked.004F29B0
004F2997    .  8B45 F4       mov eaxdword ptr ss:[ebp-C]         Eax中是註冊重要資訊,自己看。
004F299A    .  8B55 F0       mov edxdword ptr ss:[ebp-10]        我們沒有輸入Key的假鍵值
004F299D    .  E8 BA24F1FF   call Unpacked.00404E5C
004F29A2    .  74 0C         je short Unpacked.004F29B0
004F29A4    .  6A 0A         push 0A                           ; /Timeout = 10. ms
004F29A6    .  E8 41BCF1FF   call <jmp.&kernel32.Sleep>        ; Sleep
....................................................................


004EE47D   |.  83C0 0B       add eax, 0B
004EE480   |.  3D 10270000   cmp eax, 2710
004EE485       75 40         jnz short Unpacked.004EE4C7  開始分界了,跳走就授權給你了。爆破點。
004EE487   |.  FF75 FC       push dword ptr ss:[ebp-4]        必須跳走,飛向明教光明頂。
004EE48A   |.  68 E8E54E00   push Unpacked.004EE5E8
004EE48F   |.  A1 7C605000   mov eaxdword ptr ds:[50607C]
004EE494   |.  FF30          push dword ptr ds:[eax]
004EE496   |.  68 FCE54E00   push Unpacked.004EE5FC
004EE49B   |.  8D45 F8       lea eaxdword ptr ss:[ebp-8]
004EE49E   |.  BA 04000000   mov edx, 4
004EE4A3   |.  E8 3069F1FF   call Unpacked.00404DD8
004EE4A8   |.  8B55 F8       mov edxdword ptr ss:[ebp-8]
004EE4AB   |.  A1 E4A1B600   mov eaxdword ptr ds:[B6A1E4]
004EE4B0   |.  E8 AB23F6FF   call Unpacked.00450860

....................................................................



004EE4C7   |> FF75 FC       push dword ptr ss:[ebp-4]         ;  Unpacked.004EE5C0
004EE4CA   |.  68 08E64E00   push Unpacked.004EE608
004EE4CF   |.  8D55 F0       lea edxdword ptr ss:[ebp-10]
004EE4D2   |.  B8 94CF4E00   mov eax, Unpacked.004ECF94
004EE4D7   |.  E8 D088F1FF   call Unpacked.00406DAC
004EE4DC   |.  FF75 F0       push dword ptr ss:[ebp-10]
004EE4DF   |.  68 FCE54E00   push Unpacked.004EE5FC
004EE4E4   |.  8D45 F4       lea eaxdword ptr ss:[ebp-C]
004EE4E7   |.  BA 04000000   mov edx, 4
004EE4EC   |.  E8 E768F1FF   call Unpacked.00404DD8
004EE4F1   |.  8B55 F4       mov edxdword ptr ss:[ebp-C]
004EE4F4   |.  A1 E4A1B600   mov eaxdword ptr ds:[B6A1E4]
004EE4F9   |.  E8 6223F6FF   call Unpacked.00450860

打上評估版本的標記。

破解小結:
            
雙擊  004EE485   這行   jnz short Unpacked.004EE4C7

直接修改為  jz short Unpacked.004EE4C7  編彙編按鈕,關閉。


右鍵程式碼視窗-複製到可執行程式-全部修正-複製。

然後在新視窗中右鍵-儲存檔案,Badcopyc.exe.

執行程式,爆破成功,授權人是誰呢?


偽造註冊使用者資訊,keyname可個性話。

REGEDIT4

[HKEY_CURRENT_USERSoftwareJufSoftBadCopy]
"ShowNotice"="FALSE"
"Key"="999999999999999999999999999999"
"KeyName"=" 給weiyi75"


儲存為user.reg,加入登錄檔,完工,比正版使用者如何。

這篇文章我覺得很像脫殼啊,受Fly影響了,另外演算法,管它是rsa還是brofish演算法,可不是weiyi75的事。


謝謝大家耐心看完!

補充,雖然軟體叫Badcopy,不過好盤一樣可以copy.選擇硬碟中的某檔案恢復,到最後一步提示你是評估版,無法儲存結果,必須線上註冊。怒!和我貓膩,我吃定你了。

用Dede3.0反編譯程式,停止響應???你的是不是這樣,Antidede,誰讓Dede公開程式碼的呢,看!不過我還有一個必殺Dede版本----------------------Dede2.40beta版本,根本不執行程式就開始反編譯,你如何Anti???超酷!


反編譯後如果你有一些漢化的經驗就更好,至少應該對Dephi資源有些概念。

點Procedures標籤,

在mainunit處點一下,再點BNextClick

***** TRY
|
004EE7B2   64FF30                 push    dword ptr fs:[eax]
004EE7B5   648920                 mov     fs:[eax], esp
004EE7B8   8B45FC                 mov     eax, [ebp-$04]
004EE7BB   E8F81D0000             call    004F05B8
004EE7C0   8D55EC                 lea     edx, [ebp-$14]
004EE7C3   8B45FC                 mov     eax, [ebp-$04]

* Possible reference to control 'MainNote':TNotebook
|
004EE7C6   8B805C030000           mov     eax, [eax+$035C]
004EE7CC   E8176BF5FF             call    004452E8
004EE7D1   8B45EC                 mov     eax, [ebp-$14]

* Possible String Reference to: "SaveFile"  儲存檔案
|
004EE7D4   BA74EE4E00             mov     edx, $004EEE74
004EE7D9   E87E66F1FF             call    00404E5C
004EE7DE   0F857D010000           jnz     004EE961
004EE7E4   A1BC5D5000             mov     eaxdword ptr [$505DBC]
004EE7E9   803800                 cmp     byte ptr [eax], $00
004EE7EC   750D                   jnz     004EE7FB
004EE7EE   8B45FC                 mov     eax, [ebp-$04]
004EE7F1   E85E1C0000             call    004F0454
004EE7F6   E90F060000             jmp     004EEE0A
004EE7FB   8D55E4                 lea     edx, [ebp-$1C]
004EE7FE   8B45FC                 mov     eax, [ebp-$04]

* Possible reference to control 'ESaveFile':TEdit
|
004EE801   8B8098040000           mov     eax, [eax+$0498]
004EE807   E82420F6FF             call    00450830
004EE80C   8B45E4                 mov     eax, [ebp-$1C]
004EE80F   8D55E8                 lea     edx, [ebp-$18]
004EE812   E809A9F1FF             call    00409120
004EE817   837DE800               cmp     dword ptr [ebp-$18], +$00
004EE81B   751A                   jnz     004EE837
004EE81D   8D55E0                 lea     edx, [ebp-$20]
004EE820   B89CCF4E00             mov     eax, $004ECF9C
004EE825   E88285F1FF             call    00406DAC
004EE82A   8B45E0                 mov     eax, [ebp-$20]
004EE82D   E8C6B7F5FF             call    00449FF8
004EE832   E9D3050000             jmp     004EEE0A
004EE837   E8B4CAF1FF             call    0040B2F0
004EE83C   D81D80EE4E00           fcomp   dword ptr [$4EEE80]
004EE842   DFE0                   fstsw   ax
004EE844   9E                     sahf
004EE845   7223                   jb      004EE86A
004EE847   8B157C605000           mov     edx, [$50607C]
004EE84D   8B12                   mov     edx, [edx]  取標題名字,我的是給weiyi75

* Possible String Reference to: "ID="  貓膩點。
|
004EE84F   B88CEE4E00             mov     eax, $004EEE8C   和ID=字元
004EE854   E8FB67F1FF             call    00405054  比較第一處字元是ID=開始的嗎?
004EE859   85C0                   test    eaxeax
004EE85B   750D                   jnz     004EE86A  爆破點,修改讓它再次飛向明教光明頂。
004EE85D   8B45FC                 mov     eax, [ebp-$04]
004EE860   E8EF1B0000             call    004F0454  評估限制出現
004EE865   E9A0050000             jmp     004EEE0A
004EE86A   66BA0500               mov     dx, $0005
004EE86E   A1ECA1B600             mov     eaxdword ptr [$B6A1EC]
004EE873   E8C8F6FFFF             call    004EDF40
004EE878   8D55DC                 lea     edx, [ebp-$24]
004EE87B   B8A4CF4E00             mov     eax, $004ECFA4
004EE880   E82785F1FF             call    00406DAC
004EE885   8B55DC                 mov     edx, [ebp-$24]
004EE888   A1ECA1B600             mov     eaxdword ptr [$B6A1EC]
004EE88D   E866F7FFFF             call    004EDFF8

   
------------------------------------------------------------

用hiew修改  004EE85B   750D  jnz     004EE86A 
 


004EE85B   740D                   jz     004EE86A 



實在想當正版使用者,我們通過分析得知。



004F2997    .  8B45 F4       mov eaxdword ptr ss:[ebp-C]         Eax中是註冊重要資訊,自己看。

再次用Od攔截看到 [8655115][ID=給WEIYI75][JUFSOFT-BADCOPY]  是個固定格式,中間是授權人名。

將keyname  給WEIYI75轉為大寫,在對本上面的貓膩分析,知道結果如下。

再次用計事本新建一個User.reg,內容如下。

REGEDIT4

[HKEY_CURRENT_USERSoftwareJufSoftBadCopy]
"ShowNotice"="FALSE"
"Key"="[8655115][ID=給WEIYI75][JUFSOFT-BADCOPY]"
"KeyName"="ID=給weiyi75"



這個是仿正版reg註冊檔案。

匯入後仍然是評估版本,跟進

004EE473   |.  E8 8066F1FF   call Unpacked.00404AF8
004EE478   |.  E8 BF410000   call Unpacked.004F263C  F7跟進去看看
004EE47D   |.  83C0 0B       add eax, 0B
004EE480   |.  3D 10270000   cmp eax, 2710
004EE485       75 40         jnz short Unpacked.004EE4C7



004F263C    $  55            push ebp  到這裡。
004F263D    .  8BEC          mov ebpesp
004F263F    .  B9 09000000   mov ecx, 9
004F2644    >  6A 00         push 0
004F2646    .  6A 00         push 0
004F2648    .  49            dec ecx
004F2649    .^ 75 F9         jnz short Unpacked.004F264
.............................................

裡面比較了keyname,key,version


004F26C9    .  BA 082A4F00   mov edx, Unpacked.004F2A08        ;  ASCII "KeyName"
004F26CE    .  8B45 F8       mov eaxdword ptr ss:[ebp-8]
004F26D1    .  E8 6A0BF8FF   call Unpacked.00473240


004F275E    .  68 8E274F00   push Unpacked.004F278E
004F2763    .  64:FF30       push dword ptr fs:[eax]
004F2766    .  64:8920       mov dword ptr fs:[eax], esp
004F2769    .  8D4D D0       lea ecxdword ptr ss:[ebp-30]
004F276C    .  BA 282A4F00   mov edx, Unpacked.004F2A28        ;  ASCII "Version"
004F2771    .  8B45 F8       mov eaxdword ptr ss:[ebp-8]
004F2774    .  E8 C70AF8FF   call Unpacked.00473240
004F2779    .  8B45 D0       mov eaxdword ptr ss:[ebp-30]
004F277C    .  8D55 E8       lea edxdword ptr ss:[ebp-18]
004F277F    .  E8 9C69F1FF   call Unpacked.00409120
004F2784    .  33C0          xor eaxeax
004F2786    .  5A            pop edx
004F2787    .  59            pop ecx
004F2788    .  59            pop ecx
004F2789    .  64:8910       mov dword ptr fs:[eax], edx



004F279B    .  68 CB274F00   push Unpacked.004F27CB
004F27A0    .  64:FF30       push dword ptr fs:[eax]
004F27A3    .  64:8920       mov dword ptr fs:[eax], esp
004F27A6    .  8D4D CC       lea ecxdword ptr ss:[ebp-34]
004F27A9    .  BA 382A4F00   mov edx, Unpacked.004F2A38        ;  ASCII "Key"
004F27AE    .  8B45 F8       mov eaxdword ptr ss:[ebp-8]
004F27B1    .  E8 8A0AF8FF   call Unpacked.00473240


004F2838    .  E8 DB24F1FF   call Unpacked.00404D18  這裡不能跳走,應為程式發現幾處鍵值都是空
004F283D    .  83F8 05       cmp eax, 5           要給你打評估版本標記了。
004F2840    .  0F8E B1000000 jle Unpacked.004F28F7
004F2846    .  8B45 E8       mov eaxdword ptr ss:[ebp-18]
004F2849    .  BA 842A4F00   mov edx, Unpacked.004F2A84        ;  ASCII "3.71.0727"
004F284E    .  E8 0926F1FF   call Unpacked.00404E5C  這個就是Version註冊鍵值。


結果如下:


REGEDIT4

[HKEY_CURRENT_USERSoftwareJufSoftBadCopy]
"ShowNotice"="FALSE"
"Key"="[8655115][ID=給WEIYI75][JUFSOFT-BADCOPY]"
"KeyName"="ID=給weiyi75"
"Version"="3.71.0727"


這個是完全仿正版reg註冊檔案。




破解版,必須修改以下兩處跳轉。


004EE485 
 

004EE85B  



破解版的Key如下。key和keyname可任意填。

REGEDIT4

[HKEY_CURRENT_USERSoftwareJufSoftBadCopy]
"ShowNotice"="FALSE"
"Key"="99999999999999999999999999999"
"KeyName"="給weiyi75"


再次感謝大家看完,請大家執行badcopy選擇媒介或其它驅動器,如d盤中某檔案放到它預設的儲存地址體驗一下。

相關文章