Windows 優化大師 V4.3 破解
經 FI V2.45 偵查得知安裝得到的所有可執行檔案都是用 Aapack V2.11 加的殼
分別用 unaspack V2.11c 給 OctoDll.dll 和 Windows優化大師.exe 脫殼
再用 w32dasm V8.93 反彙編脫殼後的可執行檔案
在 Windows優化大師.exe 中
:004E4D79 E8B6FCFFFF Call 004E4A34
//進 OctoDll.dll 檢查註冊碼
:004E4D7E 83F814
cmp eax, 00000014 //返回值為 eax=14H 則正確
:004E4D81 7417
je 004E4D9A //標題欄變為"已註冊"
因為跟蹤發現退出後重新執行 Windows優化大師.exe 又會執行到上面的程式碼, 故考慮修改
OctoDll.dll 中得出返回值的程式碼:
:004043DC 85C0
test eax, eax //若 eax=0H
//若 eax<>0H
:004043DE 7504
jne 004043E4 //這裡不跳
//這裡跳
:004043E0 33DB
xor ebx, ebx //置 ebx=0H
:004043E2 EB04
jmp 004043E8 //ebx 賦給 eax 作為返回值
:004043E4 0FB75DF6 movzx
ebx, word ptr [ebp-0A] //把檢查結果通過 ebx
賦給 eax 作為返回值
:004043E8 33C0
xor eax, eax
在註冊碼錯誤的情況下,上面的執行過程都是錯誤的,乾脆直接置 ebx=14H 再賦給 eax 作為返回值
:004043DC 90
nop
:004043DD BB14000000 mov ebx,
00000014
:004043E2 EB04
jmp 004043E8
OctoDll.dll 中的程式碼應作如下修改:
85C0750433DBEB04 ==> 90BB14000000EB04
在 Windows優化大師.exe 執行時程式碼修改地址為 005F43DC
由於 Windows優化大師.exe 主程式對加殼的 OctoDll.dll 進行CRC校驗,不能直接修改 OctoDll.dll 檔案
故考慮通過 Windows優化大師.exe 中在加殼程式碼還原後用SMC技術完成這項操作
用 topo V1.2 在加殼的 Windows優化大師.exe 中擴充30個位元組的空間,位於 Offset=7CE19H 處
注意選上重定向入口點(即將入口點改為 Offset=7CE19H 對應的絕對地址 00577019)及使程式碼可寫
然後修改加殼的 Windows優化大師.exe 中自 Offset=7CE19H 始的程式碼:
:00577019 66C705DC435F0090BB mov word ptr [005F43DC], BB90
:00577022 C705DE435F0014000000 mov dword ptr [005F43DE], 00000014
:0057702C E913E40600 jmp 005E5444
:00577031 90
由此得到的 Windows優化大師.exe 之徹底破解版可接受任意註冊碼,並可網上升級
另外未註冊或註冊失敗時,登錄檔存在如下字串鍵值
HKEY_LOCAL_MACHINE\Software\Wom\Masters = "0F0F0F0F"
註冊成功則此鍵值不存在
Sysdoctor.exe 會根據該鍵值存在與否決定 Windows優化大師 是否正常註冊過
---------------------------------------------------------------------------------------
深入內層的破解方法
OctoDll.dll
:00404301 E8B2FDFFFF call 004040B8
:00404306 83E802
sub eax, 00000002
:00404309 8945E0
mov dword ptr [ebp-20], eax
:0040430C C165DC02 shl
dword ptr [ebp-24], 02
/005F4306 6810435F00 push 005F4310
//置返回地址
/005F430B E92B2DF8FF jmp 0057703B
:00404310 8D4DDC
lea ecx, dword ptr [ebp-24]
:00404313 8B01
mov eax, dword ptr [ecx]
:00404315 8B5104
mov edx, dword ptr [ecx+04]
:00404318 0FACD002 shrd
eax, edx, 02 //雙精度右移
:0040431C C1EA02
shr edx, 02
:0040431F 8901
mov dword ptr [ecx], eax
:00404321 895104
mov dword ptr [ecx+04], edx
:00404324 8B45DC
mov eax, dword ptr [ebp-24]
:00404327 3B45E4
cmp eax, dword ptr [ebp-1C]
:0040432A 7404
je 00404330
設法在 00404310 之前提取註冊使用者的正確校驗碼[ebp-1C],作校驗過程的逆運算,用所得結果覆蓋
通過偽註冊碼計算得到的中間校驗碼[ebp-24]及[ebp-20]
用SMC技術可這樣實現:
先用 topo V1.2 在加殼的 Windows優化大師.exe 中擴充61個位元組的空間,位於 Offset=7CE19H 處
:00577019 66C70506435F006810 mov word ptr [005F4306], 1068
//修改程式碼,改變走向
:00577022 C70508435F00435F00E9 mov dword ptr [005F4308], E9005F43
:0057702C C7050C435F002B2DF8FF mov dword ptr [005F430C], FFF82D2B
:00577036 E909E40600 jmp 005E5444
//回到原加殼的 Windows優化大師.exe 的入口點
:0057703B 8B55E4
mov edx, dword ptr [ebp-1C] //註冊使用者的正確校驗碼
:0057703E C1EA1E
shr edx, 1E
:00577041 83C250
add edx, 00000050 //儲存進位以備雙精度右移
:00577044 8955E0
mov dword ptr [ebp-20], edx
:00577047 8B55E4
mov edx, dword ptr [ebp-1C]
:0057704A C1E202
shl edx, 02
//雙精度右移的反向操作
:0057704D 8955DC
mov dword ptr [ebp-24], edx
:00577050 C3
ret
相關資訊: 麻煩,省點力改兩位元組:83F8147417改作83F8147517; 83F8147407改作83F8147507 (空)(
cray
閱讀 0)