.text:00498F0E call ds:GetFocus .text:00498F14 mov edx, dword_4D76B0 .text:00498F1A push eax ; hWndParent .text:00498F1B push offset aReminder ; "REMINDER" .text:00498F20 push edx ; hInstance .text:00498F21 call ds:DialogBoxParamW 可以看到,只是在执行到如下两条语句时进行跳转。 .text:00498EF7 cmp eax, 28h .text:00498EFA jg short loc_498F00 如果eax>28h,就跳转,跳转到DialogBoxParamW函数处。28h对应的十进制数是40.这个值指定的是试用期的持续天数。到此为止,变量dword_4EA428的物理含义已经十分清楚了:自从程序安装以来所过去的天数。 保护机制已经找到了。接下来做点什么呢?例如,要阻止“提示注册”窗口的出现,可以用xor eax,eax/nop(33 C0/90)替换cmp eax, 28h(83 F8 28)。这样一来,不管当前的日期是什么,eax寄存器的值总是零。加入nop指令是为了弥补指令长度(由于cmp指令占据3个字节,而xor指令只有两个字节长,指令替换后长度变短了)。 启动HIEW,加载winrar.exe,初始界面给人的感觉像是乱码,不过按两次“Enter”键之后便可以切换到汇编模式。然后,按“F5”键(到……去),指定cmp指令的地址:. 498EF7。注意,开头的句点(.)不能少,它用来告诉HIEW,这里给定的值是个地址,而不是文件之中的偏移量。按“F3”键切换到汇编编辑模式,然后按“Enter”键以指定要执行的汇编指令。接下来,会显示一个对话框。输入xor eax,eax,<回车>,nop,<回车>,按F9键将结果保存在文件之中,如下图所示,然后退出。
强行注册
|