实战处理退出按桩

传送门:https://www.lanzous.com/i5btfmh
首先运行程序,直接打不开,是因为程序启动时会判断试用是否到期,如果到期,则启动窗口销毁。所以就运行不了了。
用peid查壳,没有壳,显示是c++编写的。
在这里插入图片描述
接下来就是直接放进OD里处理退出按桩。

点击 插件-3.API断点设置工具-常用断点设置。
在这里插入图片描述
点击常用断点,在“程序退出”前打勾,点击下方确定。这样就成功设置断点。
在这里插入图片描述
然后运行程序,程序在下断处停止。观察堆栈窗口,在调用函数附近最近的一个“返回到”,右键-在反汇编窗口跟随,来到调用退出函数的地址。
在这里插入图片描述
在反汇编窗口处,调用退出call语句的上面有一个跳转。在此下断点,运行,可以看出,程序会运行这个call然后退出,我们要处理退出按桩,就要把jle改为jmp,让它无条件跳过退出call。修改后保存。
在这里插入图片描述
运行程序,等待一会之后程序还是退出,说明还有按桩。放进OD里,步骤还是 插件-API断点设置工具-常用断点设置-常用断点-ExitProcess(程序退出)。
在这里插入图片描述
设置完断点后,运行程序,在堆栈窗口,最近的一个“返回到”右键-反汇编窗口跟随。
在这里插入图片描述
这个退出call前没有跳转语句,这时我们选择retn大法,把段首语句改为retn 0x8,注意必须要与最后的retn 0x8一样,保持堆栈平衡。修改后保存。
在这里插入图片描述
运行程序后还是会退出,说明还是有按桩。放进OD里,步骤与上面一样。来到调用call的地址。
在这里插入图片描述
这个call上还是没有跳转语句,我们选择在段首retn。修改后保存。
在这里插入图片描述
再运行程序,不再退出,这时退出按桩已经全部清除。
这个开始跳出的消息框很烦,我们来把他去掉。
在这里插入图片描述
放进OD里,右键中文搜索引擎,智能搜索,右键搜索关键字“声明”。点击到相应地址。
在这里插入图片描述
在关键字的下面有个call,把这个call修改为nop,把弹出消息框的函数弄没。保存修改,再运行程序就没有消息框了。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值