再次分析壞盤拷貝
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 eax, eax
0046F58F . 75 4F jnz short Unpacked.0046F5E0
...........................................................
004731CE |. E8 A13FF9FF call <jmp.&advapi32.RegQueryV>; RegQueryValueExA 第三處中斷開始讀
004731D3 |. 85C0 test eax, eax "KeyName"
004731D5 |. 0F94C3 sete bl
004731D8 |. 8B0424 mov eax, dword 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 eax, eax
0040717C $- FF25 80B2B700 jmp dword ptr ds:[<&advapi32.>; ADVAPI32.RegSetValueExA
00407182 8BC0 mov eax, eax
00407184 $- FF25 F0B3B700 jmp dword ptr ds:[<&kernel32.>; kernel32.CloseHandle
0040718A 8BC0 mov eax, eax
堆疊視窗。
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 eax, eax
004731D5 |. 0F94C3 sete bl
004731D8 |. 8B0424 mov eax, dword 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 eax, eax 呵,到站了,在F9就飛了。
0040717C $- FF25 80B2B700 jmp dword ptr ds:[<&advapi32.>; ADVAPI32.RegSetValueExA
00407182 8BC0 mov eax, eax
00407184 $- FF25 F0B3B700 jmp dword ptr ds:[<&kernel32.>; kernel32.CloseHandle
0040718A 8BC0 mov eax, eax
0040718C $- FF25 ECB3B700 jmp dword ptr ds:[<&kernel32.>; kernel32.CompareStringA
00407192 8BC0 mov eax, eax
00407194 $- FF25 E8B3B700 jmp dword ptr ds:[<&kernel32.>; kernel32.CreateDirectoryA
0040719A 8BC0 mov eax, eax
堆疊視窗。
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 al, al 這裡。
00473202 |. 74 06 je short Unpacked.0047320A
00473204 |. 8B4424 04 mov eax, dword 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 ebx, eax
00473256 |. 85DB test ebx, ebx
00473258 |. 7E 4F jle short Unpacked.004732A9 放心走,沒那麼快比較。
負雜程式要繞一些彎子,你程式跟蹤多了,一眼就可以找到關鍵點。
....................................................
004732A9 |> 8BC7 mov eax, edi
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 eax, dword ptr ss:[ebp-34>
004F27B9 . 8D55 F0 lea edx, dword ptr ss:[ebp-10>
004F27BC . E8 5F69F1FF call Unpacked.00409120
004F27C1 . 33C0 xor eax, eax
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 eax, dword 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 edx, dword ptr ss:[ebp-40>
004F2802 . A1 18A2B600 mov eax, dword ptr ds:[B6A218>
004F2807 . E8 C466F1FF call Unpacked.00408ED0
004F280C . 8B45 C0 mov eax, dword ptr ss:[ebp-40>
004F280F . 8D55 C4 lea edx, dword 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 eax, dword 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 eax, dword 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 eax, dword ptr ss:[ebp-C]
004F28FA . 8B55 F0 mov edx, dword ptr ss:[ebp-10>
004F28FD . E8 5A25F1FF call Unpacked.00404E5C
004F2902 . 75 1C jnz short Unpacked.004F2920
004F2904 . 8D55 BC lea edx, dword ptr ss:[ebp-44>
004F2907 . A1 18A2B600 mov eax, dword 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 eax, dword ptr ss:[ebp-C] Eax中是註冊重要資訊,自己看。
004F299A . 8B55 F0 mov edx, dword 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 eax, dword ptr ds:[50607C]
004EE494 |. FF30 push dword ptr ds:[eax]
004EE496 |. 68 FCE54E00 push Unpacked.004EE5FC
004EE49B |. 8D45 F8 lea eax, dword ptr ss:[ebp-8]
004EE49E |. BA 04000000 mov edx, 4
004EE4A3 |. E8 3069F1FF call Unpacked.00404DD8
004EE4A8 |. 8B55 F8 mov edx, dword ptr ss:[ebp-8]
004EE4AB |. A1 E4A1B600 mov eax, dword 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 edx, dword 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 eax, dword ptr ss:[ebp-C]
004EE4E7 |. BA 04000000 mov edx, 4
004EE4EC |. E8 E768F1FF call Unpacked.00404DD8
004EE4F1 |. 8B55 F4 mov edx, dword ptr ss:[ebp-C]
004EE4F4 |. A1 E4A1B600 mov eax, dword 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 eax, dword 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 eax, eax
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 eax, dword 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 eax, dword ptr [$B6A1EC]
004EE88D E866F7FFFF call 004EDFF8
------------------------------------------------------------
用hiew修改 004EE85B 750D jnz 004EE86A
為
004EE85B 740D jz 004EE86A
實在想當正版使用者,我們通過分析得知。
004F2997 . 8B45 F4 mov eax, dword 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 ebp, esp
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 eax, dword 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 ecx, dword ptr ss:[ebp-30]
004F276C . BA 282A4F00 mov edx, Unpacked.004F2A28 ; ASCII "Version"
004F2771 . 8B45 F8 mov eax, dword ptr ss:[ebp-8]
004F2774 . E8 C70AF8FF call Unpacked.00473240
004F2779 . 8B45 D0 mov eax, dword ptr ss:[ebp-30]
004F277C . 8D55 E8 lea edx, dword ptr ss:[ebp-18]
004F277F . E8 9C69F1FF call Unpacked.00409120
004F2784 . 33C0 xor eax, eax
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 ecx, dword ptr ss:[ebp-34]
004F27A9 . BA 382A4F00 mov edx, Unpacked.004F2A38 ; ASCII "Key"
004F27AE . 8B45 F8 mov eax, dword 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 eax, dword 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盤中某檔案放到它預設的儲存地址體驗一下。
相關文章
- JavaScript物件的深拷貝以及淺拷貝分析2018-12-13JavaScript物件
- python深拷貝和淺拷貝之簡單分析2018-08-26Python
- vue深拷貝淺拷貝2018-01-16Vue
- python 指標拷貝,淺拷貝和深拷貝2020-03-09Python指標
- 一文搞懂Java引用拷貝、淺拷貝、深拷貝2020-12-18Java
- jquery之物件拷貝深拷貝淺拷貝案例講解2020-10-25jQuery物件
- C++拷貝建構函式(深拷貝,淺拷貝)2018-05-28C++函式
- iOS深拷貝和淺拷貝2019-10-09iOS
- JS深拷貝與淺拷貝2019-10-21JS
- Java深拷貝和淺拷貝2019-03-25Java
- 物件深拷貝和淺拷貝2019-03-04物件
- javascript 淺拷貝VS深拷貝2018-08-11JavaScript
- JavaScript 深度拷貝和淺拷貝2018-09-26JavaScript
- JavaScript深拷貝和淺拷貝2019-01-23JavaScript
- js 淺拷貝和深拷貝2018-07-18JS
- js 深拷貝和淺拷貝2022-03-30JS
- JavaScript淺拷貝和深拷貝2020-12-30JavaScript
- js深拷貝和淺拷貝2017-04-12JS
- js 深拷貝 vs 淺拷貝2017-09-03JS
- 淺談深拷貝與淺拷貝?深拷貝幾種方法。2019-10-17
- 拷貝連結串列;及糖果分析2013-10-21
- C++淺拷貝和深拷貝2020-04-06C++
- 深拷貝、淺拷貝與Cloneable介面2020-05-01
- 賦值、淺拷貝與深拷貝2019-03-26賦值
- 實現物件淺拷貝、深拷貝2019-07-20物件
- Python淺拷貝與深拷貝2019-02-16Python
- go slice深拷貝和淺拷貝2021-07-18Go
- JavaScript之深拷貝和淺拷貝2018-11-15JavaScript
- js的深拷貝和淺拷貝2018-12-28JS
- 聊聊物件深拷貝和淺拷貝2018-12-29物件
- ECMAScript-淺拷貝和深拷貝2020-10-23
- python深拷貝與淺拷貝2020-11-08Python
- js之淺拷貝和深拷貝2021-10-10JS
- 深度解析深拷貝和淺拷貝2021-01-02
- Objective C淺拷貝和深拷貝2018-01-25Object
- React之淺拷貝與深拷貝2018-04-01React
- 物件的深拷貝與淺拷貝2016-12-16物件
- 【c++】淺拷貝與深拷貝2015-05-15C++