紫水晶编程技术论坛 - 努力打造成全国最好的编程论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 30126|回复: 115

[科普]简单总结“内核重载”和BufferDriverLoader的联系与区别

  [复制链接]

851

主题

3477

帖子

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

Rank: 125Rank: 125Rank: 125Rank: 125Rank: 125

积分
37093
发表于 2017-6-29 21:53:17 | 显示全部楼层 |阅读模式
PS:本文不是什么新技术,纯粹是对一些老知识的总结。
标题里的BufferDriverLoader,就是“无需把【驱动文件】输出到磁盘,而是直接把【映像】映射到内存并执行”的意思。

共同点:
1、“内核重载”与BufferDriverLoader都是本质上都是通过“PE加载器”,把PE文件映射到内存里。都需要经过读取文件、展开对齐、修复导入表、重定位的过程。
2、都不支持SEH,如果发生异常,即使在try...catch里,也会导致直接蓝屏。

不同点:
游客,如果您要查看本帖隐藏内容请回复

还有大家最关心的一点,能否在WIN64系统上实现“内核重载”?
游客,如果您要查看本帖隐藏内容请回复

4

主题

149

帖子

0

精华

金牌会员

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1189
发表于 2017-6-29 21:55:24 | 显示全部楼层
沙发?

0

主题

11

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
95
发表于 2017-6-29 21:56:05 | 显示全部楼层
支持下。。。

1

主题

57

帖子

1

精华

贵宾会员

Rank: 2Rank: 2

积分
2075
发表于 2017-6-29 21:57:27 | 显示全部楼层
寂寞长夜学习学习

2

主题

31

帖子

1

精华

金牌会员

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1244
发表于 2017-6-29 22:04:48 | 显示全部楼层
本帖最后由 hzqst 于 2017-6-29 22:11 编辑

每次都要回帖好麻烦啊

补充一下:
1、x64是可以实现memload SEH的,只不过要调用某个非导出函数把需要seh的代码块加入内核维护的一个链表,非常不可靠所以一般不会有人用于正规项目,只能自己玩玩,具体见https://github.com/DarthTon/Blackbone/blob/master/src/BlackBoneDrv/Loader.c:BBMapWorker
2、x64下有pg,重载内核可行但没任何实际意义,只能做着玩儿。
3、如果只是为了躲过函数头的hook,完全可以复制函数头N个字节然后jmp回去原始内核,一般也没人会去函数内部下钩子吧。

评分

参与人数 1水晶币 +10 收起 理由
Tesla.Angela + 10 重载内核绕的就是CALL HOOK和未导出函数的H.

查看全部评分

0

主题

34

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
68
发表于 2017-6-29 22:11:16 | 显示全部楼层
最后的才是重点呀..呵呵!~~~

0

主题

16

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
58
发表于 2017-6-29 22:33:33 | 显示全部楼层
顶一顶.学习下哈

76

主题

267

帖子

9

精华

贵宾会员

Rank: 2Rank: 2

积分
15599
发表于 2017-6-30 00:06:38 | 显示全部楼层
路过

0

主题

49

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
137
发表于 2017-6-30 06:56:44 | 显示全部楼层
学习学习

0

主题

10

帖子

0

精华

铜牌会员

Rank: 2Rank: 2

积分
50
发表于 2017-6-30 09:14:18 | 显示全部楼层
围观
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

手机版|Archiver|紫水晶工作室 ( 粤ICP备05020336号 )

GMT+8, 2024-3-28 19:07 , Processed in 0.028549 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表