易语言取模块基址源码

易语言取模块基址源码

.版本 2 .程序集 程序集1 .子程序 取进程模块, 整数型, , 失败为0,成功返回模块数量(该命令为高级成员命令) .参数 进程ID, 整数型, 可空, 为空 则取当前进程模块 .参数 模块信息数组, 模块信息型, 可空 数组, 返回的模块信息 数组 .局部变量 快照句柄, 整数型 .局部变量 模块信息, 模块信息型 .局部变量 进程句柄, 整数型 .局部变量 临时模块信息, 模块信息型, , "0" 快照句柄 = _创建快照 (8, 进程ID) .如果真 (快照句柄 = 0) 返回 (0) .如果真结束 模块信息.size = 1024 进程句柄 = _第一个模块 (快照句柄, 模块信息) .判断循环首 (进程句柄 ≠ 0) 加入成员 (临时模块信息, 模块信息) 进程句柄 = _下一个模块 (快照句柄, 模块信息) .判断循环尾 () _关闭对象 (快照句柄) 模块信息数组 = 临时模块信息 返回 (取数组成员数 (临时模块信息)) .子程序 读模块基址, 文本型, , 仿CE的 模块名+偏移指针 例如: d3dx9_37.dll+00187E30 或 GameMain.exe+000735C8 返回十六进制文本型地址 .参数 进程PID, 整数型, , 进程的PID .参数 模块名称, 文本型, , 模块的名称 .参数 模块偏移, 文本型, 可空, 模块的偏移 .局部变量 变量, 整数型 .局部变量 信息, 模块信息型, , "0" .局部变量 取出模块基址, 整数型 取进程模块 (进程PID, 信息) .计次循环首 (取数组成员数 (信息), 变量) .如果 (模块名称 = 到文本 (信息 [变量].模块文件名) = 真) 取出模块基址 = 信息 [变量].base + 十六转十进制 (模块偏移) 跳出循环 () .否则 .如果结束 .计次循环尾 () 返回 (十转十六进制 (取出模块基址)) .子程序 十六转十进制, 整数型 .参数 十六进制转换数据, 文本型 .局部变量 结果, 整数型 StrToIntEx (“0x” + 十六进制转换数据, 1, 结果) 返回 (结果) .子程序 十转十六进制, 文本型 .参数 十进制转换数据, 整数型 .局部变量 结果, 文本型 结果 = 取空白文本 (8) wvsprintf (结果, “%08X”, 十进制转换数据) 返回 (结果)
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

易语言取模块基址源码》有0个想法

回复 易语言例程 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注