1个回答
展开全部
要用到3个API 分别是“OpenProcess” ”WriteProcessMemory“ “CloseHandle”
API命令:
OpenProcess:
.版本 2
.DLL命令 API_OpenProcess, 整数型, "kernel32", "OpenProcess", 公开, 打开一个已存在的进程对象,并返回进程的句柄。
.参数 访问方式, 整数型, , 渴望得到的访问权限(标志)
.参数 是否可以被子进程继承, 整数型, , 是否继承句柄
.参数 进程标识, 整数型, , 进程标示符(PID)
WriteProcessMemory:
.版本 2
.DLL命令 API_ReadProcessMemory整数型, 逻辑型, "kernel32.dll", "ReadProcessMemory", , 读内存
.参数 进程句柄, 整数型, , 由OpenProcess返回的进程句柄 如参数传数据为 -1 目标进程为自身进程。
.参数 读取的内存地址, 整数型, , 要读的内存首地址。
.参数 保存数据的缓冲区, 整数型, 传址, 读取回来的整数型内容
.参数 读取的字节数, 整数型, , 要读取回来的字节数
.参数 实际读取的字节数, 整数型, , 返回实际读取的字节数 非零值代表成功。
CloseHandle:
.版本 2
.DLL命令 API_CloseHandle, 逻辑型, , "CloseHandle", 公开, 关闭内核对象
.参数 要关闭的句柄, 整数型, , [API_OpenProcess]返回值
----------------------------------------------------------------------------------------------------------------------
子程序:
.版本 2
.子程序 写内存整数型, 逻辑型, 公开, 对指定进程 内存地址 写入整数型内容;成功返回真,失败返回假
.参数 进程ID, 整数型, , 进程标示符(PID)
.参数 内存地址, 整数型
.参数 写入数据, 整数型
.局部变量 局_对象句柄, 整数型
.局部变量 局_返回值, 整数型
.局部变量 局_判断返回, 整数型
局_对象句柄 = API_OpenProcess (#PROCESS_ALL_ACCESS, 0, 进程ID)
API_WriteProcessMemory整数型 (局_对象句柄, 内存地址, 写入数据, 4, 局_判断返回)
API_CloseHandle (局_对象句柄)
.如果真 (局_判断返回 > 0)
返回 (真)
.如果真结束
返回 (假)
#PROCESS_ALL_ACCESS = 2035711
更多追问追答
追答
那就把这个API参数改成小数型的就可以了
.版本 2
.DLL命令 API_ReadProcessMemory小数型, 逻辑型, , "ReadProcessMemory", , 读内存
.参数 进程句柄, 整数型, , 由OpenProcess返回的进程句柄 如参数传数据为 -1 目标进程为自身进程。
.参数 读取的内存地址, 整数型, , 要读的内存首地址。
.参数 保存数据的缓冲区, 小数型, 传址, 读取回来的小数型内容
.参数 读取的字节数, 整数型, , 要读取回来的字节数
.参数 实际读取的字节数, 整数型, , 返回实际读取的字节数 非零值代表成功。
再改下子程序
.版本 2
.子程序 写内存小数型, 逻辑型, 公开, 对指定进程 内存地址 写入小数型内容;成功返回真,失败返回假
.参数 进程ID, 整数型, , 进程标示符(PID)
.参数 内存地址, 整数型
.参数 写入数据, 小数型
.局部变量 局_对象句柄, 整数型
.局部变量 局_返回值, 整数型
.局部变量 局_判断返回, 整数型
局_对象句柄 = API_OpenProcess (#PROCESS_ALL_ACCESS, 0, 进程ID)
API_WriteProcessMemory小数型 (局_对象句柄, 内存地址, 写入数据, 4, 局_判断返回)
API_CloseHandle (局_对象句柄)
.如果真 (局_判断返回 > 0)
返回 (真)
.如果真结束
返回 (假)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询