演示无驱动执行Ring0代码(C++) (转)
来源:互联网 发布:淘宝旧书店 编辑:程序博客网 时间:2024/06/07 05:43
/********************************************************************
程 序: 演示无驱动执行Ring0代码
创建时间:
作 者: Ring0Demo.c v1.0 by zzzEVAzzz
来 源:
目 的: 演示无驱动执行Ring0代码
原 理: 通过/Device/PhysicalMemory修改NtVdmControl入口,跳转到Ring0Code
注 意:
最后修改:
整 理: hengai
编译环境: VC6 + WindowsXP 未能通过编译
*********************************************************************/
#include "StdAfx.h"
#include <Windows.h>
#include <Ntsecapi.h>
#include <Aclapi.h>
#pragma comment (lib,"ntdll.lib") // Copy From DDK
#pragma comment (lib,"Kernel32.lib")
#pragma comment (lib,"Advapi32.lib")
//------------------ 数据类型声明开始 --------------------//
typedef struct _SYSTEM_MODULE_INFORMATION {
ULONG Reserved[2];
PVOID Base;
ULONG Size;
ULONG Flags;
USHORT Index;
USHORT Unknown;
USHORT LoadCount;
USHORT ModuleNameOffset;
CHAR ImageName[256];
} SYSTEM_MODULE_INFORMATION, *PSYSTEM_MODULE_INFORMATION;
typedef struct _OBJECT_ATTRIBUTES {
ULONG Length;
HANDLE RootDirectory;
PUNICODE_STRING ObjectName;
ULONG Attributes;
PVOID SecurityDescriptor;
PVOID SecurityQualityOfService;
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
typedef enum _SECTION_INHERIT {
ViewShare = 1,
ViewUnmap = 2
} SECTION_INHERIT;
typedef struct _MY_PROCESS_INFO {
ULONG PID;
ULONG KPEB;
ULONG CR3;
CHAR Name[16];
ULONG Reserved;
} MY_PROCESS_INFO, *PMY_PROCESS_INFO;
typedef long NTSTATUS;
//------------------ 数据类型声明结束 --------------------//
//--------------------- 预定义开始 -----------------------//
#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
#define STATUS_SUCCESS 0x00000000
#define STATUS_UNSUCCESSFUL 0xC0000001
#define STATUS_NOT_IMPLEMENTED 0xC0000002
#define STATUS_INFO_LENGTH_MISMATCH 0xC0000004
#define STATUS_INVALID_PARAMETER 0xC000000D
#define STATUS_ACCESS_DENIED 0xC0000022
#define STATUS_BUFFER_TOO_SMALL 0xC0000023
#define OBJ_KERNEL_HANDLE 0x00000200
#define SystemModuleInformation 11
#define InitializeObjectAttributes( p, n, a, r, s ) { /
(p)->Length = sizeof( OBJECT_ATTRIBUTES ); /
(p)->RootDirectory = r; /
(p)->Attributes = a; /
(p)->ObjectName = n; /
(p)->SecurityDescriptor = s; /
(p)->SecurityQualityOfService = NULL; /
}
//--------------------- 预定义结束 -----------------------//
//------------------ Native API声明开始 ------------------//
NTSYSAPI
VOID
NTAPI
RtlInitUnicodeString(
PUNICODE_STRING DestinationString,
PCWSTR SourceString
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQuerySystemInformation(
ULONG SystemInformationClass,
PVOID SystemInformation,
ULONG SystemInformationLength,
PULONG ReturnLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenSection(
OUT PHANDLE SectionHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwMapViewOfSection(
IN HANDLE SectionHandle,
IN HANDLE ProcessHandle,
IN OUT PVOID *BaseAddress,
IN ULONG ZeroBits,
IN ULONG CommitSize,
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
IN OUT PULONG ViewSize,
IN %
- 演示无驱动执行Ring0代码(C++) (转)
- 无驱动执行Ring0代码 (转)
- 无驱动执行Ring0代码
- 无驱动执行Ring0代码
- 无驱动执行Ring0代码
- WINDOWS2000/XP无驱动得到RING0权限
- 看nt下无驱执行ring0代码
- 再看nt下无驱执行ring0代码
- 转:Windows NT/2000/XP下不用驱动的Ring0代码实现
- 【转】不使用驱动进入ring0
- Windows NT/2000下不用驱动的Ring0代码实现
- Windows NT/2000下不用驱动的Ring0代码实现
- 代码演示java执行步骤(初始化)1
- 用Delphi在2000和XP/2003下从Ring3进入Ring0的无驱动解决方法
- Windows 2K不用驱动进入ring0(demo)
- Windows 2K不用驱动进入ring0(实现部分)
- NSString 演示(无注释)
- NSArray 演示(无注释)
- 以前的某个程序安装在计算机上创建挂起文件操作,运SQL_server卸载了重装,往往是装不了.在安装SQL200的时候有个提示出现“以前的某个程序安装在计算机上创建挂起文件操作,运行安装程序之前必须重新启动计算机”,重起以后同样是这样..是什么原因阿?"后
- 有了,客户资源管理尽在掌握
- Delphi背后---初学者参考之二(1)
- Eclipse console 无显示怎么办?
- 关于VB中Data控件的使用
- 演示无驱动执行Ring0代码(C++) (转)
- 在同一台机器上运行多个服务器
- 什么叫SAP-IDES
- 域操作相关
- 必须掌握的八个【cmd 命令行】
- Delphi背后---初学者参考之二(2)
- Windows域信任关系建立
- js脚本代码日常使用大全
- 在服务器上安装、使用的注意事项(1)