18. OD-反调试研究,破解反调试,编写反调试

病毒、木马、外挂等必须要有的 “安全工作”

因为你一个安全软件一旦被成功调试了,就等同于被调戏了,一切主要操作顺序都被人掌握了,只要开发出逆向的突破即可。

我们要研究他们这些安全软件如何反调试的

比如软件发现被OD打开,直接自爆。。。

开始

 

 

第一个程序

F8运行程序

找到了弹出反调试报错的call

 F7

程序调用了 IsDebuggerPresent 函数

IsDebuggerPresent :是确定调用进程是否由用户模式的调试器调试。

修改跳转Z,将指令改为nop不让他跳转就OK了

 

第二个程序

程序在OD中运行,什么也没有

这次直接跳转到了错误的位置,我们nop跳转就OK了

 

第三个程序

遇到被调试,直接退出进程,我们也可以nop到跳转

 

第四个程序

运行 ,程序选择和你同归于尽,大家一起死

程序直接跳转到00000001 ,同样改跳转为nop

 

 

高级

探讨程序使怎么做到反调试的

F8这行指令直接就错误了,此call为win32API创建模式对话框

alt+F9也回不去用户领空了,

DialogBoxParanA的第二个参数为过程函数,就是我们自己编写要做的事

找到函数地址,下断点

call处再次报错,下图

进入call

研究反调试过程

1. CreateToolhelp32Snapshot:可以通过获取进程信息为指定的进程、进程使用的堆[HEAP]、模块[MODULE]、线程建立一个快照。(所有进程拍照),返回句柄

2. Process32First:是一个进程获取函数,当我们利用函数CreateToolhelp32Snapshot()获得当前运行进程的快照后,我们可以利用process32First函数来获得第一个进程的句柄。

3. 将进程名称和我们打开的OD进行字符串对比

4. Process32Next:是一个进程获取函数,当我们利用函数CreateToolhelp32Snapshot()获得当前运行进程的快照后,我们可以利用Process32Next函数来获得下一个进程的句柄。

5. 循环比较进程名称

6. 如果有OD就跳转退出程序,自爆。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨痕诉清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值