首页
社区
课程
招聘
[讨论]拦截DLL加载
发表于: 2014-9-17 03:30 7814

[讨论]拦截DLL加载

2014-9-17 03:30
7814
想实现拦截指定的DLL加载,不仅仅只根据文件名判断,还根据文件特征如MD5来判断.

想兼容X64,从R0该如何入手?

请大家各叙己见.

X64上 不破PG的情况下  除了那个镜像加载回调,还有其他途径么?

看MJ0011之前的一个帖子,说文件过滤驱动的 IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION 也可以拦截, 但是要实现MD5似乎有点难啊,因为算MD5很慢.而一个进程运行的时候,可能要加载几十个DLL,这样系统明显感觉卡了好多

可有其他办法?R3的话  暂不考虑吧

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION一路回滚到NtCreateSection。。。
2014-9-17 03:36
0
雪    币: 225
活跃值: (188)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
考虑性能的话,不在于在什么地方拦截,不管你在哪里拦截,都是要计算MD5,时间不会变,要不就把所有DLL的MD5提前算好,保存备用。
2014-9-17 09:41
0
雪    币: 478
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
大神一语中的啊   正式纠结于此
2014-9-17 11:01
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
这东西,脑袋多想一想,哪有那么多解决不了的问题。
比如,后台服务进程一直就在后台把所有该算的文件算一遍存下来,能算多少文件是多少;同时,有PE加载时,先查存储的数据里有没有,有的话按照存储的结果来,没有就算一遍,同时把算的结果存下来。然后本次按算的结果来。

而且,也未必就要MD5,否则真有个500MB的EXE时你会跳楼也解决不了问题了。。。。总之多用脑袋,哪有什么解决不了的
2014-9-17 11:24
0
游客
登录 | 注册 方可回帖
返回
//