首页
社区
课程
招聘
[原创]物理HOOK
发表于: 2012-7-8 16:04 35370

[原创]物理HOOK

2012-7-8 16:04
35370
收藏
免费 0
支持
分享
最新回复 (69)
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
26
这个就是3L,说的  SSDK HOOK技术吧?
2012-7-8 20:01
0
雪    币: 1141
活跃值: (789)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
27
我只是说了我遇到的情况
这观念应该不是完全正确的

希望有其他人可以补充一下
2012-7-8 20:01
0
雪    币: 2
活跃值: (199)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
是不是可以这样理解:

1:如果cr0保护关闭了,那就是没保护,od可以直接修改,并对所有造成影响。

2:如果cr0保护开启了,那就是有保护,不允许对代码写,但是OD又要对代码写,这时触发写入复制(COW),因为OD是attach到某进程空间的,那么OD改的就是复制的了,所以不会对其他造成影响。

可以测试一下,如8楼,如果两者改的位置是一致的,那么就是情况1,如果是情况2,那么两者修改的地址应该是不同的。。

坐等大牛
2012-7-8 20:04
0
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
29
应该像24L说的那样吧.

系统只LOAD一次, 之所以我操作能修改本体(非COW),是因为我直接.process -i processid 切换cr3 后,就可以对本体操作. 这样就会影响所有的未来的 COW.

如果是直接在要修改的进程 中断下来,直接修改物理地址,那么修改的就是 COW(引用计数)

希望哪位 大侠能指点一下.
2012-7-8 20:11
0
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
30


我猜想,应该是这样的,
上传的附件:
2012-7-8 20:35
0
雪    币: 2829
活跃值: (2633)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
31
学习了,字数补丁
2012-7-8 21:02
0
雪    币: 1040
活跃值: (1293)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
这些问题貌似很多关于系统底层的书都有介绍的吧……COW机制……
2012-7-8 21:19
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
33
内容很丰富,值得学习一下
2012-7-8 21:30
0
雪    币: 2700
活跃值: (63)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
谢谢 哥们了 养眼啊
2012-7-8 21:33
0
雪    币: 135
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
跟SSDT HOOK有什么关系?
一个是替换系统调用表 一个是修改物理内存,貌似没什么关系吧
2012-7-8 21:40
0
雪    币: 135
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
因为你没修改PTE中涉及COW的位,你是直接获取的物理内存地址进行的修改。
COW是保护虚拟内存页面的,这里指的是虚拟内存指向的数据,修改被保护的页面会触发页异常,系统再给你分配一块物理内存,把原来的内容Copy过来,修改新物理内存页面内对应的代码,然后再MAP到你修改的地址上去。这就是写时复制机制。
我不知道你想表达什么意思。COW是由PTE中相关的位项控制的,如果对某地址禁用COW,写入的数据是直接写入到物理内存的。
2012-7-8 21:48
0
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
37
为什么你们都要说"字数补丁"  "XX补丁" ???   我不理解
2012-7-8 21:49
0
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
38
我是新人,好多东西还没学呢,向前辈们学习.
2012-7-8 21:50
0
雪    币: 45
活跃值: (51)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
39
1> 一般的Dll, 重复加载的时候只是增加引用计数 -- 这个解释所有的API在不换系统不重启的时候,在不同进程是同一逻辑地址....

2> 但是, 如果你修改了Dll, 那么系统就会将修改的部分拷贝一份. 所以你在三环下挂Api钩子, 只影响本进程.(即楼上有人说的COW技术)

3> 楼主从逻辑地址, 找到了物理地址, 然后直接修改物理地址, 那么系统就不会有上述所言的"2>"的过程... 于是乎对系统造成的影响就 "跨进程"了...

楼主winDbg用得很熟练, 学习了`~~  感谢楼主分享. ~~~
2012-7-8 21:53
0
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
40
murrackde 大侠你好.

你所说的 PTE 中的 COW 位.
我不知道你说的 COW 位是在第几位?
能指点一下吗?

PTE:

31                         21  11  10   9   8   7   6   5   4   3   2   1   0
------------------------------------------------------------------------------------
      Page Base        系  统  使  用    G   P   D   A    P  P   U   R   P
                                                          A              C  W  /    /
                                                          T              D   T   S   W
2012-7-8 22:00
0
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
41
我等下录一份视频.
2012-7-8 22:09
0
雪    币: 45
活跃值: (51)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
42
.
.

太好了~
,
,
像期待米国大片一样期待 ing....
,
2012-7-8 22:12
0
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
43
宿舍的网速不给力...

物理HOOK演示视频.txt
上传的附件:
2012-7-8 23:37
0
雪    币: 45
活跃值: (51)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
44
[QUOTE=半斤八兩;1085831]宿舍的网速不给力...

物理HOOK演示视频.txt[/QUOTE]


哎 我太没眼力了.. 原来是顺哥啊....哈哈`
2012-7-10 10:26
0
雪    币: 2882
活跃值: (1279)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjd
45

这是灌水专用语句哈哈。
2012-7-10 11:04
0
雪    币: 308
活跃值: (67)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
46
Copy On Write
2012-7-10 13:07
0
雪    币: 131
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
不错的文章哦
2012-7-15 07:47
0
雪    币: 176
活跃值: (206)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
48
由于直接修改物理内存,绕过了写时拷贝的机制,达到了全局hook的效果。
2012-7-16 11:44
0
雪    币: 223
活跃值: (516)
能力值: ( LV13,RANK:520 )
在线值:
发帖
回帖
粉丝
49
想请教一下,像这样的HOOK,有没有什么术语?
2012-7-17 01:12
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
昨天刚看过dll相关内容,dll的特性之一:节省内存。就是说不管多少个进程同时使用它,他在物理内存中只加载一份,看到这里估计你就明白了吧,楼主很强大你直接找到他的物理地址修改了物理内存的数据,那么所有映射到这个物理地址的虚拟地址上的数据就全变了,物理地址和虚拟地址是1对多的关系哦!!!!
2012-8-5 11:36
0
游客
登录 | 注册 方可回帖
返回
//