NTCreateDEbugOBject for win8..1



这个代码可以在WIN8.1上面跑的  测试成功 自己测试的时候呢 把ObInsertObjectEx,DbgkDebugObjectType替换一下 最后用符号连接就完美了

这个不像昨天的那个伪代码 这个可以跑的 我跟着调试了一遍代码也是没有用IDA了  IDA太坑

NTSTATUS NTCreateDebugObject(OUT PHANDLE DebugObjectHandle,

IN ACCESS_MASK DesiredAccess,

IN POBJECT_ATTRIBUTES ObjectAttributes,

IN ULONG Flags){

typedef NTSTATUS (__stdcall *OBCREATEOBJECT)(

__in KPROCESSOR_MODE ProbeMode,

__in POBJECT_TYPE ObjectType,

__in POBJECT_ATTRIBUTES ObjectAttributes,

__in KPROCESSOR_MODE OwnershipMode,

__inout_opt PVOID ParseContext,

__in ULONG ObjectBodySize,

__in ULONG PagedPoolCharge,

__in ULONG NonPagedPoolCharge,

__out PVOID *Object

);

PHANDLE handle;

UNICODE_STRING usFuncName;

KPROCESSOR_MODE PreviousMode;

OBCREATEOBJECT ObCreateObject;

POBJECT_TYPE DebugObject;

POBJECT_TYPE DbgkDebugObjectType=(POBJECT_TYPE)0x84939eb0  ;

ULONG ObInsertObjectEx=(ULONG)0x814ad106  ;

NTSTATUS status;

RtlInitUnicodeString(&usFuncName,L"ObCreateObject");

ObCreateObject = MmGetSystemRoutineAddress(&usFuncName);

PreviousMode=ExGetPreviousMode();

if (PreviousMode==KernelMode)

{

return STATUS_INVALID_PARAMETER;

}

if (Flags & 0xFFFFFFFE)

{

return STATUS_INVALID_PARAMETER;

}

status= ObCreateObject(PreviousMode,DbgkDebugObjectType,ObjectAttributes,PreviousMode,NULL,0x3c,0, 0,(PVOID)&DebugObject);

if (!NT_SUCCESS(status))

{

return status;

}

*(ULONG*)((ULONG)DebugObject+0x10)=1;

*(ULONG*)((ULONG)DebugObject+0x14)=0;

*(ULONG*)((ULONG)DebugObject+0x18)=0;

__asm{

mov esi,dword ptr [DebugObject]

xor edi,edi

xor eax,eax

inc eax

}

KeInitializeEvent((PRKEVENT)((ULONG)DebugObject+0x1c),1,0);

*(ULONG*)((ULONG)DebugObject+0x30+4)= ((ULONG)DebugObject+0x30);

*(ULONG*)((ULONG)DebugObject+0x30)=((ULONG)DebugObject+0x30);

KeInitializeEvent((PRKEVENT)DebugObject,0,0);

*(ULONG*)((ULONG)DebugObject+0x38)=2;

__asm{

lea     eax,[handle]

push    eax

push    edi

push    edi

push    edi

push DWORD ptr [DesiredAccess]

xor edx,edx

mov     ecx,esi

call    ObInsertObjectEx

}

KdPrint(("handle %X",handle));

*(ULONG*)DebugObjectHandle=handle;

return 0;

}

时间: 2024-11-08 19:48:38

NTCreateDEbugOBject for win8..1的相关文章

win8下安装VC6出现兼容性问题的解决办法

重装系统之后(win8的系统),发现VC6安装出现兼容性问题,花了一些时间解决,有出现的问题都差不多在下面链接的总结中,写的很详细: http://www.docin.com/p-1126120829.html 这里面安装补丁的过程还会出现以下问题: "模块FileTool.dll已加载,但对DLLRegisterServer调用失败" 解决办法就是: 在cmd下手动注册该dll文件:regsvr32 "C:\Program Files\Microsoft Visual St

