免责声明:
该教程仅为个人学习笔记,并无任何商业目的,本人所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
课件地址: https://files.cnblogs.com/files/LyShark/CrackMe_04.zip
本课将完成对一个软件的暴力破解,去弹窗,和替换一处广告位的网址。
首先来屏蔽弹窗
当软件运行后,我们点击关闭按钮时,会弹出一个弹窗,接下来将手动的去除这个弹窗内容,并实现点击关闭按钮之后程序直接关闭。
1。开搞,直接OD载入程序,运行程序,然后右键搜索,中文搜索,智能搜索即可。
2.ctrl+F按钮,输入弹窗的关键字,并进行查找。
3。双击购买后您。。。这段字符串进入到反汇编代码区域,然后在段首下断点。
4.回到程序,点击关闭按钮,程序被断下。
5.然后回到OD,按下F8单步跟踪,到je处,发现je并没有跳转,我们直接改成jmp 也就是无条件跳转,来跳过这个弹窗。
6.直接保存文件,运行后按下关闭按钮看看。发现弹窗已经被去掉了,其实这里有很多种破解方法,搜索字符串是最简单,也是最好使的。
接着替换一个网址
如下图,当我们点击下方的广告位的时候,会弹出一个作者的主页,这里我们把他替换成我们自己的页面。
1.OD载入并运行,选择中文搜索,智能搜索,搜索内容为www.engworld.com.cn,不要加http否则搜索不到。
2.直接双击字符串,来到反汇编窗口,可看到是调用的ShellExecuteA函数,如果程序字符串无法搜索到的话,也可以下一个ShellExecuteA断点来到达这个位置。
3.直接右键,数据窗口中跟随,立即数。
4.数据窗口中,选中这一段网址,二进制-.> 二进制编辑
5.改写成自己的网址,注意大小和后面的00,如果你的网址过大,那么需要找一个空旷的位置填充,直接push那个空旷地址的首部。
6.直接保存文件,测试点击效果即可。这里需要注意的是,应该要选择保存,全部复制而不是复制。
如上,这个程序中还有其他的一些位置可以替换,你也可以试着练习一下,试试其他位置的网站能否被替换,练习练习。
最后直接爆破程序
这个程序是一个典型的重启验证,也就是当我们输入了注册密,不论正确还是错误都会重启,重启后可能会读取注册表中的参数来判断是否被注册了,这个程序也有很多中破解思路,这里我们就用最简单的方法来搞,字符串搜索法。
1.直接开搞,OD载入搜索【注册】这两字符串,这里精简些搜索,会搜索到意想不到的结果的呢,如下还能看到注册表键 Software/fyengydt ,说明我们的猜测没错,他就是通过注册表验证的,不过这里和我们关系不大,因为我们这里直接爆破,暂时不寻码。
2.双击注册完成提示,进入反汇编窗口中,二话不说【ctrl + A】分析代码,让左面出现线条。
3.在当前位置,向上托,到达段首位置,直接下一个【F2】断点,然后让程序运行起来。
4.点击购买,输入假的用户名和注册码,然后点击注册验证,发现程序再一次假死了,说明我们的断点下对了,接下来应该就是验证用户是否合法的代码片段了。
5.第三个call应该是注册表的相关操作,下面的环节就是验证我们密钥是否合法的地方了,如果合法则写入注册表表项,由此我们推测程序在重启时会验证一次用户是否注册过,这里我们不寻码,还是再找找有啥可利用的字符串把。
6.往下翻,找到了一个本软件已注册给,说明这里已经完成了验证,我们点进去看看。
7.现在段首下一个断点,运行程序
8.程序断下,【F8】单步跟踪看看。
9.发现jnz实现了,跳过了注册成功,我们直接nop掉,nop的意思就是什么也不做。
10.
11.保存
12.
这样的破解方式,意义并不大,因为这只是一处需要破解的地方,如果程序中存在多处,我们必须把每一处的判断全部改掉,有些程序在每一个环节都会验证程序的合法性,那么这样的话我们就需要修改每一个地方的跳转,这样的工作量实在太大了,接下来我们将通过修改关键call的返回值实现软件的破解。