首页
社区
课程
招聘
[求助]反断点问题
发表于: 2007-10-15 10:34 6897

[求助]反断点问题

2007-10-15 10:34
6897
不管下软件,硬件,内存断点都会被检测到,马上终止程序,请教各位前辈要怎么对付这样的问题

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
小菜也回一贴

可能不是断点的问题吧,查查代段执行时间

内存断点可以通过判断内存块的属性检测
f2断点,是更改指令,这个一般是通过内存hash值较验
硬件断点,可以通过SEH的回调涵数中检测
2007-10-15 15:05
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我不知道要怎么做,比如你说的 判断内存块的属性检测;SEH的回调涵数中检测
能跟我说说吗
2007-10-15 15:10
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
是不是没有隐藏好调试器??
或者试试不要在api函数入口下断点
2007-10-15 15:55
0
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
5
对,就不信他哪里都有刺儿
2007-10-15 16:46
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
调试器隐藏好了的,没在API函数入口处下断点也一样
特别是下内存断点,一下就终止哦
2007-10-16 11:29
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
俺也碰到过,就是没办法解决,玩了几天,头都大了,唉,真想放弃,又有点舍不得.望高手指教一二.
2007-10-19 20:29
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
说明软件还是读到你的调试器了。
2007-10-20 07:32
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
经过9天的时间,终于知道了一点,就是自己太菜,现在想想像这样的问题高手只会一笑而过
只怪我自己基础太差啊,这种问题看似是在反断点,其实并不一定啊,今天总算找到真正原因
原来程序并没有做反断点保护,而是Themida 在作怪
2007-10-24 11:09
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
10
themida,现在有较新的od,专门为了themida壳更新的!呵呵`
2007-10-24 11:44
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
如果真是断点保护,不要忘了回顾下断点原理:

1、普通断点原理

   F2下断等效于bpx,他是在所执行的的代码的当前地址的一个字节修改为CC(int3)
   当程序运行到int3的时候就会产生一个异常,而这个异常将交给OD处理
   把这个异常的regEIP-1以后就正好停在了需要的中断的地方(这个根据系统不同而不同)
   同时OD在把上面的int3修改回原来的代码

2、硬件断点原理

在寄存器中,有这么一些寄存器,它们用于调试。
人们把他们称为调试寄存器,调试寄存器一共有8个名字分别从Dr0-Dr7

        Dr0-Dr3用于存放欲设置断点的线性地址。
        Dr4和Dr5保留
        Dr6保存了调试状态
        Dr7是调试控制寄存器
    Dr6,Dr7这两个寄存器的作用是用来记录你在Dr0-Dr3中下断的地址的属性
    如:对地址401000是硬件读、写、执行,是对字、字节、双字

3、内存断点原理

1.将设置的内存断点的地址记录下来
2.对这个地址的内存页面修改其属性
    如果是内存写断点,就修改为RE(可读,可执行)
    如果是内存访问断点,就修改为NO ACCESS(不可访问)
3.只要访问到这个页面就会产生相应的异常,然后由OD来判断是否与记录的断点一致,从而是否中断下来
2007-10-24 11:49
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
请问在哪下载呢?能否给个Link
2007-10-24 11:51
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
13
在EXITPROCESS下断,堆栈跟踪找出反调试的函数。多线程保护的,用排除法,用ICESWORD或者自己写工具,通过终止部分线程观察究竟是哪个线程出的问题
2007-10-24 14:37
0
游客
登录 | 注册 方可回帖
返回
//