带驱动的内存读写,进程保护模块NuntEC

易语言 2020-08-20 18:57:44

带驱动的内存读写,进程保护模块NuntEC

清除数组 (结果数组)
.如果真 (结束地址 = 0)
结束地址 = 2147483647
.如果真结束
长度 = 取字节集长度 (搜索内容)
操作句柄 = 打开进程 (进程ID)
.判断循环首 (VirtualQueryEx (操作句柄, 内存地址, 内存块信息, 28) ≠ 0) ' 取得内存块信息
.如果真 (内存块信息.当前属性 ≠ 16 且 内存块信息.当前属性 ≠ 1 且 内存块信息.当前属性 ≠ 512) ' 判断保护状态
数据缓冲区 = 取空白字节集 (内存块信息.区域长度)
读取结果 = ReadProcessMemory_字节集 (操作句柄, 内存地址, 数据缓冲区, 内存块信息.区域长度, 0)
.判断循环首 (读取结果 > 0)
找到地址 = 寻找字节集 (数据缓冲区, 搜索内容, 找到地址) ' 查找是否有要搜索的数据
.如果 (找到地址 = -1) ' 跳出 进行下次循环
跳出循环 ()
.否则
判断地址 = 到数值 (内存地址 + 找到地址 - 1)
.如果真 (判断地址 ≥ 起始地址 且 判断地址 ≤ 结束地址)
加入成员 (结果数组, 判断地址)
.如果真结束

.如果结束
找到地址 = 找到地址 + 长度
.判断循环尾 ()
.如果真结束
内存地址 = 内存地址 + 内存块信息.区域长度 ' 搜索下一内存块
处理事件 ()
.判断循环尾 ()
CloseHandle (操作句柄)
返回 (取数组成员数 (结果数组))