🛰️ HDVT
📌 函数: HDVT_申请内存
描述
VT驱动申请内存
原型
__int64 __stdcall HCHDVT_AllocateMemory(__int32 pid,__int32 size);
参数
__int32 pid - 进程PID
__int32 size - 申请内存大小(字节)
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HDVT_申请内存 - 基础示例
.版本 2
.子程序 _申请内存
.局部变量 内存地址, 长整数型
内存地址 = HD内存_申请内存 (0, 0, 4096, 4096, 64)
调试输出 ("内存申请成功,地址: " + 到文本 (内存地址))
HDVT_申请内存 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HDVT_申请内存 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HDVT_释放内存
描述
VT驱动释放内存
原型
__int64 __stdcall HCHDVT_FreeMemory(__int32 pid,__int64 addr,__int32 size);
参数
__int32 pid - 进程PID
__int64 addr - 释放地址(该地址是由HCHDVT_AllocateMemory申请的内存地址)
__int32 size - 申请内存大小(字节)
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HDVT_释放内存 - 基础示例
.版本 2
.子程序 _释放内存
.局部变量 释放结果, 逻辑型
释放结果 = HD内存_释放内存 (0, 8388608, 4096, 32768)
调试输出 ("内存释放成功")
HDVT_释放内存 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HDVT_释放内存 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HDVT_读内存
描述
VT驱动读内存
原型
__int64 __stdcall HCHDVT_Read(__int32 pid,__int64 addr,void* data,__int32 size);
参数
__int32 pid - 进程PID
__int64 addr - 目标地址
void data - 存读数据的缓冲区地址
__int32 size - 读的大小(字节),缓冲区的大小要大于等于读的大小
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HDVT_读内存 - 基础示例
.版本 2
.子程序 _HDDMA读长整数示例
.局部变量 窗口序号, 整数型
.局部变量 进程PID, 整数型
.局部变量 目标地址, 长整数型
.局部变量 长整数值, 长整数型
窗口序号 = 1
进程PID = 1234
目标地址 = 4194304
长整数值 = HDDMA_读长整数 (窗口序号, 进程PID, 目标地址)
调试输出 ("读取长整数值: " + 到文本 (长整数值))
调试输出 ("十六进制: 0x" + 到十六进制 (长整数值))
调试输出 ("详细信息: " + HD通用_获取最近返回json (窗口序号))
HDVT_读内存 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HDVT_读内存 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HDVT_写内存
描述
VT驱动写内存
原型
__int64 __stdcall HCHDVT_Write(__int32 pid,__int64 addr,void* data,__int32 size);
参数
__int32 pid - 进程PID
__int64 addr - 目标地址
void data - 写入数据的缓冲区地址(存要写的数据)
__int32 size - 写的大小(字节),缓冲区的大小要大于等于写的大小
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HDVT_写内存 - 基础示例
.版本 2
.子程序 _写入字节流示例
.局部变量 写入结果, 逻辑型
.局部变量 窗口序号, 整数型
.局部变量 写入地址, 长整数型
.局部变量 字节数据, 字节集
窗口序号 = 0
写入地址 = 8388608 ' 0x800000
' 构建要写入的字节数据
字节数据 = { }
加入成员 (字节数据, 144) ' 0x90 NOP指令
加入成员 (字节数据, 144) ' 0x90
加入成员 (字节数据, 195) ' 0xC3 RET指令
写入结果 = HD内存_写地址字节流 (窗口序号, 写入地址, 字节数据)
.如果 (写入结果 = 真)
调试输出 ("字节数据写入成功")
' 验证写入
.局部变量 验证数据, 字节集
验证数据 = HD内存_读地址字节流 (窗口序号, 写入地址, 取字节集长度 (字节数据))
.如果 (验证数据 = 字节数据)
调试输出 ("字节数据写入验证成功")
.如果结束
.否则
调试输出 ("字节数据写入失败")
.如果结束
HDVT_写内存 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HDVT_写内存 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HDVT_获取模块地址
描述
VT驱动获取模块地址
原型
__int64 __stdcall HCHDVT_GetModule(__int32 pid,char* moduleName);
参数
__int32 pid - 进程PID
char* moduleName - 模块名字(ascii编码)
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HDVT_获取模块地址 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HDVT_获取模块地址 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HDVT_获取模块函数地址
描述
VT驱动获取模块函数地址
原型
__int64 __stdcall HCHDVT_GetModuleFun(__int32 pid,__int64 moduleAddr,char* funName);
参数
__int32 pid - 进程PID
__int64 moduleAddr - 模块地址
moduleName - 函数名字(ascii编码)
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HDVT_获取模块函数地址 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HDVT_获取模块函数地址 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HDVT_无痕HOOK
描述
VT驱动无痕HOOK,过CRC
原型
__int64 __stdcall HCHDVT_Hook(__int32 pid,__int64 addr,void* data,__int32 size,__int32 type);
参数
__int32 pid - 进程PID
__int64 addr - HOOK地址
void data - 写入数据缓冲区
__int32 size - 写入数据缓冲区大小
__int32 type -
0 - 关闭VTHCHDVT_Hook(0,0,0,0,0)
1 - 开启VTHCHDVT_Hook(0,0,0,0,1)
2 - VT写入HCHDVT_Hook(pid,addr,data,size,2)
3 - VT恢复之前HOOK的地址HCHDVT_Hook(pid,addr,0,0,3)
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HDVT_无痕HOOK - 基础示例
.版本 2
.子程序 测试修改Send参数, 长整数型, 公开
.局部变量 窗口序号, 整数型
.局部变量 结果, 长整数型
.局部变量 新缓冲区地址, 长整数型
窗口序号 = 1
' 假设在回调函数中修改发送内容
新缓冲区地址 = 申请内存 (100, 真)
内存_写文本 (新缓冲区地址, "修改后的发送内容", #GB2312)
' 修改发送参数(只修改缓冲区地址)
结果 = HDHOOK_设置拦截Send返回参数 (窗口序号, 64, 0, 新缓冲区地址, 0, 0, 0, 0, 0, 2)
.如果 (结果 = 1)
调试输出 ("Send参数修改成功")
.否则
调试输出 ("Send参数修改失败")
.如果结束
返回 (结果)
HDVT_无痕HOOK - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HDVT_无痕HOOK - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HDVT_远程执行
描述
VT驱动远程插入执行
原型
__int64 __stdcall HCHDVT_RemoteCall(__int32 pid,void* data,__int32 size);
参数
__int32 pid - 进程PID
void data - 执行shellcode首地址(注意
__int32 size - shellcode字节大小
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HDVT_远程执行 - 基础示例
.版本 2
.子程序 测试Lua函数调用, 逻辑型, 公开
.局部变量 窗口序号, 整数型
.局部变量 函数名, 文本型
.局部变量 参数个数, 整数型
.局部变量 结果, 逻辑型
.局部变量 返回值, 文本型
窗口序号 = 1
函数名 = "testFunction" ' Lua脚本中的函数名
参数个数 = 3
调试输出 ("调用Lua函数:", 函数名)
调试输出 ("传递", 参数个数, "个参数")
' 调用Lua函数
结果 = HDLUA_执行CALL (窗口序号, 函数名, 参数个数, 100, 200, 300, 0, 0, 0, 假)
.如果 (结果 = 真)
调试输出 ("Lua函数调用成功")
' 获取函数返回值
返回值 = HD通用_获取最近返回json (窗口序号)
.如果 (返回值 ≠ "")
调试输出 ("函数返回值:", 返回值)
.如果结束
.否则
调试输出 ("Lua函数调用失败")
调试输出 ("请检查函数名是否正确:", 函数名)
.如果结束
返回 (结果)
HDVT_远程执行 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HDVT_远程执行 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HCHDVT_InjectX64
描述
VT驱动无痕无模块注入X64DLL
原型
__int64 __stdcall HCHDVT_InjectX64(__int32 pid,void* data,__int32 size);
参数
__int32 pid - 进程PID
void data - DLL二进制数据
__int32 size - DLL二进制数据大小
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HCHDVT_InjectX64 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HCHDVT_InjectX64 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HCHDVT_InjectX86
描述
VT驱动无痕无模块注入X86DLL
原型
__int64 __stdcall HCHDVT_InjectX86(__int32 pid,void* data,__int32 size);
参数
__int32 pid - 进程PID
void data - DLL二进制数据
__int32 size - DLL二进制数据大小
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HCHDVT_InjectX86 - 基础示例
.版本 2
.子程序 测试注入JS文件, 逻辑型, 公开
.局部变量 窗口序号, 整数型
.局部变量 JS文件路径, 文本型
.局部变量 结果, 逻辑型
窗口序号 = 1
JS文件路径 = "scripts\automation.js"
调试输出 ("准备注入JavaScript文件")
调试输出 ("文件路径:", JS文件路径)
' 检查文件是否存在
.如果 (文件是否存在 (JS文件路径))
' 注入JavaScript文件
结果 = HD内置浏览器_注入谷歌JS文件 (窗口序号, JS文件路径, 假)
.如果 (结果 = 真)
调试输出 ("JavaScript文件注入成功")
调试输出 ("文件内容已在浏览器中执行")
.否则
调试输出 ("JavaScript文件注入失败")
调试输出 ("请检查文件格式和浏览器连接状态")
.如果结束
.否则
调试输出 ("JavaScript文件不存在:", JS文件路径)
结果 = 假
.如果结束
返回 (结果)
HCHDVT_InjectX86 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HCHDVT_InjectX86 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HDVT_安装插件X64
描述
VT驱动无痕无模块安装X64插件到目标进程中
原型
__int64 __stdcall HCHDVT_InstallPlugX64(__int32 pid);
参数
__int32 pid - 进程PID
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HDVT_安装插件X64 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HDVT_安装插件X64 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")
📌 函数: HDVT_安装插件X86
描述
VT驱动无痕无模块安装X86插件到目标进程中
原型
__int64 __stdcall HCHDVT_InstallPlugX86(__int32 pid);
参数
__int32 pid - 进程PID
返回值
查看返回值表
注意事项
需要调用HCHD_LoadDrv2传递参数2来安装HDVT驱动
HDVT_安装插件X86 - 进阶用法
.版本 2
.子程序 示例2
调试输出("示例2")
HDVT_安装插件X86 - 高级应用
.版本 2
.子程序 高级示例
调试输出("高级示例")