首页
社区
课程
招聘
[求助]应用层Hook ZwCreateMutant 过滤互斥体创建 崩溃
发表于: 2017-5-26 10:05 4929

[求助]应用层Hook ZwCreateMutant 过滤互斥体创建 崩溃

2017-5-26 10:05
4929

系统是win7 X64

//函数是这样定义的
typedef NTSTATUS(NTAPI *ZWCREATEMUTANT)(
OUT PHANDLE MutantHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN BOOLEAN InitialOwner);

//这个是自己的过滤函数
NTSTATUS NTAPI MyZwCreateMutant(
OUT PHANDLE MutantHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
IN BOOLEAN InitialOwner)
{

OutputDebugStringW(L"1234567890000");   // ←这条会导致程序崩溃

return fpZwCreateMutant(MutantHandle, DesiredAccess, ObjectAttributes , InitialOwner);
}

工程是Debug工程

MyZwCreateMutant过滤函数里面什么操作也不做完全正常,有互斥体创建也能正常创建,只要加上OutputDebugStringW打印,或memcpy拷贝内存之类的操作的话 有互斥体创建马上就会导致程序崩溃


实验了HOOK几个其他函数MessageBoxW , ZwOpenProcess 不管是OutputDebugStringW和别的操作都没问题,
能正常打印和复制内存 

我使用的是MinHook进行挂钩的


[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 12848
活跃值: (9108)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
2
自己调试器跟一下呗
2017-5-26 10:15
0
雪    币: 689
活跃值: (422)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
3
你仔细考虑一下你的字符串的位置,是在你自己进程中还是在你注入的进程中,你搞清楚这个问题,其他的内存问题都会迎刃而解。PS:你的进程的0x12345678处的地址和别的进程的0x12345678是一个地址吗?
2017-5-26 11:03
0
雪    币: 149
活跃值: (2618)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
zplusplus 你仔细考虑一下你的字符串的位置,是在你自己进程中还是在你注入的进程中,你搞清楚这个问题,其他的内存问题都会迎刃而解。PS:你的进程的0x12345678处的地址和别的进程的0x12345678是一个地 ...
厉害了我的哥  这个回答满分
2017-5-26 13:48
0
雪    币: 12502
活跃值: (3048)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
现在神马hook,都是速成班,既不需要在hook前分析,也不需要在hook后调试。
2017-5-26 14:14
0
雪    币: 287
活跃值: (51)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
提供一下触发的是什么异常,以及异常前后的代码,栈内情况,栈回溯信息。。  -  没有这些信息猜是猜不出来的
2017-5-27 11:00
0
游客
登录 | 注册 方可回帖
返回
//