加密金剛鎖V3.00註冊演算法----(上集) (7千字)
“加密金剛鎖”的前身就是“fedt for windows”,是一款專業的檔案加密解密工具。它適用於windows9x/me/nt/2000/XP
等操作平臺。
這個軟體的加密有一點過份,如果你暴破得不徹底的話,它會很不禮貌的說你的解密水平很差等等啦,我看到這些東西就他媽的反胃了,呵呵,所以破它是天經地義的啦。
工具:
trw2000
hview
w32dasm
破解:crackjack[CCG]
好,我們看看他是用什麼樣的保護方式,以至作者那麼的囂張。用fi245檢查,發現它是用aspack V2.11加的殼,呵呵,這個殼是很溫柔的呵,解它就隨便在網上拉一個工具下來就可以解它了,我們今天要研究它的加密方法。這個軟體採取動態註冊的方法,如果輸入的註冊碼不正確,註冊按鈕就不可用。破解這類軟體一般用的中斷是bpx
hmemcpy,我們先輸入名字,名字不小於4個字元,並且輸入7個註冊碼,然後切換到TRW,下斷點bpx hmemcpy,然後輸入第八個字元,程式被中點了,如下:
:0041175B 8B4DFC
mov ecx, dword ptr [ebp-04] <====返回到這裡
:0041175E 85C9
test ecx, ecx
:00411760 7408
je 0041176A
:00411762 8B45FC
mov eax, dword ptr [ebp-04]
:00411765 8B50FC
mov edx, dword ptr [eax-04] <=====取註冊使用者名稱長度過
:00411768 EB02
jmp 0041176C
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00411760(C)
|
:0041176A 33D2
xor edx, edx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00411768(U)
|
:0041176C 83FA04
cmp edx, 00000004 <=====比較使用者名稱長度,如果小於4則註冊失敗
:00411775 33C0
xor eax, eax
:00411777 8945F8
mov dword ptr [ebp-08], eax
:0041177A 8D55F8
lea edx, dword ptr [ebp-08]
:0041177D FF45E4
inc [ebp-1C]
:00411780 8B83EC020000 mov eax, dword
ptr [ebx+000002EC]
:00411786 E839B70400 call 0045CEC4
:0041178B 8B4DF8
mov ecx, dword ptr [ebp-08]
:0041178E 85C9
test ecx, ecx
:00411790 7408
je 0041179A
:00411792 8B45F8
mov eax, dword ptr [ebp-08]
:00411795 8B50FC
mov edx, dword ptr [eax-04] <====取註冊碼長度
:00411798 EB02
jmp 0041179C
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00411790(C)
|
:0041179A 33D2
xor edx, edx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00411798(U)
|
:0041179C 83FA08
cmp edx, 00000008 <====比較註冊碼長度,如果小於8則註冊失敗
然後按f10,來到下面的地方:
:004117D8 33C0
xor eax, eax
:004117DA 8D4DEC
lea ecx, dword ptr [ebp-14]
:004117DD 8B12
mov edx, dword ptr [edx]
:004117DF 8945EC
mov dword ptr [ebp-14], eax
:004117E2 A1446E4C00 mov eax,
dword ptr [004C6E44]
:004117E7 FF45E4
inc [ebp-1C]
:004117EA 8B00
mov eax, dword ptr [eax]
:004117EC E8EFBDFFFF call 0040D5E0
<=====註冊演算法
:004117F1 8D55EC
lea edx, dword ptr [ebp-14] <====真正的註冊碼地址
:004117F4 33C9
xor ecx, ecx
:004117F6 52
push edx
:004117F7 894DF4
mov dword ptr [ebp-0C], ecx
:0041176F 0F8CDD000000 jl 00411852
好,我們追進4117ec的CALL,看它的註冊演算法是怎麼樣的:
程式將使用者名稱和機器碼連線在一起做為註冊碼的運算常數,如使用者名稱是linjie,機器碼是3CG5A3D8,則運算碼為linjie3CG5A3D8(0),注意,還要在運算碼最後加一個0H
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D69A(U)
|
:0040D6A1 021C01
add bl, byte ptr [ecx+eax] <=====累加運算碼,取結果的一個位元組(total)
:0040D6A4 40
inc eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D68E(U)
|
:0040D6A5 8B55F8
mov edx, dword ptr [ebp-08]
:0040D6A8 85D2
test edx, edx
:0040D6AA 7408
je 0040D6B4
:0040D6AC 8B55F8
mov edx, dword ptr [ebp-08]
:0040D6AF 8B4AFC
mov ecx, dword ptr [edx-04]
:0040D6B2 EB02
jmp 0040D6B6
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D6AA(C)
|
:0040D6B4 33C9
xor ecx, ecx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D6B2(U)
|
:0040D6B6 3BC1
cmp eax, ecx
:0040D6B8 7CD6
jl 0040D690
:0040D6BA 8B45F8
mov eax, dword ptr [ebp-08] <====取運算碼地址
。
。
。
:0040D6CB 8B45A4
mov eax, dword ptr [ebp-5C] <====取運算碼地址
:0040D6CE 8A0C02
mov cl, byte ptr [edx+eax] <====取運算碼第N位
:0040D6D1 8BC6
mov eax, esi <====運算碼的位置
:0040D6D3 02C8
add cl, al
<====cl=運算碼ASCII值+運算碼位置(fx1)
:0040D6D5 8BD6
mov edx, esi <====運算碼位置
:0040D6D7 02DA
add bl, dl
<====累加總數(total)+運算碼(fx2)位置
:0040D6D9 32CB
xor cl, bl
<=====cl(fx)=fx1 xor fx2
:0040D6DB 8B45F8
mov eax, dword ptr [ebp-08]
:0040D6DE 85C0
test eax, eax
:0040D6E0 7408
je 0040D6EA
:0040D6E2 8B55F8
mov edx, dword ptr [ebp-08]
:0040D6E5 8B42FC
mov eax, dword ptr [edx-04]
:0040D6E8 EB02
jmp 0040D6EC
.
.
.
:0040D702 8A0402
mov al, byte ptr [edx+eax] <====取運算碼的最後一位
:0040D705 8BD6
mov edx, esi <=====要計算的註冊碼位置regcode(第一位註冊碼是0,第二位是1,其它的類推)
:0040D707 02C2
add al, dl <=====運算碼+運算碼位置
:0040D709 8BD6
mov edx, esi
:0040D70B 0FAFD6
imul edx, esi <=====regcode*regcode
:0040D70E 02C2
add al, dl <=====(運算碼+運算碼位置)+(regcode*regcode)
:0040D710 8B55A0
mov edx, dword ptr [ebp-60] <=====迴圈變數
:0040D713 0FAF55A0 imul
edx, dword ptr [ebp-60] <=====迴圈變數*迴圈變數
:0040D717 2AC2
sub al, dl <=====相減(fy)
:0040D719 8B55F8
mov edx, dword ptr [ebp-08]
:0040D71C 85D2
test edx, edx
:0040D71E 7408
je 0040D728
:0040D720 8B55F8
mov edx, dword ptr [ebp-08]
:0040D723 8B52FC
mov edx, dword ptr [edx-04]
:0040D726 EB02
jmp 0040D72A
.
.
.
:0040D72A 66C745C82000 mov [ebp-38],
0020
:0040D730 2AC2
sub al, dl <====fy-0E(運算碼長度)
:0040D732 8D55F0
lea edx, dword ptr [ebp-10]
:0040D735 32C8
xor cl, al <====fx xor (fy-0E)結果作為第一個註冊碼運算函式的引數
:0040D737 33C0
xor eax, eax
:0040D739 8945F0
mov dword ptr [ebp-10], eax
:0040D73C 8BD9
mov ebx, ecx
:0040D73E FF45D4
inc [ebp-2C]
:0040D741 8B45B4
mov eax, dword ptr [ebp-4C]
:0040D744 E887FCFFFF call 0040D3D0
:0040D749 8B4DF0
mov ecx, dword ptr [ebp-10]
:0040D74C 85C9
test ecx, ecx
:0040D74E 7405
je 0040D755
:0040D750 8B4DF0
mov ecx, dword ptr [ebp-10]
:0040D753 EB05
jmp 0040D75A
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D74E(C)
|
:0040D755 B90A7F4B00 mov ecx,
004B7F0A
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D753(U)
|
:0040D75A 8BD3
mov edx, ebx
:0040D75C 8B45B4
mov eax, dword ptr [ebp-4C]
:0040D75F E81CE0FFFF call 0040B780
<====第一個註冊碼運算函式
(未完待續)
:0040D764 8B55A0
mov edx, dword ptr [ebp-60]
相關文章
- CDSpace Power+註冊演算法 (7千字)2001-07-27演算法
- Konvertor 3.03的註冊碼演算法模組的分析
(7千字)2015-11-15演算法
- 註冊碼演算法 (2千字)2001-01-14演算法
- APISpy32 2.5的註冊 (7千字)2001-04-01API
- 《棋隱》的註冊演算法 (19千字)2001-08-26演算法
- FolderView 1.7
註冊演算法分析 (14千字)2015-11-15View演算法
- 重新貼過註冊演算法分析 (16千字)2001-10-23演算法
- 註冊你的Fast Browser4.01 (7千字)2001-10-06AST
- 飛馬魔法桌布V3.0註冊演算法(適合初學者) (7千字)2001-11-25演算法
- estiprojm 註冊 (12千字)2001-11-08
- EffeTech HTTP Sniffer 3.2註冊演算法分析 (5千字)2002-06-24HTTP演算法
- 有聲有色4.0註冊演算法 一 (11千字)2001-05-01演算法
- Active Ebook Compiler的註冊演算法 (14千字)2001-05-09Compile演算法
- Green Tea 2.60註冊碼演算法分析 (3千字)2000-07-17演算法
- 《WinImage v5.00.5007 註冊碼破解》 (7千字)2001-05-10
- 錢鹿鎖屏APP註冊方法 錢鹿鎖屏怎麼註冊?2016-12-01APP
- SuperCleaner 2.31註冊碼演算法分析 - OCG (13千字)2002-04-02演算法
- Registry Crawler 4.0註冊碼演算法分析 - OCG
(20千字)2002-04-07演算法
- UltraEdit-32
10註冊碼演算法分析 (19千字)2003-05-17演算法
- 完美解除安裝6.0註冊演算法分析 (2千字)2002-02-27演算法
- Directory Scanner v1.5 註冊演算法分析 (6千字)2015-11-15演算法
- MouseStar V3.01註冊演算法分析 (18千字)2015-11-15演算法
- **********.exe註冊碼演算法分析--高手莫笑 (31千字)2015-11-15演算法
- 註冊 喜悅加密器 v1.0 [真是簡單!] (2千字)2001-07-27加密
- SecureCRT 7 註冊碼2016-09-02Securecrt
- Flash Cam 1.79註冊演算法分析與序號產生器制作以及爆破方法
(7千字)2015-11-15演算法
- Screen Demo Maker
V3.0註冊演算法分析 (8千字)2002-09-10演算法
- 盲打之友V2.5破解(包括註冊演算法) (11千字)2001-10-29演算法
- Magic convertor 2.8註冊碼演算法分析
- OCG (9千字)2015-11-15演算法
- CoolClock V1.02註冊演算法分析 ---OCG (14千字)2015-11-15演算法
- 飄雪動畫秀3.02註冊演算法分析!
(11千字)2015-11-15動畫演算法
- 初學者請進,看far.exe的註冊碼! (7千字)2001-04-24
- 轉貼 Ronnier 的 AcqURL 5.1 註冊黑名單的破解 (7千字)2001-05-14
- Cleaner 3.2註冊分析 (18千字)2001-12-09
- LanSee 註冊演算法2015-11-15演算法
- ClockWise 3.22e註冊碼演算法分析 - OCG (17千字)2002-04-10演算法
- 〖網際營銷〗V2.4 註冊演算法分析 (11千字)2001-11-03演算法
- GSview V4.12 for Windows註冊演算法分析 -
OCG (8千字)2015-11-15ViewWindows演算法