.版本 2
.程序集 内存操作, , 公开
.子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用
' 版本 2
' DLL命令 RtlMoveMemory, 整数型, "kernel32.dll", "RtlMoveMemory", , ""
' .参数 Destination, 文本型, 传址 数组, "类型为通用型,请在调试时调整其类型"
' .参数Source, 整数型, , "类型为通用型,请在调试时调整其类型"
' .参数 Length, 整数型, , ""
.子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用
.子程序 全局分配分配, 整数型, 公开, GlobalAlloc
.参数 标志, 整数型, , wFlags
.参数 字节, 整数型, , dwBytes
返回 (全局分配分配_ (标志, 字节))
.子程序 释放内存分配, 整数型, 公开, GlobalFree
.参数 内存句柄, 整数型, , hMem
返回 (释放内存分配_ (内存句柄))
.子程序 锁住全局内存块, 文本型, 公开, GlobalLock
.参数 内存句柄, 整数型, , hMem
返回 (锁住全局内存块_ (内存句柄))
.子程序 解锁全局内存块, 整数型, 公开, GlobalUnlock
.参数 内存句柄, 整数型, , hMem
返回 (解锁全局内存块_ (内存句柄))
.子程序 拷贝内存, 文本型, 公开, RtlMoveMemory
.参数 源缓冲区, 字节型, 数组, Source
.局部变量 返回, 文本型
返回 = 取空白文本 (取数组成员数 (源缓冲区))
拷贝内存_ (返回, 源缓冲区, 取数组成员数 (源缓冲区))
返回 (返回)
.子程序 填充内存, 文本型, 公开, $(b) RtlFillMemory
.参数 目的内存, 文本型, , Destination
.参数 填充内容, 字节型, , Fill 例子:取代码("A",)
RtlFillMemory (目的内存, 取文本长度 (目的内存), 填充内容)
返回 (目的内存)
.子程序 内存清零, , 公开, RtlZeroMemory
.参数 目的内存, 文本型, , Destination
.参数 长度, 整数型, , Length
内存清零_ (目的内存, 长度)
.子程序 写内存字节集, 整数型, 公开, WriteProcessMemory写内存 失败返回0 返回值
.参数 进程的句柄, 整数型, , hProcess , 进程的句柄 使用函数 OpenProcess() 返回。
.参数 内存地址, 整数型, , lpBaseAddress,内存地址
.参数 写入数据, 字节集, , lpBuffer, 数据指针 本参数的类型也能是“字节”型。
.参数 数据的长度, 整数型, , nSize,长度 取字节集长度 (数据)
.参数 实际数据的长度, 整数型, , lpNumberOfBytesWritten实际写出长度 一般填写WriteProcessMemory 返回值为0则忽略。
.局部变量 返回, 整数型
返回 = WriteProcessMemory_ (进程的句柄, 内存地址, 写入数据, 数据的长度, 实际数据的长度)
返回 (返回)
.子程序 写内存十六进制路径名, 逻辑型, 公开, 成功返回真 失败返回假
.参数 完整的路径名, 文本型, , 完整的路径名 比如:c:\1.exe
.参数 地址, 文本型, , 例子:地址:0049500B
.参数 修改指令, 文本型, , 例子 修改指令:9090
.局部变量 进程句柄, 整数型
.局部变量 内存地址, 整数型
.局部变量 写入数据, 字节集
.局部变量 返回, 整数型
.局部变量 最终返回, 逻辑型
.局部变量 启动信息数据, 启动信息数据
.局部变量 创建进程返回数据类型, 创建进程返回数据类型
' 进程对象一般设为 2035711 权限 bInheritHandle 一般可以填写0
' GetPriorityClipboardFormat
创建进程_ (完整的路径名, “”, 0, 0, 假, 0, “”, 0, 启动信息数据, 创建进程返回数据类型)
进程句柄 = 创建进程返回数据类型.hProcess
' 最重要一步了 修改内存
内存地址 = 十六进制文本到内存地址整数 (地址)
写入数据 = 十六进制文本到字节集 (修改指令)
返回 = 写内存字节集_ (进程句柄, 内存地址, 写入数据, 取字节集长度 (写入数据), 返回)
' 逻辑型的 默认为假 取反为真
.如果真 (返回 ≠ 0)
最终返回 = 真
.如果真结束
关闭句柄 (进程句柄)
返回 (最终返回)
.子程序 写内存十六进制进程句柄, 逻辑型, 公开, 成功返回真 失败返回假
.参数 进程句柄, 整数型, , 例子:进程句柄:168
.参数 地址, 文本型, , 例子:地址:0049500B
.参数 修改指令, 文本型, , 例子 修改指令:9090
.局部变量 内存地址, 整数型
.局部变量 写入数据, 字节集
.局部变量 返回, 整数型
.局部变量 最终返回, 逻辑型
.局部变量 启动信息数据, 启动信息数据
.局部变量 创建进程返回数据类型, 创建进程返回数据类型
内存地址 = 十六进制文本到内存地址整数 (地址)
写入数据 = 十六进制文本到字节集 (修改指令)
返回 = 写内存字节集_ (进程句柄, 内存地址, 写入数据, 取字节集长度 (写入数据), 返回)
' 逻辑型的 默认为假 取反为真
调用子程序的例子.如果真 (返回 ≠ 0)
最终返回 = 真
.如果真结束
关闭句柄 (进程句柄)
返回 (最终返回)
.子程序 读文本内存, 文本型, 公开, 返回文本 ReadProcessMemory
.参数 进程的句柄, 整数型, , hProcess , 进程的句柄
.参数 内存地址, 整数型, , lpBaseAddress,内存地址
.局部变量 返回, 整数型
.局部变量 字节集, 字节集
字节集 = 取空白字节集 (255)
返回 = 读内存数据_ (进程的句柄, 内存地址, 字节集, 取字节集长度 (字节集), 返回)
返回 (到文本 (字节集))
.子程序 读文本内存进程句柄, 文本型, 公开, 返回文本 ReadProcessMemory
.参数 进程的句柄, 整数型, , hProcess , 进程的句柄
.参数 内存地址, 文本型, , lpBaseAddress,内存地址 例子:地址:0049500B。
.局部变量 返回, 文本型
返回 = 读文本内存 (进程的句柄, 十六进制文本到内存地址整数 (内存地址))
返回 (返回)
.子程序 读文本十六进制路径名, 文本型, 公开, 返回文本 ReadProcessMemory
.参数 完整的路径名, 文本型, , 完整的路径名 比如:c:\1.exe。
.参数 地址, 文本型, , 地址:0049500B。
.局部变量 句柄, 整数型
.局部变量 返回, 文本型
句柄 = 创建进程增强 (完整的路径名)
返回 = 读文本内存进程句柄 (句柄, 地址)
返回 (返回)
.子程序 RtlMoveMemory, 整数型, 公开
.参数 目的地址, 整数型, , pTo
.参数 源地址, 整数型, , uFrom
.参数 长度, 整数型, , lSize
返回 (拷贝内存02_ (目的地址, 源地址, 长度))
.子程序 Process32First, 整数型, 公开, 成功返回1,失败返回0
.参数 快照句柄, 整数型, , hSnapshot
.参数 进程信息, PROCESSENTRY32, , PROCESSENTRY32
返回 (Process32First (快照句柄, 进程信息))
.子程序 Process32Next, 整数型, 公开, 成功返回1,失败返回0
.参数 快照句柄, 整数型, , hSnapshot
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论