首页
社区
课程
招聘
[求助]Inline hook OpenProcess蓝屏
发表于: 2016-3-30 21:30 15980

[求助]Inline hook OpenProcess蓝屏

2016-3-30 21:30
15980
NTSTATUS __declspec(naked) (__stdcall  MNtOpenProcess)(
        OUT PHANDLE ProcessHandle,
        IN ACCESS_MASK DesiredAccess,
        IN POBJECT_ATTRIBUTES ObjectAttributes,
        IN PCLIENT_ID ClientId OPTIONAL
        )
{
        __asm
        {
                int 3
        }
        NTSTATUS ns;
        UNICODE_STRING calc,xt;
        RtlInitUnicodeString(&calc,L"calc.exe");
        BOOLEAN ObjectNamePresent;
        xt=*(ObjectAttributes->ObjectName);

        if (&xt==NULL)
        {

                        if (RtlCompareUnicodeString(&xt,&calc,FALSE)==0)
                {
                        ProcessHandle=NULL;
                        dprintf("go to ObjectName \n");
                        ns=STATUS_UNSUCCESSFUL;
                        __asm
                        {
                                retn 0x10
                        }
               
                }
        }
__asm
        {
                push 0x0c4
                mov ebx,OldNtOpenProcess
        add ebx,5
                jmp ebx
        }

}
为什么每次都蓝屏。请高手赐教

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

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 2291
活跃值: (938)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
先不谈hook不hook。楼主最基本的C语言知识都没到位啊。
UNICODE_STRING calc,xt;
...
if (&xt==NULL)
你觉得这个if什么时候会成立呢?

至于蓝屏,你这样写xt=*(ObjectAttributes->ObjectName);不蓝才怪。
2016-3-30 22:18
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
NTSTATUS __declspec(naked) (__stdcall  MNtOpenProcess)(
  OUT PHANDLE ProcessHandle,
  IN ACCESS_MASK DesiredAccess,
  IN POBJECT_ATTRIBUTES ObjectAttributes,
  IN PCLIENT_ID ClientId OPTIONAL
  )
{
  __asm
  {
    int 3
  }
  NTSTATUS ns;
  UNICODE_STRING calc,xt;
  RtlInitUnicodeString(&calc,L"calc.exe");
  BOOLEAN ObjectNamePresent;
  

  if (ObjectAttributes->ObjectName==NULL)
  {

      if (RtlCompareUnicodeString(ObjectAttributes->ObjectName,&calc,FALSE)==0)
    {
      ProcessHandle=NULL;
      dprintf("go to ObjectName \n");
      ns=STATUS_UNSUCCESSFUL;
      __asm
      {
        retn 0x10
      }
   
    }
  }
__asm
  {
    push 0x0c4
    mov ebx,OldNtOpenProcess
        add ebx,5
    jmp ebx
  }

}
一样蓝屏 ObjectAttributes->ObjectName 在这里一直过不去
ObjectAttributes->ObjectName  这里不管如何处理都在里出问题
2016-3-30 22:28
0
雪    币: 608
活跃值: (648)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
我就奇了怪了,你都判断ObjectAttributes->ObjectName为NULL了你还要去执行RtlCompareUnicodeString(ObjectAttributes->ObjectName,&calc,FALSE)这句代码,不是自己扇自己脸么
2016-3-30 22:47
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
写错 (ObjectAttributes->ObjectName!=NULL) 但是同样蓝屏,就一直在遍历
2016-3-30 22:51
0
雪    币: 267
活跃值: (438)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
6
这楼主,我也是醉了!R3 下的HOOK 我看都HOOK 不好,直接上R0的,蓝个够吧!劝你先基础扫盲一下。
2016-3-30 23:13
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
您会请指教不会请让道谢谢
2016-3-30 23:15
0
雪    币: 608
活跃值: (648)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
我就想问 你确认ObjectAttributes不是无效指针?你确认ObjectAttributes不是NULL?
NtOpenProcess传入的参数是CLIENT_ID。
2016-3-30 23:24
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我通过 ClientId->UniqueProcess 对比一样是蓝屏啊,都是卡在ClientId->UniqueProcess这里
2016-3-30 23:29
0
雪    币: 608
活跃值: (648)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
你对比的是什么?是PID还是进程名?
2016-3-30 23:48
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
进程名啊
2016-3-30 23:53
0
雪    币: 608
活跃值: (648)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
PID是个HANDLE 整个NtOpenProcess函数调用过程根本不存在进程名信息

就你这基础,好好补补吧
2016-3-31 01:22
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
NTSTATUS __declspec(naked) (__stdcall  MNtOpenProcess)(
  OUT PHANDLE ProcessHandle,
  IN ACCESS_MASK DesiredAccess,
  IN POBJECT_ATTRIBUTES ObjectAttributes,
  IN PCLIENT_ID ClientId OPTIONAL
  )
ObjectAttributes 这个结构就有进程名信息,不懂不要**,最讨厌了,用汇编就不蓝屏了
2016-3-31 11:09
0
雪    币: 608
活跃值: (648)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
  那你慢慢调
2016-3-31 11:56
0
雪    币: 144
活跃值: (30)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
15
就你这态度,也是醉了,
2016-3-31 16:01
0
雪    币: 4560
活跃值: (1002)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
我就路过看看
2016-3-31 16:38
0
雪    币: 1155
活跃值: (4247)
能力值: ( LV5,RANK:69 )
在线值:
发帖
回帖
粉丝
17
路过学习了
2016-3-31 18:48
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
结贴了,我找出原因了。
2016-3-31 19:59
0
游客
登录 | 注册 方可回帖
返回
//