易语言取模块基址源码
.版本 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”, 十进制转换数据)
返回 (结果)
易语言+读模块基址
易语言取模块基址
如何取模块基址
易语言读模块基址+
易语言 追风 取模块基址
易语言基址
易语言64位exe取基址模块源码
易语言取基址
易语言读取模块基址
取模块
易语言取模块地址
易语言取游戏基址
模块基址API源码
易语言追风取模块基址
易语言取基址模块
易语言什么可以代替读模块基址EX
取模块基址+易语言
易语言怎么写模块基址
易语言
取EXE模块基址这是干啥的
易语言+x64取模块地址
易语言位图句柄取位图模块源码
追风模块取模块基
追风取模块