如何去除时间限制和警示窗_舍得_新浪博客
注:这段时间可以说对于xx学习陷入到了一种举步维艰的程度,今天在搜索相关xx文章的时候突然发现了这篇文章,看了以后,对自己的xx学习又充满了斗志。同时,在观看的过程中,也有一种深深的体会,那就是软件作者既然想开发软件,还不想走绿色软件之路,那么你所谓的保护就不要太过于简单或集中,否则的话,很容易你的保护就全部化为泡影了。一个好的编程思想还是很重要的,切记不可太过于偷懒。本来我想下载这个软件亲自来试一试的,但发现文章所给的链接已经不存在了,这多少有些遗憾,毕竟缺少实战的机会了,但我相信这篇文章也必将给我们的xx之路提供一个清晰的思路。

名称 :- EyeCU v1.1 

下载 :- ;

保护 :- 使用时有警告窗和十分钟的限时

工具 :- SoftICE, WDasm89,  一种十六进制编辑器  

DLL VB6 dll

...

( 这里省略了作者一段废话)

...


准备工作

首先{dy}件事是运行 EyeCU v1.1  ,出现{dy}画面是告诉我们 'THIS IS NOT REGISTERED'  ,还有告诉我们使用这个“优秀”程序多少时间(实际上每次 10 分钟),按 OK 你进入工作界面,面对的是标量栏上丑陋的 'UNREGISTERED'  

 

我通常{dy}件事是看 'ABOUT' 对话框,因此点 'HELP'  然后  'ABOUT', 再次出现在你面前是未登记的告示。这个 'UNREGISTERED' 太讨厌了,让我们干掉它。我们现在面对的三种情况:刚运行的警示窗( NAG BOX ),时间限制, ABOUT 对话框。该怎么办呢?用  bpx MessageBoxA  拦截 NAG BOX 不能中断,这是因为这是 'Visual Basic' 程序。

 

如令用以前的方法拦截是靠不住了,这是 VB 程序,那是 VB5 还是 VB6 呢?你用十六进制工具打开文件,看偏移地址: 240h 。你将看到 DLL 名称。结果这是 VB6 程序。

你必须能在 VB6 dll 内设断,因此将 MSVBVM60.DLL 加入到你的 WINICE.DAT 中去。

 

exp=c:\\system\msvbvm60.dll

;exp=c:\\system\msvbvm50.dll  这行前有分号不被装载

(注:再次声明一点,不要两者同时装载,可参考本课{dy}节)

你重新启动后,即可在 VB dll 中设断点了。你可用 W32Dasm 装载程序,你可在 'IMPORT FUNCTIONS' 部分发现相关的 MSVBVM60.DLL 内部函数,它们一般在代码的开端处。

 

开始 crack

Ok, 首先我们需知道以什么函数设断点,以前我说过{dy}目标是告诉我们 'NOT REGISTERED' 的警示窗( NAG BOX ),此时你用  W32Dasm  观察会发现 VB dll 中的函数类似 API 函数,寻找怀疑的函数,通常你可从它们的函数名能了解其功能。

 

为了节省时间,我将告诉你们在这一步需要些什么函数,在这里仅仅很少几个函数看起来有用, rtcMsgBox 函数比较可能。现在我们进入 SOFTICE ,下命令:

bpx rtcMsgBox [RETURN] 

 

你己xx了 rtcMsgBox 函数

下一步,按 CTRL+D 退出 SOFTICE ,用 SOFTICE LOAD 功能装载目标软件, he ,我们很快中断,按 F11 允许  rtcMsgBox 函数工作, NAG BOX  窗口将出现,按 Ok,SOFTICE 马上拦截,你看到:

 

          

:00462180 CALL DWORD PTR [0040109C]    <------- Call  NAG BOX 窗口 .

:00462186 LEA EAX, DWORD PTR [EBP-24]  <-------  在你按 F11 后将来到这 .

:00462189 LEA ECX, DWORD PTR [EBP-20]

:0046218C PUSH EAX

我们现在知道 NAG BOX 地址了,我们现在xx  rtcMsgBox 断点,因为我们己找到所要的了,用下面命令xx:

 

bc* [RETURN] 

 

现在我们设 NAG BOX 断点,你可用鼠标双击那一行,或键入:

 

bpx 462180 [RETURN] 

多做些笔记是个好习惯,我们把 NAG 处地址记下。我们开始跟踪,我们知道程序一定有个地方检测是注册版还是共享版。

 

不管怎样,一个方法是向上(用向上光标键)寻找条件指令 jump (jnz or jz  .) ,看哪个刚好跳过 NAG BOX. 你不需走太远,就会看到:

 

:004620C2 CALL 00461450    <-----------  程序检测是否注册版 .

:004620C7 TEST AX, AX      <-----------  测试 AX 判断是否注册 .

:004620CA JNZ 00462207     <-----------  如没注册跳走 .

 

代码 004620CA JNZ 00462207  处可使我们摆脱 NAG BOX ,这里是我们需修改的,但是时间保护仍存在。如果我们修改代码:把 :004620CA 一行改为:

[JZ 00462207]

 

NAG BOX 将不会出现,它也能去除标量栏的 UNREGISTERED  ,但你还能在 ABOUT 菜单处看到 UNREGISTERED 。所以还没xx crack

 

