首页
社区
课程
招聘
[分享]调戏:海森堡原理内存访问检测的梗
发表于: 2014-5-11 15:42 17193

[分享]调戏:海森堡原理内存访问检测的梗

2014-5-11 15:42
17193

名字高大上的梗,其实如果知道了具体原因就会觉得很简单。
首先说一下 海森堡原理是什么
从百度百科可以得知
http://baike.baidu.com/view/24947.htm
海森堡原理就是如果测量某个参数必然导致其他参数被改变。

那么当调试器存在时,会改变那些事情呢?
这里不得不提到一个古老的掉渣的东西就是PAGE_GUARD属性。
当任意一个内存页属性被设置上PAGE_GUARD时,
访问该页会抛出一个异常,并消除PAGE_GUARD属性。
但是如果是调试器或者其他进程使用API去访问内存的时候,
不会触发进程内部异常,而且访问后,该属性就会消失。
于是有一种奇葩的逻辑就诞生了。

实现方式:
1.设置一个异常扑捉(VEH或者HOOK)。
2.遍历指定模块的内存分布(块状分布,其实可以直接对整个模块做处理,效率都差不多)。
3.对指定模块的内存进行设置PAGE_GUARD。
4.异常中处理PAGE_GUARD异常的并做标记
5.定时检查指定模块的内存是否PAGE_GUARD属性被去除和重新设置PAGE_GUARD,
如果被去除,则判断是否正常的异常,不是则退出进程。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 4
支持
分享
最新回复 (35)
雪    币: 2913
活跃值: (3944)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
有点意思
2014-5-11 15:43
0
雪    币: 615
活跃值: (590)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
老V发贴,顶了再看,,,,,,,,,,
2014-5-11 15:44
0
雪    币: 608
活跃值: (648)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
让我想起KHOBE了
2014-5-11 15:45
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
5
继续坐等15年来指正错误。
2014-5-11 15:49
0
雪    币: 341
活跃值: (143)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
6
排排坐。。
2014-5-11 15:50
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
7
我又不是鸿老爷子,排座位有啥用?
2014-5-11 15:52
0
雪    币: 14
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这爆的好给力....
2014-5-11 15:54
0
雪    币: 341
活跃值: (143)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
9
同3楼。。。
2014-5-11 15:56
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
10
抽出小板凳来学习
2014-5-11 15:56
0
雪    币: 127
活跃值: (2803)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
前排强势插入
2014-5-11 16:01
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
http://bbs.pediy.com/showthread.php?t=76698
这是篇老文章。
我印象中好像PAGE_GUARD应该是个硬件标志,和内存dirty标志一样是硬件产生的。
2014-5-11 16:03
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
13
这篇果然够老~
2014-5-11 16:18
0
雪    币: 124
活跃值: (469)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
先收藏,顶楼主,再学习
2014-5-11 16:47
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
一种另类的海森堡原理
2014-5-11 17:49
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
16
老V最近手头又紧拉?
2014-5-11 19:26
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
17
忙里偷闲,写个帖子。
2014-5-12 02:44
0
雪    币: 246
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
我是致谢党,呵呵。
2014-5-12 07:53
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
。。。看了那么久才明白这是一个反调试的帖子..
2014-5-12 14:31
0
雪    币: 81
活跃值: (110)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
OD单步的时候其他线程都是挂起的,该看的还是能看到吧
2014-5-12 15:37
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
21
但是几分钟后挂X~
2014-5-12 19:29
0
雪    币: 272
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
问题是杀软也会注入,也会扫描。。。。。。。
2014-5-12 20:10
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
23
呵呵,你高看某些杀软的逻辑了~

白名单不扫描的~文件加载的时候已经白名单,以后内存什么的都不理会的~
2014-5-12 20:12
0
雪    币: 66
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
学习了。确实是个好方法 游戏内读内存会抛出一个异常。
2014-5-12 21:39
0
雪    币: 42
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
学习了,虽然暂时没用到,暂时做个了解吧
2014-5-12 21:47
0
游客
登录 | 注册 方可回帖
返回
//