下你所需,载你所想!
汇集开发技术源码资料

Pc微信Hook.Dll通讯系统模块源码

:42.46 MB :1 :2019-10-01 20:47:40

部分简介

回调偏移 = 寻找字节集 (调用数据, { 232 }, )
原字节集 = 取空白字节集 (5)
写入长度 = 取字节集长度 (调用数据)
JPM_地址 = VirtualAlloc (0, 1024, 位或 (#无法载入的常量, #无法载入的常量), #无法载入的常量)  ' <!!!> <!!!> 申请地址
.如果 (是否前置 = 真)
    回调偏移 = 回调偏移 + 5
    WriteProcessMemory (-1, JPM_地址, { 232 } + 偏移计算 (JPM_地址, Call地址), 5, 0)  ' 写入被覆盖掉的Call
    WriteProcessMemory (-1, JPM_地址 + 5, 调用数据, 写入长度, 0)  ' 写入我们的Hook数据
    WriteProcessMemory (-1, JPM_地址 + 5 + 写入长度, { 233 } + 偏移计算 (JPM_地址 + 写入长度 + 5, Hook地址 + 5), 5, 0)  ' 跳回Hook后下条执行的地址
    WriteProcessMemory (-1, JPM_地址 + 回调偏移, 偏移计算 (JPM_地址 + 回调偏移 - 1, 回调地址), 4, 0)  ' 写入我们的函数地址
.否则
    WriteProcessMemory (-1, JPM_地址, 调用数据, 写入长度, 0)  ' 写入我们的Hook数据
    WriteProcessMemory (-1, JPM_地址 + 回调偏移, 偏移计算 (JPM_地址 + 回调偏移 - 1, 回调地址), 4, 0)  ' 写入我们的函数地址
    WriteProcessMemory (-1, JPM_地址 + 写入长度, { 232 } + 偏移计算 (JPM_地址 + 写入长度, Call地址), 5, 0)  ' 写入被覆盖掉的Call
    WriteProcessMemory (-1, JPM_地址 + 5 + 写入长度, { 233 } + 偏移计算 (JPM_地址 + 写入长度 + 5, Hook地址 + 5), 5, 0)  ' 跳回Hook后下条执行的地址
.如果结束
WriteProcessMemory (-1, Hook地址, { 233 } + 偏移计算 (Hook地址, JPM_地址), 5, 0)  ' 写入Hook的Jmp地址

Pc微信Hook.Dll通讯系统模块源码

热门推荐

相关文章