首页
社区
课程
招聘
[求助]驱动写内存蓝屏
2020-1-31 11:35 5519

[求助]驱动写内存蓝屏

2020-1-31 11:35
5519
代码:
//写内存
NTSTATUS KeWriteProcessMemory(PEPROCESS Process, PVOID SourceAddress, PVOID TargetAddress, SIZE_T Size)
{       // This write func is just like the read func, except vice versa.

// Since the process writing from is our module
// change the source process variable for that.
PEPROCESS SourceProcess = PsGetCurrentProcess();
// Since the process we write to is the input process
// we set the target process as the argument
PEPROCESS TargetProcess = Process;
SIZE_T Result;

if (NT_SUCCESS(MmCopyVirtualMemory(SourceProcess, SourceAddress, TargetProcess, TargetAddress, Size, KernelMode, &Result)))
return STATUS_SUCCESS; // operation was successful
else
return STATUS_ACCESS_DENIED;

}

通讯:
case IOCTL_IO_WRITE:
{
pWriteStruct wt = pIoBuffer;
KeWriteProcessMemory(proc, wt->WriteBuffer, wt->TargetAddress, wt->WriteSize);
}
调用:
typedef struct writeStruct
{
PVOID WriteBuffer;
ULONGLONG WriteSize;
PVOID TargetAddress;

} WriteStruct, * pWriteStruct;
bool WriteMemory(PVOID pAddress, int Size, PVOID lpBuffer)
{
WriteStruct wt = { NULL };
wt.WriteBuffer = lpBuffer;
wt.TargetAddress = pAddress;
wt.WriteSize = Size;
BOOL bRet = DeviceIoControl(hDevice, IOCTL_IO_WRITE, &wt, sizeof(wt), 0, 0, 0, 0);
return bRet;
}

求大神解决

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 5734
活跃值: (1737)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
blindtiger 1 2020-1-31 14:56
2
0
我猜你结构体没有按8字节对齐,导致用户模式32位环境下 R3 和 R0 的对齐粒度不一样
雪    币: 182
活跃值: (576)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
柒雪天尚 2020-1-31 15:18
3
0
typedef struct writeStruct
{
PVOID WriteBuffer;
ULONGLONG WriteSize;
PVOID TargetAddress;

} WriteStruct, * pWriteStruct;


你读写的是32位程序吗
雪    币: 198
活跃值: (81)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
黑白条纹 2020-1-31 15:30
4
0
小艾 我猜你结构体没有按8字节对齐,导致用户模式32位环境下 R3 和 R0 的对齐粒度不一样[em_13]。
听不明白,求大佬给出代码!!
雪    币: 198
活跃值: (81)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
黑白条纹 2020-1-31 15:30
5
0
柒雪天尚 typedef struct writeStruct { PVOID WriteBuffer; ULONGLONG WriteSize; PVOID TargetAddress; } W ...
是的
雪    币: 182
活跃值: (576)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
柒雪天尚 2020-1-31 15:38
6
0
黑白条纹 是的
楼上飞总已经说的很明白了,而且结构体也给你标出来了
雪    币: 198
活跃值: (81)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
黑白条纹 2020-1-31 16:56
7
0
大佬们问题已经解决了,是设备名的问题
雪    币: 1017
活跃值: (3326)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
逆向爱好者 2023-3-29 19:06
8
0
r3不传目标进程pid或者句柄什么的吗
游客
登录 | 注册 方可回帖
返回