首页
论坛
专栏
课程

[讨论][求助]反调试问题

2019-4-13 13:48 709
Xu.

[讨论][求助]反调试问题

2019-4-13 13:48
709
对某64位程序做逆向分析,由于新手刚接触这一块出现了很多问题,不知道该从哪儿下手,现将问题汇总如下,希望大佬不惜赐教:

1、x64dbg直接附加程序,会导致程序退出
2、x64dbg采用隐藏模式附加程序,程序正常运行,但下断调试会导致程序退出
3、使用x64dbg插件ScyllaHide,将选项全部选上,下断调试会退出
4、采用CE VEH模式,可以在CE调试器里面调试。
5、使用ExeinfoPe查出VMP2.X的壳
6、使用PCHunter未发现程序做了驱动保护

该程序的反调试检测做了哪些。


[推荐]看雪企服平台,提供安全分析、定制项目开发、APP等级保护、渗透测试等安全服务!

上一主题 下一主题
最新回复 (9)
Lixinist 2019-4-13 16:41
2
0
ThreadHideFromDebugger(0x11)
白菜大哥 2019-4-13 17:12
3
0
发程序
你的香气 2019-4-13 17:20
4
0
你的程序发出来看看, 检测点应该是不少的, 你提供的信息太少了。

你的2,3 两点,估计是程序调用NtSetInformationThread设置了标志ThreadHideFromDebugger导致的。
最后于 2019-4-13 17:22 被你的香气编辑 ,原因:
Xu. 2019-4-13 17:56
5
0
我用sharpod 试了一下 ThreadHideFromDebugger  程序在调试的时候还是会崩溃掉
我不知道这么做对不对 但是看资料这个插件是支持这个反反调试的吧 不知道有没有理解上的错误


Xu. 2019-4-13 17:57
6
0
白菜大哥 发程序
程序太大了
Sprite雪碧 2019-4-13 22:21
7
0
传送门:https://bbs.pediy.com/thread-250468.htm
你的香气 2019-4-15 10:09
8
0
那你再看看程序是不是设置了UEH(UnhandlerExceptionFilter),并且还在UEH里面处理由程序主动触发的异常。
UEH在有调试器的情况下不会被调用,所以如果你的调试器忽略了这个异常,那么程序也是基本上直接就退了。

你现在可以这样测试一波,在异常分发之前(在异常发给调试器或者程序之前, 在NTDLL.dll, 找到KiUserExceptionDispather的处理流程里面)下一个断点, 然后在你的目标程序里面下断点,然后借此看看你的的断点命中之后会不会进入异常分发之前设置的这个断点, 如果断下来了, 借此看看程序在什么地方被停止了。
Xu. 2019-4-16 04:57
9
0
你的香气 那你再看看程序是不是设置了UEH(UnhandlerExceptionFilter),并且还在UEH里面处理由程序主动触发的异常。 UEH在有调试器的情况下不会被调用,所以如果你的调试器忽略了这个异 ...
按照您的方法做了一遍,程序没有在KiUserExceptionDispather这个地方断下来,然后就退出了,还有别的点可以去检测吗
你的香气 18小时前
10
0
你下的断点是硬件断点,还是软件断点?调试器设置一下不要忽略异常。看看会不会产生异常并且中断。 

程序没有在KiUserExceptionDispather断下来,有可能是你的调试器处理了这个异常,那么异常处理流程肯定不会进入到这个流程。你顺便再看看硬件断点是否是被占坑了(查看DR0~DR7的值); 可以尝试在非关键代码上面任意下一个硬件断点, 看看会不会出现程序退出。

在非常关键代码上使用int3 断点来下一个断点,看看有没有可能是程序的对函数代码等有检测。如果是API断点的话, 尝试把断点下的更深入一些, 不要在函数头下断点。

如果以上都不是的话, 那么可能还是因为这个程序设置了ThreadHideFromDebugger.
游客
登录 | 注册 方可回帖
返回