首页
社区
课程
招聘
[求助]HS是如何检测OD的?求大牛指点
发表于: 2013-1-11 16:34 18281

[求助]HS是如何检测OD的?求大牛指点

2013-1-11 16:34
18281
本人菜鸟,刚入门,之前过了TP,
现在在玩泡泡堂的HS,无奈HS总是检测到OD,求大牛指点一下。

我的实验结果是:

1、运行原版OD(啥都不做):
游戏立即关闭(就是OD开的瞬间,游戏就关闭了)

2、运行OllyICE.exe(啥都不做):
游戏先NtOpenProcess我的OD.exe,再NtOpenFile我的OD目录,再NtCreateFile我的OD.exe
然后,过5分钟左右,弹出提示:
相关程序和游戏无法一起运行。(10501)
[D:\OllyICE\OllyICE.exe]

3、如果HOOK NtOpenProcess过滤掉OllyICE(修改PID,让它打开别的进程)
之后游戏会NtOpenFile我修改后的进程
最后提示:
相关程序和游戏无法一起运行。(10501)
[Undefined hacks (0x2000002b)]
(如果是过滤其他进程,则没事,说明不是过滤这个动作产生的问题)

另外,我如果关掉它的DPC定时器和系统回调,那么,我开任何程序它都不再OpenProcess和OpenFile了
XT和CE都能躲过检测,但OD开起来过几分钟还是弹出提示:
相关程序和游戏无法一起运行。(10501)
[D:\OllyICE]

从上面的实验情况,
我感觉游戏似乎还有其他方法在读OD的内存,但我不知道究竟是怎么读取的,求大牛指点!

另,我是用windbg+虚拟机进行双机调试,求教要如何下断点才能跟踪出谁在都读取OD的内存?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (33)
雪    币: 9793
活跃值: (2191)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
楼主是做外挂的吧
2013-1-11 17:12
0
雪    币: 281
活跃值: (33)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
1.把OD从eprocess中断链  别用函数操作 用FS  试试
2.看看createremotethread
3.eprocess有好几处偏移可以检测调试器    xt,ce不属于调试器 那不是躲过的检测 是游戏本身就没有检测xt,ce的代码
2013-1-11 17:35
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
4
内存特征码,文件特征码,各种扫描,总而言之,OD菊花非常大,已经无药可救~~
2013-1-11 17:37
0
雪    币: 102
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
V大!!!
V大来回答我了,受宠若惊~~
膜拜!!!
2013-1-11 18:53
0
雪    币: 102
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
OD只开着,不附加,啥都不干,就被检测。

重载内核,让OD走新内核,还是一样

应该是读取OD的内存作判断了
2013-1-11 18:56
0
雪    币: 102
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
V大,请教一下,HS除了用OpenProcess外,还用什么方法读取OD内存?KeStackAttachProcess?
我等下HOOK看看
2013-1-11 19:00
0
雪    币: 154
活跃值: (91)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
8
内存中不能出现OllyDbg...
2013-1-11 19:01
0
雪    币: 102
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
你见过连保护都过不了的做挂的??

我喜欢玩网游,也喜欢编程,后来迷上了破解技术
2013-1-11 19:04
0
雪    币: 102
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
它是通过什么方法读取我的内存的?
看能不能HOOK掉
2013-1-11 19:06
0
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
接管分页和调试机制
2013-1-11 20:42
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
RING 0 下PEB断链就可以避开HS对任何进程的Scan
2013-1-12 09:31
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
13
内存躲开之后还有文件,od目录的那个形态...ini文件内容特征码~~
唉,真的无解,菊花太大,别再挣扎直接扔掉吧~
2013-1-12 09:36
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
那V大神是用什么来查看的呢?
2013-1-12 09:50
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
15
我用ida 调试
2013-1-12 12:47
0
雪    币: 102
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢各位大牛的回答!
小菜我感激不尽!
我会继续努力学习攻破难关!
2013-1-12 17:16
0
雪    币: 281
活跃值: (33)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
检测根本不需要用内核函数  那是下策  重载没什么意义    建议多看书学基础知识吧  光过所谓游戏的保护只能学出一条路  一变化就不会了

读内存是要先找到其他进程的一个标识(句柄或者进程内部一个位置)  这是根本的思路  防被检测就是让别人枚举不出你在win内核中的相关链表 不管是文件系统链还是进程链 从而就没法继续读相关进程的内存 道理是一样的
2013-1-12 21:28
0
雪    币: 6541
活跃值: (4336)
能力值: ( LV10,RANK:163 )
在线值:
发帖
回帖
粉丝
18
  进程断链,然后把回调都被摘了菊花就不容易被爆了.
2013-1-12 22:58
0
雪    币: 217
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
果然思路才是重点。。
2013-1-13 12:02
0
雪    币: 126
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
各位大大,上面的策略,比如断链,防止获取句柄,这些都是针对某个模块/进程的特征码检测.
如果是dll注入到目标进程,目标进程直接扫描所有内存地址,搜特征码,这个该如何防止???
2013-1-13 16:54
0
雪    币: 1689
活跃值: (379)
能力值: ( LV15,RANK:440 )
在线值:
发帖
回帖
粉丝
21
可以试试静态补丁一下OD的文件,窗口类名,窗口标题名和“Ollydbg"相关的全部改成别的。OD的可执行文件名也改成别的。资源节相关的字符串也调整一下。

还有个方法我没有试过:如果不考虑插件兼容的问题,可以对OD进行VM,特征码会全乱掉地。
2013-1-13 17:00
0
雪    币: 102
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
感谢各位大大的回复!!!

目前还是没解决这个问题。
我隐藏了进程,让HS的不再用ObOpenObjectByPointer引用到我的OD
但是无奈的是,还是被查到,不知道它是用什么方法的。
2013-1-15 10:00
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
23
进程,窗体,内存,断点,等待,OD的菊花太大了,没救了
2013-1-15 10:53
0
雪    币: 1040
活跃值: (1293)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
文件的话,只要不是全盘扫描……参考小伟那个篡改系统里面记录的所有全路径和文件名伪装成系统进程怎么样……这样还能找到OD的目录么……
2013-1-15 12:05
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
25
一个GetWindow枚举就日死了~
2013-1-15 12:11
0
游客
登录 | 注册 方可回帖
返回
//