通用的读写内核虚拟内存

易语言 2020-08-22 17:43:23

通用的读写内核虚拟内存

.如果真 (0 = 进程ID)
进程ID = 取自进程ID ()
.如果真结束
进程句柄 = OpenProcess (2035711, 真, 进程ID)
打开令牌对象 (进程句柄, 983551, 令牌句柄)
取权限令牌 (0, “SeDebugPrivilege”, destLuid)
进程权限.PrivilegeCount = 1
进程权限.Attributes = 2
进程权限.LowPart = destLuid.LowPart
进程权限.HighPart = destLuid.HighPart
返回 = 置进程权限 (令牌句柄, 假, 进程权限, 0, 0, 0)
CloseHandle (进程句柄)

buff.Address = 2153184127 ' 要写入内核数据的地址
retbyte = { 229, 19, 255, 255 }
p = 申请内存 (4, )
写到内存 (retbyte, p, 4)
buff.Data = p ' 被写入到内核的数据
buff.Length = 4 ' 长度
ZwSystemDebugControl (#SysDbgWriteVirtualMemory, buff, 12, 0, 0, retlenth)
retbyte = 指针到字节集 (p, 4)
释放内存 (p)