无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

mdl 讀寫

2023-03-02 13:40 作者:苦吖11  | 我要投稿

結(jié)構(gòu)體:

typedef struct? L_Process

{

? ? ULONG pid; //進(jìn)程ID

? ? ULONG64 Address; //內(nèi)存地址

? ? ULONG64 buf; //緩沖區(qū)指針

? ? ULONG Size; //內(nèi)存大小

}L_Process, * PL_Process;

讀:

L_ProcesspInputData = (L_Process)InputData;//拿到輸入的數(shù)據(jù)

Status = PsLookupProcessByProcessId((HANDLE)pInputData->pid, &process);通過(guò)進(jìn)程id獲得epprocess進(jìn)程結(jié)構(gòu)

if (NT_SUCCESS(Status) && MmIsAddressValid((PVOID)pInputData->buf) && process != NULL)

{

PMDL mdl = IoAllocateMdl((PVOID)pInputData->buf, pInputData->Size, 0, 0, NULL);//創(chuàng)建MDL,首地址為buf,長(zhǎng)度為size

if (!mdl) break;

MmBuildMdlForNonPagedPool(mdl);//創(chuàng)建非分頁(yè)

unsigned char* Map = (unsigned char*)MmMapLockedPages(mdl, KernelMode);//鎖定此頁(yè)

if (!Map)

{

IoFreeMdl(mdl);//釋放mdl

break;

}

TargetAddress = (PVOID)pInputData->Address;//目標(biāo)地址

TargetSize = pInputData->Size;//長(zhǎng)度

if (PsGetCurrentProcess() != process)

{

KeStackAttachProcess(process, &apc);//附加進(jìn)程成功

attach = TRUE;

}

__try {

if (MmIsAddressValid(TargetAddress))//判斷目標(biāo)地址是否有效

{

RtlCopyMemory(Map, TargetAddress, TargetSize);//目標(biāo)地址復(fù)制到map

KeLowerIrql(KeRaiseIrqlToDpcLevel());

}

}

__except (1) {

DbgPrint("無(wú)法訪問(wèn)地址.\n");

}

if (attach) KeUnstackDetachProcess(&apc);

MmUnmapLockedPages((PVOID)Map, mdl);

IoFreeMdl(mdl);

}

break;



mdl 讀寫的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
镇宁| 寿光市| 隆安县| 化德县| 青田县| 漳州市| 古田县| 瑞安市| 大安市| 西青区| 华池县| 资阳市| 涪陵区| 平谷区| 天柱县| 莲花县| 兴隆县| 谢通门县| 临桂县| 上饶县| 肇源县| 东平县| 葫芦岛市| 陇南市| 枣庄市| 元江| 菏泽市| 邢台市| 新丰县| 河曲县| 雅江县| 阿尔山市| 琼结县| 进贤县| 黄冈市| 阳曲县| 罗田县| 聊城市| 城固县| 乐东| 珲春市|