您的位置:首页 > 其它

破解教程笔记

2016-06-08 18:16 459 查看
1.[第一课]


新手为了磨炼技术,而自己摘抄了自己认为重要的知识点好和破解过程,希望大牛勿喷。



首先拿到一个要破解程序,就将其放进PEid或者exeinfope中,查看是否有壳。如上图所示,并没有壳,是用Delphi来写的。



拿到程序之后,就是要运行一下,看看是否能找到其中的突破点,如上图所示,显示一个字符串,这就是突破点所在。



将其放进OD,然后右键->中文搜索引擎->智能搜索(在智能搜索上面还有两个搜索,他们之间的区别就是编码的不同,如果不清楚他们之间的差别的,就一概使用智能搜索)



Ctrl+F 搜索想要的字符串,然后双击进入,对于的反汇编代码中。



进入到上图中的画面,我们可以看到最左边有一个>这样的右箭头,他所表达的意思就是,这里有一个跳转进入,也就是有一个判断,判断正常,就跳转到此处。我们向上寻找这个跳转。



点击一下那个右箭头,就会出现一条红色的线,最顶端就是跳转的起始地方,红色代表的是跳转实现,灰色表示的跳转没实现。

我们就可以想想,当我们输入错误时就跳转到下面输出密码错误,中间被隐藏了一段代码,说明当密码正确时就会执行被隐藏了的那段代码,我们就可以使用NOP法,直接让跳转消失,就是无论输入是正确还是错误还是没有输入,都会跳转到正确的页面中。



NOP掉



直接进入到软件的正常使用页面。

最后我们dump一下。



选中刚刚修改的内容,右键->复制到可执行文件中->选择



右键->保存文件



这就是破解后的软件。

[第三课]


以后的课,有我觉得新增的知识点才会说明,其他就直接略过。

这个软件出现了有点问题,并不能像视频中还原出来,就记一下思路好了。

首先查壳(带有ASP壳,很容易脱得一个壳,采用ESP定律就好了),不过可以直接带壳破解,放进OD,Ctrl+G(去到401000),搜索字符串,wrong,双击,向上翻,看到一个software\endypt,下断点,说明是通过查找注册表来验证用户名和对于的验证码是否正常,然后插件->API断点设置->GetStartInfoA(在程序进行初始化时断下,这为了在程序判断是否正确前就下相应的断点),然后F9,会提示说之前下的断点全都会被撤销,因为带壳,有时一次F9就可以运行解码完成,有时也需要两次,三次,怎么判断,Ctrl+B去看我们之前下的断点,形如add byte xxxxxxx的就是未解密完成,正常的汇编指令就是解码成功,解码成功之后,把之前的设置的断点激活,然后单步走,看寄存器窗口,信息面板窗口,堆栈窗口,里面会有很多我们需要的东西,比如正确的验证码。。GET!

[第5课]


首先是查壳,发现没有壳,然后就是运行程序,程序一开始就弹出一个注册窗口,随便输入一点内容,弹出错误信息



加入OD里面,然后就搜索字符串(注册),得到上图中的信息,就双击进入相对于的汇编代码中



向上找关键跳,一般在关键跳的上面一到三个CALL,其中可能有关键CALL,我们可以看到je上面是test,是判断al是否为0,如果为0,跳转就实现。



我们在刚刚那个关键CALL中设断点,然后重新加载,F9,输入内容,注册,然后就断在我们刚刚设置的断点那里,我们单步步入



如图的解释



之后单步步过,可以看到在经过test之后,跳转那条线变为灰色,表明跳转不成立,就达到我们破解的目的了。



这是按F9之后的结果,直接显示注册生效。



将刚刚修改的内容dump出来,就成了破解版了。

[第6课]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  破解 技术