|
|
搜索 | 整数型 | | |
进程ID | 整数型 | | | | 搜索内容 | 字节集 | | | | 模块名 | 文本型 | | | | 结果数组 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 长度 | 整数型 | | | 操作句柄 | 整数型 | | | 内存地址 | 整数型 | | | 内存块信息 | 精易_内存属性 | | | 数据缓冲区 | 字节集 | | | 读取结果 | 逻辑型 | | | 找到地址 | 整数型 | | | 是否模块搜索 | 逻辑型 | | | 模块信息 | 精易_模块信息 | | 0 | i | 整数型 | | | 模块结束地址 | 整数型 | | | 清除数组 (结果数组 )长度 = 取字节集长度 (搜索内容 )操作句柄 = OpenProcess ( #PROCESS_ALL_ACCESS, 0, 进程ID ) 如果真 (取反 (是否为空 (模块名 )) )是否模块搜索 = 真 进程_ID取模块 (, 模块信息 )计次循环首 (取数组成员数 (模块信息 ), i )如果真 (到小写 (到文本 (模块信息 [i ].模块文件名 )) = 到小写 (模块名 )) 内存地址 = 模块信息 [i ].模块句柄 模块结束地址 = 模块信息 [i ].模块句柄 + 模块信息 [i ].大小 跳出循环 ()计次循环尾 ()判断循环首 (VirtualQueryEx (操作句柄, 内存地址, 内存块信息, 28 ) ≠ 0 ) 如果真 (内存块信息.当前属性 ≠ 16 且 内存块信息.当前属性 ≠ 1 且 内存块信息.当前属性 ≠ 512 ) 数据缓冲区 = 取空白字节集 (内存块信息.区域长度 )读取结果 = ReadProcessMemory_字节集 (操作句柄, 内存地址, 数据缓冲区, 内存块信息.区域长度, 0 )判断循环首 (读取结果 ≠ 假)找到地址 = 寻找字节集 (数据缓冲区, 搜索内容, 找到地址 ) 如果 (找到地址 = -1 ) 跳出循环 ()加入成员 (结果数组, 到数值 (内存地址 + 找到地址 - 1 )) 找到地址 = 找到地址 + 长度判断循环尾 ()内存地址 = 内存地址 + 内存块信息.区域长度 如果真 (是否模块搜索 )如果真 (内存地址 > 模块结束地址 )跳出循环 ()处理事件 ()判断循环尾 ()CloseHandle (操作句柄 )返回 (取数组成员数 (结果数组 ))
|
|