如果你们观察 [:004620C2 CALL 00461450] 这个 CALL, 会发现它是判断我们是注册者还是未注册,由于程序作者懒惰,它所有的保护都是用这个 CALL 判断。好,我们从此下手,键入 ...

 

bpx 4620C2 [RETURN] 

 

我们现在重新运行程序, SOFTICE 会在这个 CALL 中断,这时你按 F8 跟进去 ...

 

:00461450 PUSH EBP  <-----------  进去后将在这里 .

:00461451 MOV EBP, ESP

:00461453 SUB ESP, 00000008

:00461456 PUSH 00402026

 

我们现在在其“保护核心处”,该软件以后还要检测这个 CALL 以判断是否注册。因此我们在

 

[:00461450 PUSH EBP]  设断

 

现在我们按 F11 将来到:

 

:004620C2 CALL 00461450    <-----------  程序检测是否注册版 .

:004620C7 TEST AX, AX      <-----------  测试 AX 判断是否注册 .

:004620CA JNZ 00462207     <-----------  如没注册跳走 .

 

现在我们要在这部分打补丁,上面己讨论过了, :004620CA  改成 [JZ 00462207] 将路过 NAG BOX, 如何改呢?

首先下命令: code on (此命令是显示程序的十六进制代码)(译者注:这里改的不是 VB dll ,而是软件本身代码, VB dll 不能乱改,不然会死机的)

 

:004620C2 E889F3FFFF   CALL 00461450

:004620C7 6685C0       TEST AX, AX

:004620CA 0F8537010000 JNZ 00462207

 

我们来分析一下上面代码:{dy}柱是内存地址;第二柱是程序的本身代码;第三柱是程序汇编指令。

如果你的 SOFTICE 没看到第二柱数字,请用命令: code on 。我们现在将要修补 :

004620CA 0F8537010000 JNZ 00462207

请写下第二柱程序操作码, 66,85,C0,0F,85,37,01,00,00  请尽量多记些操作码,以便在十六进制编辑器中能找到{wy}处,不然太简单,一程序中可能会有重复,你就不能准确定位了。

 

现在按 F10 来到时这一行: [:004620CA JNZ 00462207]

在这一行下命令 A, (此命令是反汇编)

然后键入: JZ 462207 ,回车两次

这时你己改好指令了,此时把改好的操行码记下来:

 

0F,85,37,01,00,00,66,89,1D,40,50,46,00 <---  原“操作码” .

0F,84,37,01,00,00,66,89,1D,40,50,46,00 <---  我们新的“操作码” .

 

你看到实际只是变动一小部分 [0F,85,37  变成  0F,84,37] ,而正是这小改动xx了 NAG BOX,Ok 你将两行代码记在纸上,过会用。——(补丁 NAG 去除)

 

我们现将进行下一步,按 CTRL+D 退出 SOFTICE ,现在还有个地方存在 UNREGISTERED  ,那就是“ ABOUT ”窗口,按“ HELP ”“ ABOUT ”这时 SOFTICE 中断。我们将看到以来到刚才的保护核心处。

 

F11 离开此处,你将来到 ...

 

:0045DC0E E83D380000    CALL 00461450 <---  肥大的保护检测中心 .

:0045DC13 6685C0        TEST AX, AX   <---  我们是好人 ?.

:0045DC16 0F85C3000000  JNZ 0045DCDF  <--- YES  !.

 

这次我们要改 :0045DC16 JNZ 0045DCDF ,成 [JZ 0045DCDF]  ,重复上面的工作,把改动的操作码记下来。

———— ( 补丁 About Box REG). 

 

啊,我们差不多完成打猎了,我听到有人大喊:“我们还没有移去 10 分钟的限制呢”。好,你们做那里等大约 60 ...SOFTICE 将再次中断,爽啊,按 F11 将来到 ....

 

:0044E9EA E8612A0100    CALL 00461450 <---  保护检测中心

:0044E9EF 663DFFFF      CMP AX, FFFF  <--- 我们是好人? .

:0044E9F3 7546          JNZ 0044EA3B  <---  如是坏人,就跳 .

 

我们这次打猎结束,我捕猎了所有的保护限制,现在我们需要做重复工作记下操作码 ...

 

75,46,66,A3,40,50 <--- 原操作码 .

74,46,66,A3,40,50 <---  改后操作码 . ————(补丁三)

 

 

开始修补程序

 

1 、用你常用的十六进制编辑器打开主程序;

2 、在菜单“ FIND ”打开查找框(确信你选中是 HEX 而不是 ASCII );

3 、键入{dy}个原操作码(补丁 1 );

4 、按 find (查找),它将找到你指定的操作码;

5 、把原操作码改成 crack 过的操作码。

6 、重复工作完成所有改动;

7 、存盘,运行,你完成所有的 crack 工作。

 

有许多方法能对付这类保护方式,本文这种方法需花费较多时间,走较长的路线,但是不需了解程序的核心判断是如何工作的。

 

 

作者: SHEEP14  SHEEP140@MAILCITY.COM 

已投稿到:
郑重声明:资讯 【如何去除时间限制和警示窗_舍得_新浪博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——