首页
社区
课程
招聘
[求助]PChunter里边有个扫描指定进程中所有钩子的功能,原理是什么?
2016-6-1 08:18 11851

[求助]PChunter里边有个扫描指定进程中所有钩子的功能,原理是什么?

2016-6-1 08:18
11851
PChunter里边有个扫描指定进程中所有钩子的功能

原理是什么?

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

上传的附件:
收藏
免费 0
打赏
分享
最新回复 (10)
雪    币: 22
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
靴子 2016-6-1 08:28
2
0
我也想知道。
雪    币: 225
活跃值: (43)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
filly 1 2016-6-1 08:33
3
0
十年没怎么来了,发帖,回复,都不会操作了。。。。。真是老了
雪    币: 225
活跃值: (43)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
filly 1 2016-6-1 08:39
4
0
很早很早以前弄过,现在忘光光了。。。。
看样子pchunter扫描了进程中,所有相关的DLL,但是怎么分析出来这些DLL和 钩子, 消息有关呢?
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
aait 2016-6-1 08:40
5
0
你看,那里不是显示了挂钩处当前值,和挂钩处原始值吗?我推测,是不是读取原始文件,然后和内存映像进行比较,发现不同的地方,怀疑是否inline hook,然后读取不同的5个字节,进行反汇编,看看是否是jmp到其他模块的地址,然后判断是否inline hook。
雪    币: 225
活跃值: (43)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
filly 1 2016-6-1 08:47
6
0
谢谢,很有道理,挂钩处当前值和原始值,是从哪里读来的呢?
是 DLL 所在的空间里边读到的,还是从进程所对应的文件读到的?

ps,钩子的事情,现在我忘光了,还请各位具体指教啊
雪    币: 225
活跃值: (43)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
filly 1 2016-6-1 09:13
7
0
刚才用od试了一下,好像正如你所说,另外我补充一下,过程应该是:
先获取进程中所有相关的DLL,然后j将,进程中的DLL的内存值 和 原始DLL文件对应位置的值进行比较,如果出现不同,就说明此处被下钩子了,再根据被修改后的代码,其跳转的位置来判断,是inline还是其他的
雪    币: 1038
活跃值: (1216)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
StriveXjun 2016-6-1 10:27
8
0
读取原始文件的代码段和内存中的代码段比较。
雪    币: 378
活跃值: (3091)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
appview 2016-6-1 14:44
9
0
mark
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sky际 2016-11-22 21:15
10
0
请问我从OD中查看CreateProcessInternalW这个函数,显示如图,并没有所谓的jmp,也没有挂钩处原始值和当前值。那么,请问,这两个数据要怎么看?怎么才能判断这个函数是被挂钩的?
上传的附件:
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sky际 2016-11-22 22:18
11
0
我看到了数据,打开另外一个没有挂钩此函数的软件,就可以看到这里的挂钩处原始值了,对比一下,就是inline hook的挂钩改变
上传的附件:
游客
登录 | 注册 方可回帖
返回