首页
社区
课程
招聘
未解决 R3跳过NTDLL调用内核函数参数问题
发表于: 2020-9-6 14:59 3766

未解决 R3跳过NTDLL调用内核函数参数问题

2020-9-6 14:59
3766

系统是64位  在x32进程里hook ntdll!NtOpenProcess 然后转到自己驱动里  调用NtOpenProcess 参数是怎么转换的  ,试了几次无法调用成功




驱动层

         case IOCTL_NtOpenProcess:
        {
            DBG_LOG_DEBUG("IOCTL_NtOpenProcess 被调用");
            PAEAM_NtOpenProcess *ioBuffer = (PAEAM_NtOpenProcess *)pIoBuffer;
             if (ioBuffer == NULL)
            {
                status = STATUS_INVALID_PARAMETER;
                 DBG_LOG_DEBUG("IOCTL_NtOpenProcess 被调用 失败了");
            }
            else
            {
               status = ddk::myNtOpenProcess(ioBuffer->ProcessHandle,ioBuffer->DesiredAccess,ioBuffer->ObjectAttributes,ioBuffer->ClientId);
            }
            break;
        }

应用层

NTSTATUS NTAPI myNtOpenProcess
    (
    __out PHANDLE ProcessHandle,
    __in ACCESS_MASK DesiredAccess,
    __in POBJECT_ATTRIBUTES ObjectAttributes,
    __in_opt PCLIENT_ID ClientId)
{
    NTSTATUS Status;
    DWORD lResultLength;
    PAEAM_NtOpenProcess_32 param;
    param.ProcessHandle = ProcessHandle;
    param.DesiredAccess = DesiredAccess;
    param.ObjectAttributes = (ObjectAttributes;
    param.ClientId = ClientId;

    DeviceIoControl(g_Driver,IOCTL_NtOpenProcess, &param,sizeof(param),&Status,sizeof(Status),&lResultLength,0);
    return Status;
}



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-9-6 15:00 被~时光荏苒编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 11974
活跃值: (5554)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
槽点太多,建议先把wow64那三个dll的F5看完
2020-9-6 15:48
0
雪    币: 2039
活跃值: (3506)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
3
你把应用层的参数打印出来,驱动层的参数打印打出来,有可能是因为参数传递不正确。
2020-9-6 16:08
0
雪    币: 5205
活跃值: (4688)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
hhkqqs 槽点太多,建议先把wow64那三个dll的F5看完
再研究研究
2020-9-6 16:37
0
雪    币: 5205
活跃值: (4688)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
逍遥m 你把应用层的参数打印出来,驱动层的参数打印打出来,有可能是因为参数传递不正确。
我去试试看
2020-9-6 16:38
0
游客
登录 | 注册 方可回帖
返回
//