首页
社区
课程
招聘
[分享]内核下对进程只读内存的安全写入方法SafeCopyMemory
发表于: 2017-6-10 00:09 7671

[分享]内核下对进程只读内存的安全写入方法SafeCopyMemory

2017-6-10 00:09
7671

测试过了,好用.

来看雪备份一下,顺便分享给大家.

原文出自,134K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0M7$3c8F1i4K6u0W2L8X3g2@1i4K6u0r3N6e0l9I4x3K6M7$3x3e0l9K6y4W2)9J5c8X3q4J5N6r3W2U0L8r3g2Q4x3V1k6V1k6i4c8S2K9h3I4K6i4K6u0r3y4U0l9K6y4e0V1@1x3o6t1`.

 BOOLEAN SafeCopyMemory(PVOID pDestination, PVOID pSourceAddress, SIZE_T SizeOfCopy)
 {
	 PMDL pMdl = NULL;
	 PVOID pSafeAddress = NULL;
	 if (!MmIsAddressValid(pDestination) || !MmIsAddressValid(pSourceAddress))
		 return FALSE;
	 pMdl = IoAllocateMdl(pDestination, (ULONG)SizeOfCopy, FALSE, FALSE, NULL);
	 if (!pMdl)
		 return FALSE;
	 __try
	 {
		 MmProbeAndLockPages(pMdl, KernelMode, IoReadAccess);
	 }
	 __except (EXCEPTION_EXECUTE_HANDLER)
	 {
		 IoFreeMdl(pMdl);
		 return FALSE;
	 }
	 pSafeAddress = MmGetSystemAddressForMdlSafe(pMdl, NormalPagePriority);
	 if (!pSafeAddress)
		 return FALSE;
	 __try
	 {
		 RtlMoveMemory(pSafeAddress, pSourceAddress, SizeOfCopy);
	 }
	 __except (EXCEPTION_EXECUTE_HANDLER)
	 {
		 ;
	 }
	 MmUnlockPages(pMdl);
	 IoFreeMdl(pMdl);
	 return TRUE;
 }
 void Test() {
	 PVOID HookCode = ExAllocatePool(NonPagedPool, 0x200);
	 RtlFillMemory(HookCode, 0x200, 0x90);
	 RtlMoveMemory(HookCode, NtOpenProcess, 0x3);
	 SafeCopyMemory(NtOpenProcess, HookCode, 0x3);



[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 8397
活跃值: (6323)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
缺点就是跟cr0一样,比如修改进程内存PE头,就会修改到文件上.
记得cr0修改内存,HOOK了NTDLL.dll函数,所有的进程也都会被HOOK
这什么情况,哪位大佬还有好一点的修改只读内存方法吗
2017-6-10 00:18
0
雪    币: 12876
活跃值: (9342)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
3
lononan 缺点就是跟cr0一样,比如修改进程内存PE头,就会修改到文件上. 记得cr0修改内存,HOOK了NTDLL.dll函数,所有的进程也都会被HOOK 这什么情况,哪位大佬还有好一点的修改只读内存方法 ...
NtProtectVirtualMemory,官方唯一指定方法  其他都是玩蛇
或者你自己把PTE里的COPYONWRITE打开也行
2017-6-10 08:54
0
雪    币: 8397
活跃值: (6323)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
hzqst NtProtectVirtualMemory,官方唯一指定方法 其他都是玩蛇 或者你自己把PTE里的COPYONWRITE打开也行
NtProtectVirtualMemory,没导出啊...麻烦...
2017-6-10 14:22
0
雪    币: 485
活跃值: (3397)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wem
5
谢谢分享
2021-11-30 18:44
0
游客
登录 | 注册 方可回帖
返回