模块版本:3.31
所用系统:XP
命令名称:
BUG描述:读文本 字节集到文本的转换错误
我的联系QQ:451945384
原代码如下:
.版本 2
.子程序 读文本, 文本型, 公开, 读取文本型数据(返回文本 失败返回空文本)
.参数 进程ID, 整数型
.参数 内存地址, 整数型
.参数 长度, 整数型, 可空, 默认为20 欲读取的长度字节
.局部变量 临时字节集, 字节集
.局部变量 操作句柄, 整数型
.如果真 (长度 = 0)
长度 = 20
.如果真结束
' --读文本---------------------------------
临时字节集 = 取空白字节集 (长度)
操作句柄 = OpenProcess (#PROCESS_ALL_ACCESS, 0, 进程ID) ' 取得操作句柄
ReadProcessMemory_字节集 (操作句柄, 内存地址, 临时字节集, 长度, 长度)
CloseHandle (操作句柄)
返回 (到文本 (临时字节集))
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
测试的时候和勇芳-内存数据分析编辑器的结果对比,每次都返回不正确。后看了看,感觉简单的由字节集到文本的转换不太正确。稍稍做一点修改
.版本 2
.子程序 读文本, 文本型, 公开, 读取文本型数据(返回文本 失败返回空文本)
.参数 进程ID, 整数型
.参数 内存地址, 整数型
.参数 长度, 整数型, 可空, 默认为20 欲读取的长度字节
.局部变量 临时字节集, 字节集
.局部变量 操作句柄, 整数型
.局部变量 内容文本, 文本型
.局部变量 p, 整数型
.如果真 (长度 = 0)
长度 = 20
.如果真结束
' --读文本---------------------------------
临时字节集 = 取空白字节集 (长度)
操作句柄 = OpenProcess (16, 0, 进程ID) ' 取得操作句柄
ReadProcessMemory_字节集 (操作句柄, 内存地址, 临时字节集, 长度, 长度)
内容文本 = “”
.计次循环首 (取字节集长度 (临时字节集), p)
.如果 (临时字节集 [p] < 16)
' 内容文本 = 内容文本 + “.”
.否则
内容文本 = 内容文本 + 字符 (临时字节集 [p])
.如果结束
.计次循环尾 ()
CloseHandle (操作句柄)
返回 (内容文本)
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
重新测试OK.目标程序为QQ
此类下的多个命令有此BUG,希望大神改改吧。