第②课——快速定位关键点并爆破

vm所进行的代码级的保护是对于软件保护的最后一层

1、API断点法

如何切换到程序的代码节的位置?

》od点击e->双击xxx.exe即可

程序需要读取文本框输入的内容,所以肯定会调用GetWindowText函数,所以可以ctrl+g然后输入GetWindowText进行下断

》但是有个问题就是稍微碰一下界面它就会卡死,一直断下来,因为他会渲染,一直刷新控件(你想啊,它进行界面渲染肯定也需要知道文章才能渲染呀,那它怎么知道edit里面的文字是什么?》也是通过的getwindowstext获取的啊!!!)》所以如果标签比较少的话,我们可以给他下条件断点,也就是把这个标签窗口的句柄给他排除出去(按钮事件被其他事件干扰到)

如何解决这个问题?

下条件断点:shift+f2 》[esp+4!=0x00290642]

这样只有我们点击注册按钮才会断下程序,现在断下来的情况就是读取我们编辑框的内容了

读取注册码》判断注册码是否合法》提示窗口

》直接ctrl+f8自动步过,直到程序卡住在cal xxx(其实就是messagebox等待我们点击) 

然后我们编辑标签:对准call点击鼠标右键,修改他的标签,因为他会全部修改,所以有可能就能顺藤摸瓜往前翻一翻找到提示成功的call

如果条件断点断不下来!!!: 

od汉化版bug之一 》汉化版bug之一:换成英文原版即可

把条件断点删掉,然后在函数头部打一个断点

找到关键爆破点!!!!-> je jmp(je跳到jmp的下面)

也叫关键跳:

2、字符串搜索法

全部搜索一遍,它会自动把这些搜索到的字符串添加注释,可以对破解起到提示的作用,所以一定要养成随手搜索字符串的习惯!

但是有些时候会出现搜索不到字符串的情况出现

》od搜不到不代表其他工具搜不到,可以使用ida来进行搜索

在ida当中:view -> opensubview -> strings -> ctrl+f进行搜索,但是ida默认不支持中文搜索:右键ida属性 -> 快捷方式 -> 目标后面加上-dCULTURE=all

这样相当于给了ida一个启动的属性,就不用在命令行反复输入指令了

有些时候需要来回切换编码格式才能有效地进行逆向

ida里的交叉引用:

点击搜索到的字符串,进入如下界面,然后点击unk_480911,按下x键,进入交叉引用界面,然后直接双击进去,可以进入引用字符串的那部分函数的位置

如何保存在od当中修改后的文件?

然后点击全部复制,之后会弹出下面的这个框:

然后选中修改的区域,右键,保存文件,改成破解后xxx.exe即可

如何处理随机基址的问题?

有时候我们运行别人vs或者什么编写的软件,每次进来的时候,点击e,会发现模块的基地址会发生变化 》这是连接器干的好事,如何去除随即基址?

使用PE工具CFF:打开 》可选头 》dllcharacter 》把dll can move属性去掉 》保存,就🆗了

这样每次打开,模块就都是同一个基地址了

编写代码的时候如何规避?

3、alt+k暂停法

输入注册码,点击注册,然后点击暂停,点击K,查找函数的调用堆栈

调用堆栈怎么来的?使用微软提供的dbghelp.dll来加载调试包和打印调用堆栈

在堆栈当中push一个数据,然后是层层往上面垒的 

4、内存访问断点

在od中文搜索引擎当中搜不到的字符串,比如关键的“注册失败”,但是在内存当中不一定搜不到

点击M,查找:注册失败 

它的提示消息的旁边放的就是注册码,有些网络验证就是这样找的。

在字节开始的位置下内存访问断点 。

然后一路f8往回跟,同样能够找到关键破解位置。

5、硬件访问断点

先把刚刚的内存访问断点删除

但是点击注册,为什么没有断下来?

是因为od里面的反反调试插件导致的,od本身其实可以断下来的,让我们误以为是因为软件加了反调试的原因而走错了方向,但是其实是你自己的od本身出了问题。有的是汉化版的问题,有的是插件的问题。

换成x96dbg:

 

再下硬件访问断点:

之后顺利断下来了,证明是od的问题,而不是软件带有反调试 

所以以后遇到这种情况,也要考虑调试器的问题,一个搞不定,就换一个调试器试试

x64dbg修改后如何保存?

右键》补丁》修补文件》另存为:破解版.exe即可 

dbg版本为何要jmp到函数入口点?

》增量链接,方便以后修改

怎么找控制台程序的通用的入口点?

自动步过到停下来为止

然后f7进去,继续自动步过到停下来为止

最终我们会找到main函数(要记得先搜索字符串,这样便于确定)

od里面有时候程序会假死,还没打印字符串程序就卡死了

我们只需要点T,把所有线程恢复就好了 

自动跟踪停下来的条件?》因为程序里面写了一个scanf所以自动步过会停下来

使用自动步过来分析易语言程序,分析vm的时候也同样会用到

课后作业:

输入MessageBoxA,f2下断

好的,今天的学习就到这里了,喜欢的话多多点赞+收藏+关注哦!我们下期再见!❤❤❤

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值