首页
社区
课程
招聘
[求助]关于某安全模块的窗口
发表于: 2025-9-20 08:56 1414

[求助]关于某安全模块的窗口

2025-9-20 08:56
1414

查了对应的进程是csrss.exe,据资料NtRaiseHardError可以通知内核让csrss.exe弹出警告,它也没使用哪位知道这种窗口是怎么创建的?(纯粹好奇)


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2025-9-20 08:59 被mb_wdzhnevo编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 768
活跃值: (1933)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没人知道原理吗?看来要pass patchguard hook kifastcallentry 拦截下看看了
2025-9-20 13:18
0
雪    币: 2790
活跃值: (5430)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
VMP里的检测到调试器等的提示就是这样输出的。

代码如下:
       if (tNtRaiseHardError *raise_hard_error = reinterpret_cast<tNtRaiseHardError *>(GetProcAddress(GetModuleHandle("ntdll.dll"), "NtRaiseHardError")) {
               UNICODE_STRING message_str;
               UNICODE_STRING title_str;

               InitUnicodeString(&message_str, (PWSTR)message);
               InitUnicodeString(&title_str, (PWSTR)title);

               ULONG_PTR params[4] = {
                       (ULONG_PTR)&message_str,
                       (ULONG_PTR)&title_str,
                       (
                               (ULONG)ResponseButtonOK |
                               (type == mtUnregisteredVersion ? IconWarning : IconError)
                       ),
                       INFINITE
               };

               HardErrorResponse response;
               raise_hard_error(STATUS_SERVICE_NOTIFICATION | HARDERROR_OVERRIDE_ERRORMODE, 4, 3, params, 0, &response);
       }
2025-9-22 08:17
0
雪    币: 768
活跃值: (1933)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
拍拖 VMP里的检测到调试器等的提示就是这样输出的。 代码如下: if (tNtRaiseHardError *raise_hard_error = reinterpret_cast(GetPro ...

谢谢

最后于 2025-11-11 22:44 被mb_wdzhnevo编辑 ,原因:
2025-9-22 09:24
0
雪    币: 144
活跃值: (1888)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢分享
2025-9-24 16:17
0
雪    币: 768
活跃值: (1933)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6

老了,这也要搞上半个月

2025-10-3 18:56
1
雪    币: 167
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
mb_wdzhnevo 拍拖 VMP里的检测到调试器等的提示就是这样输出的。 代码如下: if (tNtRaiseHardError *raise_ha ...
所以你pass了pg用了拦截可以看到这个弹窗的是谁调用的吗?
2025-11-11 22:27
0
雪    币: 768
活跃值: (1933)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
yazigegeda 所以你pass了pg用了拦截可以看到这个弹窗的是谁调用的吗?

可以看到,而且看到调用堆栈,其实就是3楼说的,在很隐蔽的VM里面,是需要的情况下安全模块才分配内存,写入的指令,正常情况下你是找不到的

最后于 2025-11-11 22:43 被mb_wdzhnevo编辑 ,原因:
2025-11-11 22:40
0
雪    币: 167
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
mb_wdzhnevo yazigegeda 所以你pass了pg用了拦截可以看到这个弹窗的是谁调用的吗? 可以看到,而且看到调用堆栈,其实就是3楼说的 ...
我也用了x64dbg对这个NtRaiseHardError下断,断下后堆栈窗口里面没有找到真正的调用来源,也不知道咋回事
2025-11-11 23:10
0
雪    币: 768
活跃值: (1933)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
啊你好哇123 我也用了x64dbg对这个NtRaiseHardError下断,断下后堆栈窗口里面没有找到真正的调用来源,也不知道咋回事
它的警告提示框不走ntdll,它自实现了SYSCALL指令,提醒下你,搞这个没意义
2025-11-11 23:20
0
雪    币: 167
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
mb_wdzhnevo 它的警告提示框不走ntdll,它自实现了SYSCALL指令,提醒下你,搞这个没意义

刚才试了下,我是等它这个弹窗显示出来后,内存搜索ntdll的NtRaiseHardError的操作码,搜到了确实是动态创建的,然后对搜到的syscall指令的下一条指令ret下断,可能因为我还没点掉这个弹窗的确定按钮或者右上角关闭按钮,他应该还没从内核层的调用返回回来,此时应该是阻塞的,我点掉确定或者关闭按钮后,在我下断的ret处断下了,但是仍然没有来源调用。你可以试试看

最后于 2025-11-11 23:43 被啊你好哇123编辑 ,原因:
2025-11-11 23:41
0
雪    币: 768
活跃值: (1933)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这个不是阻塞函数,调用了立即返回,还有,即便让你拿到了返回地址你也没办法做什么,里面的VM太厉害了
2025-11-11 23:45
0
雪    币: 167
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
mb_wdzhnevo 这个不是阻塞函数,调用了立即返回,还有,即便让你拿到了返回地址你也没办法做什么,里面的VM太厉害了

是阻塞的你可以试试看,我试过了好几次了咋不晓得 。    想了想是创建一个线程来执行的自然找不到完整的调用来源...


也不知道他这个vm是魔改哪个版本的vmp还是自己研发的,还是很头疼

最后于 2025-11-12 00:00 被啊你好哇123编辑 ,原因:
2025-11-11 23:58
0
游客
登录 | 注册 方可回帖
返回