TianYu内存操作模块

易语言 2020-04-03 13:14:08

TianYu内存操作模块

清除数组 (参_地址列表)
局_长度 = 取字节集长度 (参_搜索内容)
局_操作句柄 = OpenProcess (#PROCESS_ALL_ACCESS, 0, 参_进程标识)
.判断循环首 (VirtualQueryEx (局_操作句柄, 局_内存地址, 局_内存块信息, 28) ≠ 0)
.如果真 (局_内存块信息.Protect ≠ 16 且 局_内存块信息.Protect ≠ 1 且 局_内存块信息.Protect ≠ 512)
局_数据缓冲区 = 取空白字节集 (局_内存块信息.RegionSize)
局_读取结果 = ReadProcessMemory (局_操作句柄, 局_内存地址, 局_数据缓冲区, 局_内存块信息.RegionSize, 0)
.判断循环首 (局_读取结果 ≠ 假)
局_找到地址 = 寻找字节集 (局_数据缓冲区, 参_搜索内容, 局_找到地址)
.如果 (局_找到地址 = -1)
跳出循环 ()
.否则
加入成员 (参_地址列表, 到数值 (局_内存地址 + 局_找到地址 - 1))
.如果结束
局_找到地址 = 局_找到地址 + 局_长度
.判断循环尾 ()
.如果真结束
局_内存地址 = 局_内存地址 + 局_内存块信息.RegionSize
处理事件 ()
.判断循环尾 ()
CloseHandle (局_操作句柄)
处理事件 ()
返回 (取数组成员数 (参_地址列表))