软件版本:Absolute 1.1 Build 21017
软件功能:ASP代码编辑器
软件限制:30天过期+NAG
使用工具:W32dasm,PE Explorer,Olydbg
步骤:
开始的时候老是想去除它的时间限制。怎么样将时间改得更长。郁闷了很多天。
1、后来从程序的资源入手,先使用PE Explorer找到那个过期NAG提示的对话框所对应的编号171,换成16进制是AB
2、通过w32dasm反汇编程序找到171号对话框所对应的代码所在处是:00420C7F
3、在OlyDBG中打开程序,ctrl+g找到00420C7F处。再向上找到
00420C60 /$ 6A FF PUSH -1
在OlyDBG中可以在中间的提示框中看到:本地调用来自 00433F11
好了,我们就转到00433F11处,在此处下断。
ctrl+f2重新来过,F9运行到此处,再F8走到
00433F25 E8 A3260400 CALL Absolute.004765CD
CALL执行完后,我们就看到了那个讨厌的界面,如果你按下了Quit按钮,程序走到
00433F2A 83F8 02 CMP EAX,2
时候,我们从寄存器窗口中看到了EAX=2,从后面的代码来看,肯定就是执行00433F2F那里的退出代码了。
因此00433F2D是个关键的跳转。我们暂时将它改成:JMP SHORT Absolute.00433F37看看。
00433F2A 83F8 02 CMP EAX,1
00433F2D 74 08 JE SHORT Absolute.00433F37
00433F2F . 6A 00 PUSH 0 ; /ExitCode = 0
00433F31 . FF15 84F64900 CALL DWORD PTR DS:[<&USER32.PostQuitMess>; \PostQuitMessage
测试后发现,虽然那个NAG过期提示信息仍然存在,但你按下Quit按钮时,程序就可以用了。
对代码作一些注释:
00433F0D 8D4C24 04 LEA ECX,DWORD PTR SS:[ESP+4]
00433F11 E8 4ACDFEFF CALL Absolute.00420C60 //提取NAG对话框的一些参数信息
00433F16 8D4C24 00 LEA ECX,DWORD PTR SS:[ESP]
00433F1A C78424 3C0100>MOV DWORD PTR SS:[ESP+13C],0
00433F25 E8 A3260400 CALL Absolute.004765CD //显示对话框
00433F2A 83F8 02 CMP EAX,1 //根据用户对对话框上的几个按钮的选择来决定程序的走向
00433F2D 74 08 JE SHORT Absolute.00433F37
00433F2F . 6A 00 PUSH 0 ; /ExitCode = 0
00433F31 . FF15 84F64900 CALL DWORD PTR DS:[<&USER32.PostQuitMess>; \PostQuitMessage
00433F37 > 8D4C24 00 LEA ECX,DWORD PTR SS:[ESP]
根据提示信息,我们再作如下修改
00433F25 90 NOP
00433F26 90 NOP
00433F27 90 NOP
00433F28 90 NOP
00433F29 90 NOP
00433F2A 83F8 01 CMP EAX,1
00433F2D EB 08 JMP SHORT Absolute.00433F37
就是不显示那个对话框,并不管用户作何选择,始终跳向正确的00433F37。
第一次写这样的文章,感觉还是蛮兴奋的。毕竟这个软件我一直很喜欢用,以前找一个懂破解的朋友给我破解了一下,破解倒是破解了。就是将那个对话框改成了他的一些东西,还给我加壳了程序,感觉不爽。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)