【好用的小技巧】win8兼容、网页不让复制

1.今天下了个matlab7,我用的是win8系统,不兼容. 解决:鼠标右键matlab7的快捷键,点击属性,选择兼容性,选择window vista即可运行 2.在一个 网页上看到一个对自己很有帮助的代码,想下.结果发现代码可以预览,可以选择代码中的文字,但是一复制就弹出窗口说积分不够. 解决:存储网页到本地,用word打开网页.然后文字就都可以复制了.

【掌柜悠哉】Win8,Win10操作系统,打开反击工具崩溃的解决办法

2015年12月30日,微软对win8,win10进行了强制更新,其中有个补丁对ie浏览器有冲突,而反击工具又用到了ie浏览器,所以,就造成了,打开反击工具就崩溃的问题. 下面是解决办法: 第一步:找到[控制面板]并进入,如下图: 第二步:如下图: 第三步:如下图: 第四步:如下图: 注意,需要卸载的更新是:KB3132372  ,不要卸载错了哦.卸载后,再打开反击工具,就可以正常使用了.赶快试试吧. 这个补丁对各种软件影响都很大,这个是新闻链接:http://www.pcpop.com/doc

关于uefi的机器win8下安装CentOS双系统

在老机器上win7上装过ubuntu,可以直接用easyBCD,无需U盘,顺利S装上. 这次在win8下无法使用easyBCD,上网搜索,搜到需要用rEFInd这个软件. 安装方法: 下载地址:http://refit.sourceforge.net/#download windows下安装 下载压缩包后解压,然后桌面左下角右键打开一个命令提示符(管理员),运行 mountvol S: /S  ----将EFI系统分区映射到S盘 cd 转到rEFInd解压目录 xcopy /E refind S

win8.1怎么调出右面的菜单

win8.1右面的菜单快捷键:win+c win+c

使用MDT2013部署Win8系统之六-配置更新及导入启动镜像

我们设置的标准任务在进行系统部署时, 需要配置一个PE引导系统以启动镜像 现在我们来操作,右击"MDT Deployment Share"选择属性 在"通用"选项卡中,可以看到支持32位和64位操作系统平台.因为我的测试环境中的操作系统均为64位,所以这里我们选择x64 切换到"Windows PE"选项卡,设置x64 PE系统的名称和生成的PE类型,选择平台"x64",这里ISO是可选项,因为在我的测试环境中可以直接使用WI

PL/SQL在win7/win8 x64位下使用客户端连接oracle

新做了win8 x64位的系统.需要使用plsql连接oracle数据库.之前的机器装有64位的oracle11g,plsql可以直接找到oracle_home连接到数据库. 这次不想在本地安装数据库,因此只装了一个32位的数据库客户端.配置环境变量时遇到一些小问题,在此记录下来. 1.下载oracle客户端,然后解压到任意目录下 2.安装好plsql,然后配置plsql的oracle_home和oci库的地址 plsql的preference设置 ORACLE_HOME:F:\oracle\p

Win8.1 查看 “Windows 体验指数“

啥是 Windows 体验指数 ? 引用MS的介绍: http://windows.microsoft.com/zh-cn/windows7/products/features/windows-experience-index http://windows.microsoft.com/zh-cn/windows/what-is-windows-experience-index#What-is-windows-experience-index=windows-8 Windows Experienc

win8.1开机后 桌面会莫名的卡5秒

最近win8.1开机后 桌面会莫名的卡5秒 ,查看事件 事件 ID:10010描述:服务器{1B1F472E-3221-4826-97DB-2C2324D389AE} 没有在要求的超时时间内向 DCOM 注册. 更新: 禁用Skydrive两个计划任务,错误依旧 转自远景论坛 体的方式是通过给 Network Service 角色添加相应的权限,步骤如下:A. 在"运行"里面输入命令dcomcnfgB. 双击"组件服务"->双击"计算机"C