上週六想解beyond compare2.0.1, 雖說是幾乎無功而返,但也不是沒有收穫, 我發現:
1. 用softice在4245279處將eax
強行改為 6, 軟體就可以正常執行(要發現這點這一點, 我想, 只要知道什麼是softice就行了)
CODE:04245276
cmp eax, 9
; eax == 6, All OK!
CODE:04245279
ja loc_42454DD
; default
於是, 就改成
mov eax, 6
2. 之後, 發現slock不會跟你善罷甘休, 跳過42441f0處的patch檢查函式也不行.
週日, 承蒙lajiaolz(辣椒子? :))給了一個可用的key, 嫌自己的版本太舊, 就下了一個build 178, 糟了,
這個key被回收了.再裝回到build 176也不行了 :(
不過, 總覺得離解放它只有一步之遙了.
今天接著幹,
看看它會不會開啟bc2.exe檢查, 如果是的話, 可不可以讓它檢查原版, 而執行我們改過的版本呢?, 於是
bpx
createfilea do "d esp->4"
果然它這樣幹了. 於是將沒有改動的版本複製一個成bcx.exe
將trail.key複製成bcx.key,
並改動一下複製檔名的程式碼, 成了!
CODE:04196A20 84 C9
test
cl, cl
CODE:04196A22 74 07
jz short
locret_4196A2B
CODE:04196A24 FE CD
dec ch
CODE:04196A26 75 E8
jnz short loc_4196A10
CODE:04196A28
48
dec eax
CODE:04196A29
CODE:04196A29
loc_4196A29:
; CODE XREF: sub_41969D6+36.j
CODE:04196A29 88 28
mov
[eax], ch
CODE:04196A2B
CODE:04196A2B
locret_4196A2B:
; CODE XREF: sub_41969D6+42.j
CODE:04196A2B
; sub_41969D6+4C.j
CODE:04196A2B C3
retn
改成:
CODE:04196A20 84 C9
test
cl, cl
CODE:04196A22 74 07
jnz
short locret_4196A10
CODE:04196A24 FE CD
mov
byte ptr [eax-6], 'x' ; 將bc2.exe 改成 bcx.exe, 讓這個蠢東西去檢查原版!
CODE:04196A26
75 E8
retn
CODE:04196A28 48
dec eax
CODE:04196A29
CODE:04196A29
loc_4196A29:
; CODE XREF: sub_41969D6+36.j
CODE:04196A29 88 28
mov [eax], ch
CODE:04196A2B
CODE:04196A2B
locret_4196A2B:
;
CODE XREF: sub_41969D6+42.j
CODE:04196A2B
; sub_41969D6+4C.j
CODE:04196A2B C3
retn
這樣一以來就象被脫了殼一樣,想怎麼fuck就怎麼fuck!
已知問題:
主程式沒問題了, 絕大部分使用已經夠了, 幾個附加外掛可能還會去檢查key,
這將是我下一個目標. 應該不會太難, 我想.
覺得比較幸運, 如果在上週六之前在slock的網站上(http://www.crypto-central.com/slock/slock_feature.html)看到以下資訊的話,
我可能就被嚇的不敢去解它了.
-Extremely High Security
SLockPK uses Public Key cryptography
to ensure that your software cannot be made registered without your knowledge.
-SlockPK can increase the number of registrations that you receive from your
shareware by making it almost impossible use unregistered shareware for extended
periods.
現在看到這段話就想笑,覺得slock是一個善於吹牛,比較愚蠢的東東:)