首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
Windows程序
> 详细
NTCreateDEbugOBject for win8..1
时间:
2015-04-27 16:55:03
阅读:
199
评论:
0
收藏:
0
[点我收藏+]
标签:
这个代码可以在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;
}
NTCreateDEbugOBject for win8..1
标签:
原文地址:http://blog.csdn.net/qq_18942885/article/details/45311273
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
动态 WebApi 引擎使用教程(3行代码完成动态 WebApi 构建)
2021-07-28
windows 查看文件的md5/sha1/sha256
2021-07-28
git windows下换行符问题 LF与CRLF转换
2021-07-27
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。
2021-07-26
K8S--可视化界面Kubernetes Dashboard(API Server方式)
2021-07-26
Redis安装成windows服务
2021-07-26
c#32位支持大内存(>2gb)
2021-07-23
【c#】Dev BarStaticItem问题汇总
2021-07-23
Exception: URL fetch failure on https://s3.amazonaws.com/text-datasets/nietzsche.txt: None -- [WinError 10054] 远程主机强迫关闭了一个现有的连接。
2021-07-22
WinForm使用DataGridView实现类似Excel表格的查找替换
2021-07-22
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!