能力值:
( LV9,RANK:140 )
|
-
-
2 楼
易语言能写驱动了?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
申请的时候只用COMMIT试试
然后CopyMemory的时候 你要Attach进去
ZwAllocateVirtualMemory(NtCurrentProcess(), &desired_address, 0, &desired_size, MEM_COMMIT,PAGE_EXECUTE_READWRITE);
SIZE_T free_size = 0;
status = ZwFreeVirtualMemory(NtCurrentProcess(), (PVOID*)&
desired_address, &free_size,MEM_RELEASE);
最后于 2018-6-25 13:32
被MaMy编辑
,原因:
|
能力值:
( LV3,RANK:30 )
|
-
-
5 楼
看下面
最后于 2018-6-25 14:11
被不吃麻婆豆腐编辑
,原因:
|
能力值:
( LV3,RANK:30 )
|
-
-
6 楼
#include <Ntifs.h>
VOID UnLoadDriver(PDRIVER_OBJECT pDriver) {
DbgPrint("程序卸载--------------------------------\r\n"); }
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver ,PUNICODE_STRING puns) { DbgPrint("驱动入口\r\n"); pDriver->DriverUnload = UnLoadDriver; //R3的地址 PULONG readr3; readr3 =(PULONG) 0x0000000013fc7c000; //r0的地址 ULONG readr0 = 0x00; //老的CR3 新的CR3 ULONG64 oldcr3, newcr3; PEPROCESS eprocess=NULL; //R3pid HANDLE PID= (HANDLE)3048; //获取进程信息 NTSTATUS SB=PsLookupProcessByProcessId(PID, &eprocess); //判断打开没 if (eprocess==NULL) { DbgPrint("获取对象失败:%x\r\n",SB); return STATUS_SUCCESS; } //获取进程CR3 newcr3 = *(PULONG64)((ULONG64)eprocess + 0x28); KdBreakPoint(); if (newcr3==0x00) { DbgPrint("获取cr3失败\r\n"); return STATUS_SUCCESS; } DbgPrint("进程CR3:%x\r\n",newcr3); _disable(); //保存老的CR3 oldcr3 =__readcr3(); //替换CR3 __writecr3(newcr3); _enable(); DbgPrint("老的CR3:%x\r\n", oldcr3); //读取进程信息 DbgPrint("现在读取r0数据\r\n"); RtlMoveMemory(&readr0, readr3,4); DbgPrint("读取到的信息:%x\r\n", readr0); DbgPrint("现在是还原CR3\r\n"); //写入 *readr3 = 0xaa; //还原 _disable(); //替换CR3 __writecr3(oldcr3); _enable(); DbgPrint("还原成功\r\n"); return STATUS_SUCCESS; }
|
能力值:
( LV9,RANK:280 )
|
-
-
7 楼
有标准的KeStackAttachProcess不用,手动切CR3是想干啥?
|
能力值:
( LV3,RANK:30 )
|
-
-
8 楼
hzqst
有标准的KeStackAttachProcess不用,手动切CR3是想干啥?
手动实现了解下原理嘛 ovo
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
不吃麻婆豆腐
#include
VOID UnLoadDriver(PDRIVER_OBJECT pDriver) {
DbgPrint("程序卸载-------------------- ...
你这个是驱动读写。。。我是要申请内存和释放内存。。。。
|
能力值:
( LV3,RANK:30 )
|
-
-
10 楼
获取CR3然后用着函数就行了 ExAllocatePool ExFreePool
最后于 2018-6-25 15:07
被不吃麻婆豆腐编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
不吃麻婆豆腐
获取CR3然后用着函数就行了 ExAllocatePool ExFreePool
不会把。这么坑、??? 附加进程就能申请内存和释放了????
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
不吃麻婆豆腐
获取CR3然后用着函数就行了 ExAllocatePool ExFreePool
测试完毕。坑货。申请的是内核地址。根本不是用户层地址
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
已解决。大小 不能=NULL必须给个指针
|
|
|