用过ACDSee的朋友,可能也知道同一公司出品的Picaview.
今天从ACD公司的主页下载了Picaview 1.32,是个60天试用版本. 下面是破解过程,用时大约30分钟.
1. Picaview.dll是用aspack1.084压过的,所以先用unaspack脱壳(我用版本的是1.0.5.0),OK! 感谢毕卫国先生. :)
2. 用W32dasm反汇编picaview.dll.
3. 在Picaview菜单上大家可以见到"Purchase PicaView..."的字样,寻找它.
4. 见到下面的代码
* Reference To: USER32.InsertMenuA, Ord:0174h
|
:10001160 8B3DD8C40910 mov edi, dword
ptr [1009C4D8]
:10001166 55
push ebp
:10001167 8BAC2418020000 mov ebp, dword ptr
[esp+00000218]
:1000116E 8D4E01
lea ecx, dword ptr [esi+01]
:10001171 6A00
push 00000000
:10001173 8BC3
mov eax, ebx
:10001175 51
push ecx
:10001176 68000C0000 push 00000C00
:1000117B 50
push eax
:1000117C 55
push ebp
:1000117D 43
inc ebx
:1000117E FFD7
call edi
:10001180 B908A10B10 mov ecx,
100BA108
:10001185 E8B6870100 call 10019940
<- ???
:1000118A 85C0
test eax, eax
:1000118C 752B
jne 100011B9 <- 如果eax不等于0, hehe
:1000118E 8B0D5CA20B10 mov ecx, dword
ptr [100BA25C]
:10001194 8D442454 lea
eax, dword ptr [esp+54]
:10001198 6A64
push 00000064
:1000119A 50
push eax
* Possible Reference to String Resource ID=00040: "Purchase PicaView..."
|
:1000119B 6A28
push 00000028 <- 我们在这
:1000119D 51
push ecx
5. 仔细看看那个可疑的CALL,调用的地方有多处
* Referenced by a CALL at Addresses:
|:10001108 , :10001185 , :10002135 , :100022A8 , :100076FB
|:100385EE
|
:10019940 33C0
xor eax, eax
:10019942 C3
ret
6. 挨个看一看,都是哪些地方调用这个CALL,又会发现下面这段代码
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10002291(C)
|
:100022A3 B908A10B10 mov ecx,
100BA108
:100022A8 E893760100 call 10019940
<-这里
:100022AD 85C0
test eax, eax <-若eax不为0
:100022AF 0F85BD000000 jne 10002372
<-跳过过期检查
:100022B5 55
push ebp
:100022B6 B908A10B10 mov ecx,
100BA108
:100022BB E8D02C0800 call 10084F90
* Reference To: USER32.GetDlgItemTextA, Ord:0104h
|
:100022C0 8B2D70C40910 mov ebp, dword
ptr [1009C470]
:100022C6 8BF8
mov edi, eax
:100022C8 85FF
test edi, edi
:100022CA 7F21
jg 100022ED <-未过期,跳走
:100022CC 8B155CA20B10 mov edx, dword
ptr [100BA25C]<-否则
:100022D2 8D8C2498000000 lea ecx, dword ptr
[esp+00000098]
:100022D9 6896000000 push 00000096
:100022DE 51
push ecx
* Possible Reference to String Resource ID=00209: "Your evaluation period is
over.
Please register this softwar"
|
:100022DF 68D1000000 push 000000D1
:100022E4 52
push edx
7. 打补丁,将xor eax, eax改成mov al,01.
8. 再试试看,高兴了吧. :)
9. 程序的时间标志在注册表HKLM\software\acd systems\picaview项.你要程序显示你的大名,也请自己动手吧.
- 标 题:PicaView 1.32破解实战 (3千字)
- 作 者:冰毒
- 时 间:2000-3-3 22:02:41
- 链 接:http://bbs.pediy.com