“光驱”修理手记
前奏......
“没搞错吧!这不是硬件DIY,这是看雪学苑,众多CRACKER交流心得的乐园,去!”
“哎,别。我这修理的是虚拟光驱,评估版解除21天的限制,......”
“呀,失敬,失敬,欢迎,热烈欢迎”
对,今天就拿虚拟光驱2000开刀。从网上下载了一个最新版本,安装时提醒这是评估版,只允许使用21天。重启后运行mgr.exe,弹出版本信息对话框,确认后弹出虚拟光驱画面,稍候片刻,进入虚拟光驱总管窗口。
关闭mgr.exe,修改系统日期到一个月之后,运行mgr.exe,弹出过期对话框,确认后弹出订购对话框,确认后程序退出。呼出Softice,下断
bpx messageboxa
运行mgr.exe被断,按几次F12回程序代码区
:00409ED4 8D1439 lea edx, dword
ptr [ecx+edi]
:00409ED7 3BC2 cmp eax,
edx
:00409ED9 0F8696000000 jbe 00409f75
:00409EDA 8B3DE4304200 mov edi,[Kernel32!WriteProfileStringA]
:00409EE5 68F4334300 push 004333F4 ->"1"
:00409EEA 6888354300 push 00433588 ->"iDvdis
:00409EEF 6880354300 push 00433580 ->"intl"
:00409EF4 FFD7 call edi
:00409EF6 687C354300 push 0043357C ->"0"
:00409EFB 6870354300 push 00433570 ->"iMediaxDev"
:00409F00 6880354300 push 00433580 ->"intl"
:00409F05 FFD7 call edi
:00409F07 6AFF push FFFFFFFF
:00409F09 6A10 push 00000010
:00409F0B 686D1B0000 push 00001B6D
:00409F10 E839500100 call 0041EF4E <-弹出过期对话框
:00409F15 E856E8FFFF call 00408770 <-返回此处,弹出订购对话框
分析这段代码,若在:00409ED9处不跳,则往win.ini里intl小节iDvdis项和iMediaxDev项分别写入1和0,弹出过期对话框和订购对话框,退出运行。因此,在:00409ED9处必须要跳。eax,
edx的值一时也弄不清是怎么算得的,
向上看,还有十几个短跳,头都大了~!休息,休息一会儿。仔细观察,前面还有两个ret,对应
:00409C05 jz 00409C6E
和
:00409E72 jz 00409ED4
一定要跳,另外除了:00409E57 jz 00409FFFF,其它跳转似乎都不影响程序执行到:00409ED9处。而试着从:00409E57处跳到:00409FFFF处执行,好象也没什么问题。不管那么多了,把jz
00409C6E、jz 00409ED4和jbe 00409f75都改为无条件跳转即可解除日期限制”。
下一步要去掉讨厌的版本信息和虚拟光驱画面了,向下看
:0040A084 3BC6 cmp eax,
esi
:0040A086 743A je 0040A0C2
<-跳过版本信息对话框
:0040A088 8B3DE0304200 mov edi, dword ptr [004230E0]
^KERNEL32.GetProfileIntA
:0040A08E 6A00 push 00000000
:0040A090 6888354300 push 00433588 ->"iDvdis"
:0040A095 6880354300 push 00433580 ->"intl"
:0040A09A FFD7 call edi
:0040A09C 6A00 push 00000000
:0040A09E 6870354300 push 00433570 ->"iMediaxDev"
:0040A0A3 6880354300 push 00433580 ->"intl"
:0040A0A8 8BF0 mov esi,
eax
:0040A0AA FFD7 call edi
:0040A0AC 85F6 test esi,
esi
:0040A0AE 7547 jne 0040A0F7
<-iDvdis不等于0则跳,过期
:0040A0B0 83F801 cmp eax, 00000001
:0040A0B3 7542 jne 0040A0F7
<iMediaxDev不等于1则跳,过期
:0040A0B5 6AFF push FFFFFFFF
:0040A0B7 56 push
esi
:0040A0B8 68C8010000 push 000001C8
:0040A0BD E88C4E0100 call 0041EF4E <-版本信息对话框
:0040A0C2 3975E4 cmp dword ptr
[ebp-1C], esi
:0040A0C5 7471 je 0040A138
<-跳过虚拟光驱画面
由上可知,将je 0040A0C2和je 0040A138改为无条件跳转即可,或者直接把
je 0040A0C2改为jmp 0040A138。
以上修改可用hiew.exe或winhex.exe等工具,不再叙述。
更进一步,还可以打造自己的品牌,利用exescope等资源修改工具,可以隐藏“订购”菜单项,修改“关于”对话框内容为正版字样,...
需要注意的是,光驱2000过期后将拒绝重装,这是只需把win.ini里的iDvdis改为0就行了。
--### 严正声名 ###--
以上内容只能用于经验交流领域,严禁商业用途,维护正版利益!
版权所有,请保障文章的完整性!
woLONGwxd 2001-1-17
E-mail:wxdny@263.net