首页
社区
课程
招聘
[求助]驱动写入进程内存老是不成功
发表于: 2017-11-12 22:09 4263

[求助]驱动写入进程内存老是不成功

2017-11-12 22:09
4263
刚在学驱动编程,写入进程内存老是不成功,请大佬过目

NTSTATUS KeWriteVirtualMemory(PEPROCESS Process, PVOID SourceAddress, PVOID TargetAddress, SIZE_T Size)
{
	DbgBreakPoint();
	PSIZE_T Bytes;
	NTSTATUS status = STATUS_SUCCESS;
	status = MmCopyVirtualMemory(PsGetCurrentProcess(), SourceAddress, Process,
		TargetAddress, Size, KernelMode, &Bytes);
	if (NT_SUCCESS(status))
		return STATUS_SUCCESS;
	else
		return status;
}

也试过替换cr3的方式,每次检查MmIsAddressValid都过不了
BOOLEAN CopyProcessMemory(ULONG64 pDest, ULONG64 pSrc, ULONG ulSize, ULONG ulPID)
{
	ULONGLONG ullCR3 = 0;
	PEPROCESS  pEProcess;
	//ULONG ulOffset = DIRECTORY_TABLE_BASE;

	PsLookupProcessByProcessId((HANDLE)ulPID, &pEProcess);
	ULONG64 pDTB = Get64bitValue((UCHAR*)pEProcess + DIRECTORY_TABLE_BASE);
	if (pEProcess)
	{
		_disable();
		ullCR3 = __readcr3();
		__writecr3(pDTB);
		_enable();
		DbgPrintEx(0, 0, "Write Params:  pid: %d, src: %p, dst: %p \n", ulPID, pSrc, pDest);
		DbgBreakPoint();
		if (MmIsAddressValid(pDest))
		{
			RtlCopyMemory(pDest, pSrc, ulSize);
		}

		_disable();
		__writecr3(ullCR3);
		_enable();
		ObDereferenceObject(pEProcess);

		return TRUE;
	}

	return FALSE;
}






[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 12848
活跃值: (9142)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
2
现已加入特征码全家桶
2017-11-13 00:22
0
雪    币: 78
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
现已加入蓝屏全家桶
2017-11-13 02:41
0
雪    币: 1
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
现已加入蓝屏全家桶
2017-11-21 14:34
0
雪    币: 10915
活跃值: (2880)
能力值: ( LV5,RANK:71 )
在线值:
发帖
回帖
粉丝
5
现已加入蓝屏全家桶,不需要attach吗?
2017-11-21 15:07
0
雪    币: 70
活跃值: (1317)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
现已加入爆炸全家桶
2017-11-21 17:08
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
KeStackAttachProcess
2017-11-21 18:42
0
雪    币: 5039
活跃值: (2616)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
8
哈哈,你以为光切个cr3就可以吃鸡了吗,不存在的,PDE/PTE的VA咋办
2017-11-21 22:00
0
雪    币: 12848
活跃值: (9142)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
9
FaEry 哈哈,你以为光切个cr3就可以吃鸡了吗,不存在的,PDE/PTE的VA咋办
我还真看到有人光切个cr3的
2017-11-21 22:05
0
雪    币: 5039
活跃值: (2616)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
10
hzqst 我还真看到有人光切个cr3的
cr3只是中转,最终还是用的虚拟内存的呀
2017-11-21 22:06
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
KeWriteVirtualMemory就像搞内存,天真
2017-11-24 23:33
0
雪    币: 433
活跃值: (1900)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
12
FaEry 哈哈,你以为光切个cr3就可以吃鸡了吗,不存在的,PDE/PTE的VA咋办
对呀  我就是只切个cr3  咋就不能吃了呀?
2017-11-25 03:56
0
雪    币: 433
活跃值: (1900)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
13
借用某论坛上一句话,dont  copy  and  u  can  never  get  banned
2017-11-25 04:05
0
游客
登录 | 注册 方可回帖
返回
//