逆向教程01 – 简单的爆破

有很久没有碰过逆向了,考虑到很多教程都是基于OD调试软件教学的,而OD已经多年没有再更新过了,同时随着Windows10的普及,OD已经不太合适现在的环境了。国内基于新调试软件的逆向教程不多,所以我出了一套这样的教程,并且结合最新的x32dbg软件,希望给大家带入门,至于能不能坚持写完,全凭心情。本套教程在编写的时候,参考了shark,鱼C等作者的提供的一些教学软件,在此感谢。

1.基础知识

高级语言通过编译器,将高级语言转换为机器语言,机器语言是机器能直接识别的程序语言或指令代码,由0和1组成。在后面,有人觉得只输入0和1来执行内容,太麻烦了,于是就把机器语言翻译成了汇编语言。下面的图片中为果核截取《汇编语言》中的一段内容。

而调试软件,能把编译好的exe程序,给转换为汇编语言,方便人们查看。通过修改一些汇编的代码,来达到修改软件功能的目的。在逆向分析中,调试工具可以说是非常重要的。调试器能够跟踪一个进程的运行时状态,在逆向分析中称为动态分析工具,动态调试会用在很多方面,比如漏洞的挖掘、游戏外挂的分析、软件加密解密等方面。常用的调试软件有OllyDbg(简称OD),还有x32dbg系列软件。
使用x32dbg进行软件调试,x32dbg和x64dbg软件是同一家公司出品的调试器,根据前面的名字可以看出,这两个软件分别支持32位软件调试和64位软件调试,本套教程主要以32位教程为主。
2.教程开始
本教程不会直接讲理论,用多少讲多少。
软件在处理一个事情的时候,例如进行登录判断,判断密码正确与否,如果正确的话,将会跳转到一个功能,错误的话,将会跳转到另一个功能。
从上面的流程图上看得到,判断登录的时候,成功的话,会向下继续执行,而失败的话,会跳过成功执行的那一个拐点,跳转到登录失败后的功能。
而在调试软件里面对应的样子是这样的,看不懂没关系,看第一行代码,软件最右边写的是“je 果核逆向学习001.4011A1”,其中je为汇编命令,而“果核逆向学习001”,是软件的名字,后面的4011A1,指的是地址,这句话的意思就是如果成立,则向下走,否则就跳转到4011A1这个地址。而从图中可以看到,和上面的流程图一样,跳过了登录成功的代码。
咱们也不用管为什么白色框里面是一坨登录成功的代码。
而看到登录成功的代码里面也有一句,jmp 果核逆向学习001.4011D5 ,跳过了登录失败的代码,后面应该就是执行成功以后要做什么事了。
咱们上面已经说了这么多了,把软件打开实际来分析一下。本节课,使用一个简单的登录验证程序来进行学习。下面的程序中,输入正确的账号密码点击登录,会提示登录成功,如果账号密码不对,会提示登录失败。现在我们的情况就是不知道账号密码,来试试能不能通过破解,来登录成功。打开软件x32dbg,将软件拖入到调试工具里面。拖进去以后,软件没有设置的情况下,会停在系统入口处。软件里面有很多的东西我们不懂,不过没关系,后面咱们慢慢的学习。点击一下工具栏的右箭头,调试器会在软件入口点断点。这个时候,是真正的进入了软件的区域,下面的代码都是这个软件的汇编代码了。这个时候,我们需要定位到登录执行的那个函数那儿,如何查找呢?我们可以通过搜索字符的方式来定位代码。右键点击汇编代码区域,找到下面搜索范围->当前模块->字符串引用调试器会搜索软件里面的所有字符串引用,我们可以查找到一个“登录失败!”这个字符串,如果你找不到,可以通过下面的搜索来寻找。这个和我们之前在软件里面点击登录,弹出失败的内容一致。双击他,会带我们来到汇编代码窗口。软件会自动识别一些字符串,命令等机器码,并且会在最后一栏中给备注出来。向上看代码,可以看得到,还有一个登录成功的字样,说明很可能这一段内容就是登录成功后要执行的代码。那么继续向上看,找找是否有命令将这一块内容跳过,果然有一个命令叫做“ je 果核逆向学习001.4011A1 ”,跳过了这个登录成功的代码块。调试器给出了红色箭头帮助我们查看。说明这个跳转就是一个关键的跳转代码了,业内人士成为这一段内容为关键跳不管他怎么跳转,只要让他不跳,执行登录成功以后的代码,这就叫做爆破,也是破解中最为简单的一种,既然找到这个跳转了,我们的目的就是让他不跳转就行。在这行代码中点击右键,二进制->使用NOP填充NOP在汇编中是空指令的意思,意思就是什么都不做这个时候,上面的那一行代码已经变成了下图这样,说明我们成功修改。这个时候,点击工具栏中的左箭头符号,直接运行程序,软件就不会再被中断了,并且会启动我们调试的程序。直接点击登录,会提示我们,登录成功,看样子我们的目的已经达到了。接下里就需要把我们修改的程序给保存起来。点击左上角菜单,文件->补丁文件在弹出的窗口中,右边的窗口中,会显示我们所有的修改内容,后面又不需要修改的内容的时候,可以选择不勾选内容。现在是默认勾选的。直接点击补丁文件,会保存我们修改的程序。记得文件名要添加exe后缀,否则无法保存。保存成功后,这个软件就能独立运行了,并且内容已经被我们修改过了,任意账号密码都能登录成功。

个人建站、企业建站,域名注册、小程序、云服务器、物理主机等业务,咨询蓝队云客服微信:landui507 蓝队云官方网站:www.landui.com/?codepub

未经允许不得转载:云技术 » 逆向教程01 – 简单的爆破

赞 (0)