首页
社区
课程
招聘
[求助]想实现注册表的重定位,具体操作时能通过对Object的名字的进行修改实现吗
发表于: 2017-10-23 10:15 3119

[求助]想实现注册表的重定位,具体操作时能通过对Object的名字的进行修改实现吗

2017-10-23 10:15
3119
用CmRegisterCallbackEx注册的回调函数。
如 RegNtPreDeleteKey 操作中.能不能通过直接改变第一个Object的Name实现呢,网上只找到了ObQueryNameString得到的好像是一个name的copy,有没有办法直接得到Name的指针进行替换呢,搜了大半天也没搜到Object具体的结构体,ntifs.h中也没找到太多有用的信息。

假如能的话,原来的buffer如果不够大,释放替换成自己的buffer时又应该注意哪些细节呢。
如果不能的话,又应该从哪里进行拦截呢。

一开始想的是直接拦截open和create替换掉completeName 但是这样直接打开root操作就相当于直接copy了一个注册表代价太大了,所以想通过拦截具体的注册表操作来实现,但是具体操作的时候不知道该怎么替换了,有点尴尬。
typedef struct _REG_DELETE_KEY_INFORMATION {
  PVOID Object;
  PVOID CallContext;
  PVOID ObjectContext;
  PVOID Reserved;
} REG_DELETE_KEY_INFORMATION, *PREG_DELETE_KEY_INFORMATION;

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 12
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己分配一块buffer,替换下指针,修正下Size?
2017-10-23 14:18
0
雪    币: 203
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
MaMy 自己分配一块buffer,替换下指针,修正下Size?
那原来的buf要怎么释放呢,直接ExFreePool不会出什么问题吗。不过我现在连Object中Name的Offset都没找到,现在想直接直接构造个Object替换了试试
2017-10-23 15:24
0
雪    币: 407
活跃值: (1821)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
fior [em_10]那原来的buf要怎么释放呢,直接ExFreePool不会出什么问题吗。[em_33]不过我现在连Object中Name的Offset都没找到,现在想直接直接构造个Object替换了试试[ ...
搞完了再把指针换回去,不然露馅了
2017-10-23 18:30
0
雪    币: 62
活跃值: (72)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
自己调用ZwCreateKey,然后返回自己的句柄咯
2017-11-2 16:02
0
游客
登录 | 注册 方可回帖
返回
//