shark恒破解笔记6-摆脱NAG

1、打开软件后,发现是未注册,然后点击关闭按钮,会弹出窗口

shark恒破解笔记6-摆脱NAG

 

 

我们的目的就是为了能够去掉这个弹窗。

 


 

2、对这个程序进行查壳,没有什么发现

3、载入OD里面,F9运行起来,随后切换到程序主界面点击关闭按钮,照样弹窗

 

shark恒破解笔记6-摆脱NAG

 

 

 

4.此时,切换到OD中,按下F12暂停,此时OD会出现这样的画面

 

shark恒破解笔记6-摆脱NAG

 

 

 

 这时OD把程序给暂停住了

 

 

5、在OD中使用快捷键“Alt+K”,出来”调用堆栈“界面

 

shark恒破解笔记6-摆脱NAG

 

 

我们在这里分析一下调用堆栈,可以看到上面的都是系统空间的,我们在最后一行红色调用那里右键点击,选择“显示调用”

 

shark恒破解笔记6-摆脱NAG

 

 

 6、接着OD就来到了这里

 

shark恒破解笔记6-摆脱NAG

 

在 77D5082A 处按F2下断点,重新运行程序。

 

7、切换到程序,继续点击关闭按钮,这时OD会断在上一步下的断点那里

 

shark恒破解笔记6-摆脱NAG

 

 

8、随后F8单步运行,此时程序会弹窗了,点击对话框里面的“是“或”者“否”让程序能够运行下去。

shark恒破解笔记6-摆脱NAG

 

 

随后继续F8单步下去,不久就会运行到程序空间。

 

9、这时就会看到调用弹窗的那个地方

 

shark恒破解笔记6-摆脱NAG

 

 

 

观察上面的代码,看是否有jmp可以跳过这个的。但是一直找到了段首也没有发现,

shark恒破解笔记6-摆脱NAG

 

 

既然没有,那我们F8继续单步,返回到上一层的调用

 

 

10、返回到了这里

 

shark恒破解笔记6-摆脱NAG

 

4CDCE6 出的call就是是弹窗出现的call,要是能够把它跳过就相当于跳过了弹窗

 

那么就往上找jmp吧。但是还是找到段首没找到一个有用的jmp。那就只能是继续F8单步运行,返回上一层调用了
11、返回到了这里:

shark恒破解笔记6-摆脱NAG

 

上面这个call就是弹窗的call,那么想办法跳过它吧。正好在上面有一个je

总算是找到了这样一个 跳 了。在这里F2下断点,重新运行程序
12、切换到程序界面,点击关闭按钮来关闭程序,OD会停在那里

 

shark恒破解笔记6-摆脱NAG

 观察一下,发现这个跳转未实现呀。
既然je不能实现跳,那么改为jne呢?在je代码处点击空格,会弹出窗口让输入汇编代码,我们直接改为jne:

shark恒破解笔记6-摆脱NAG

 

然后F9让程序运行,会发现没有讨厌的弹窗出现了。
13、把修改过的程序复制出来,保存成新的。

 

上一篇:Python入门学习笔记( 继承)


下一篇:纯虚函数