java 内核驱动_简单的内核模式驱动程序

我正在创建简单的内核模式驱动程序(空项目)来尝试一些

在用户模式应用程序上读/写内存操作 .

我在编译项目时遇到错误在这些方面:

NTSTATUS NTAPI MmCopyVirtualMemory(PEPROCESS SourceProcess, PVOID

SourceAddress, PEPROCESS TargetProcess, PVOID TargetAddress, SIZE_T

BufferSize, KPROCESSOR_MODE PreviousMode, PSIZE_T ReturnSize);

NTSTATUS PsLookupProcessByProcessId(_In_ HANDLE ProcessId, _Outptr_

PEPROCESS *Process);

KernelWPM(Process, &Writeval, 0x010F29B0, sizeof(__int32));

VS编译错误:

Severity Code Description Project File Line Suppression State

Error C2371 'PEPROCESS': redefinition; different basic types INR

C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\km\ntifs.h 85

Warning C4022 'GetProcessByID': pointer mismatch for actual parameter 1

INR C:\Users\NAKEDRAT\Desktop\INR\INR\main.c 62

Error C2371 'PETHREAD': redefinition; different basic types INR

C:\Program Files (x86)\Windows Kits\10\Include\10.0.16299.0\km\ntifs.h 86

Warning C4047 'function': 'PEPROCESS' differs in levels of indirection

from 'PEPROCESS **' INR C:\Users\NAKEDRAT\Desktop\INR\INR\main.c 62

Warning C4024 'GetProcessByID': different types for formal and actual

parameter 2 INR C:\Users\NAKEDRAT\Desktop\INR\INR\main.c 62

Warning C4047 'function': 'PEPROCESS' differs in levels of indirection

from 'PEPROCESS *' INR C:\Users\NAKEDRAT\Desktop\INR\INR\main.c 64

Warning C4024 'KernelWPM': different types for formal and actual parameter

1 INR C:\Users\NAKEDRAT\Desktop\INR\INR\main.c 64

Warning C4022 'KernelWPM': pointer mismatch for actual parameter 3 INR

C:\Users\NAKEDRAT\Desktop\INR\INR\main.c 64

这是我的代码:也使用相同的SDK和WDK版本

#include

#include

#include

DRIVER_INITIALIZE DriverEntry;

#pragma alloc_text(INIT, DriverEntry)

NTSTATUS NTAPI MmCopyVirtualMemory(PEPROCESS SourceProcess, PVOID

SourceAddress, PEPROCESS TargetProcess, PVOID TargetAddress, SIZE_T

BufferSize, KPROCESSOR_MODE PreviousMode, PSIZE_T ReturnSize);

NTSTATUS PsLookupProcessByProcessId(_In_ HANDLE ProcessId, _Outptr_

PEPROCESS *Process);

NTSTATUS KernelRPM(PEPROCESS Process, PVOID SourceAddress, PVOID

TargetAddress, SIZE_T Size)

{

PEPROCESS SourceProcess = Process;

PEPROCESS TargetProcess = PsGetCurrentProcess();

SIZE_T Result;

if (NT_SUCCESS(MmCopyVirtualMemory(SourceProcess, SourceAddress,

TargetProcess, TargetAddress, Size, KernelMode, &Result)))

return STATUS_SUCCESS;

else

return STATUS_ACCESS_DENIED;

}

NTSTATUS KernelWPM(PEPROCESS Process, PVOID SourceAddress, PVOID

TargetAddress, SIZE_T Size)

{

PEPROCESS SourceProcess = PsGetCurrentProcess();

PEPROCESS TargetProcess = Process;

SIZE_T Result;

if (NT_SUCCESS(MmCopyVirtualMemory(SourceProcess, SourceAddress,

TargetProcess, TargetAddress, Size, KernelMode, &Result)))

return STATUS_SUCCESS;

else

return STATUS_ACCESS_DENIED;

}

NTSTATUS DriverEntry(_In_ struct _DRIVER_OBJECT *DriverObject, _In_

PUNICODE_STRING RegistryPath)

{

int Writeval = 666;

PEPROCESS *Process;

GetProcessByID(4872, &Process);

KernelWPM(Process, &Writeval, 0x010F29B0, sizeof(__int32));

DbgPrint("Value of int i: %d", Writeval);

return STATUS_SUCCESS;

}

我究竟做错了什么?我怎么能改进,有什么建议吗?谢谢 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将ncdx98.fne放在易语言lib目录下 将ncdx98_static.lib放在易语言static_lib目录下 即可使用 virscan查毒链接:http://www.virscan.org/scan/bfb948a9c839be980a853d26cb762eb7 哈勃查毒链接:https://habo.qq.com/file/showdetail?md5=932b29e2ff7649962a672183cd12bf27&pk=ADwGZV1rB2MIPFs5 {ECF1A0B0-BF8B-1EFF-CBD8-ECD74EFCBCBB} Q群:133320211 欢迎反馈 BUG 易语言加载驱动误报正常 可上传在线查毒 如果有使用过之前版本支持库的朋友 建议安装支持库之前 Ctrl+a 屏蔽源码以后再安装 防止参数错乱 v2.3 18.11.3 添加 x64进程内存类 取内存属性 添加 x64进程内存类 置内存属性 添加 x64进程内存类 置为可写 添加 x64进程内存类 是否可写 v2.2 18.10.28 新增 x64进程内存类 64系统专用 删除多余判断 使用进程句柄操作 添加 x64进程内存类 申请内存 添加 x64进程内存类 释放内存 v2.1 18.10.13 修改 进程_是否64位 判断进程是否为64位进程,是64位进程返回真,否则返回假。 添加 读u文本型 添加 写u文本型 v2.0 18.10.11 完善了支持库参数详解 新增 搜索_模糊 支持通配符?? 搜索规则与OD相同,返回搜寻的内存地址数目 新增 再次搜索_模糊 支持通配符?? 搜索规则与OD相同,返回搜寻的内存地址数目 新增 搜索Ex_模糊 支持通配符?? 返回搜寻的内存地址 新增 再次搜索Ex_模糊 支持通配符?? 返回搜寻的内存地址 新增 特征码搜索2 支持通配符搜索 返回十六进制文本内存地址 新增 读二叉树 新增 读文本型Ex 新增 写文本型Ex 新增 读字节集Ex 新增 写字节集Ex 修改 读代码 如:"10007AFA8+50+14" 地址中允许带模块名(模块名要用尖括号括起来),如:+50+14 修改 写代码 修改 读文本型 支持Unicode 自动判断读取长度 修改 写文本型 支持Unicode v1.21 18.9.28 修正 进程_枚举模块x bug 修正 特征码搜索 bug 真正支持64程序搜索 修正 搜索 bug 真正支持64程序搜索 v1.2 18.9.24 新增 进程_枚举模块 支持64进程 需提升自身权限 新增 搜索Ex 返回文本地址 新增 再次搜索Ex 返回文本地址 v1.1 18.9.19 修改 进程_取模块地址32 可取出模块内存区域地址大小 新增 进程_取模块地址64Ex 可取出模块内存区域地址大小 新增 特征码搜索Ex 搜索模块 速度更快 只支持无驱动保护的游戏 v1.0 18.9.8

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值