|
VX版本:3.1.0.41
Hook代码如下:
Hook_Air (m_基址 + 十六进制 (“18A2990”), 5, { 96, 81, 232, 0, 0, 0, 0, 97 }, 到整数 (&获取微信登录信息), 真)
|
Hook_Air | | | |
Hook地址 | 整数型 | | | | 备份长度 | 整数型 | | | | 调用数据 | 字节集 | | | | 回调地址 | 整数型 | | | | 是否前置 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 回调偏移 | 整数型 | | | 原字节集 | 字节集 | | | JPM_地址 | 整数型 | | | 写入长度 | 整数型 | | | 填充Dm | 字节集 | | |
回调偏移 = 寻找字节集 (调用数据, { 232 }, )原字节集 = 取空白字节集 (备份长度 )写入长度 = 取字节集长度 (调用数据 )ReadProcessMemory (-1, Hook地址, 原字节集, 备份长度, 备份长度 ) JPM_地址 = VirtualAlloc (0, 1024, 位或 ( #MEM_COMMIT, #MEM_RESERVE ), #PAGE_EXECUTE_READWRITE ) 如果 (是否前置 = 真)回调偏移 = 回调偏移 + 备份长度 WriteProcessMemory (-1, JPM_地址, 原字节集, 取字节集长度 (原字节集 ), 0 ) WriteProcessMemory (-1, JPM_地址 + 备份长度, 调用数据, 写入长度, 0 ) WriteProcessMemory (-1, JPM_地址 + 回调偏移, 偏移计算 (JPM_地址 + 回调偏移 - 1, 回调地址 ), 4, 0 )WriteProcessMemory (-1, JPM_地址 + 备份长度 + 写入长度, { 233 } + 偏移计算 (JPM_地址 + 写入长度 + 备份长度, Hook地址 + 备份长度 ), 5, 0 ) WriteProcessMemory (-1, JPM_地址, 调用数据, 写入长度, 0 ) WriteProcessMemory (-1, JPM_地址 + 回调偏移, 偏移计算 (JPM_地址 + 回调偏移 - 1, 回调地址 ), 4, 0 )WriteProcessMemory (-1, JPM_地址 + 写入长度, 原字节集, 备份长度, 0 ) WriteProcessMemory (-1, JPM_地址 + 写入长度 + 备份长度, { 233 } + 偏移计算 (JPM_地址 + 写入长度 + 备份长度, Hook地址 + 备份长度 ), 5, 0 ) WriteProcessMemory (-1, Hook地址, { 233 } + 偏移计算 (Hook地址, JPM_地址 ), 5, 0 ) 计次循环首 (备份长度 - 5, ) 填充Dm = 填充Dm + { 144 }计次循环尾 ()如果真 (取字节集长度 (填充Dm ) ≠ 0 )WriteProcessMemory (-1, Hook地址 + 5, 填充Dm, 取字节集长度 (填充Dm ), 0 )
&获取登录信息如下:
变量名 | 类 型 | 静态 | 数组 | 备 注 | 手机 | 文本型 | | | 昵称 | 文本型 | | | 头像 | 文本型 | | | 微信ID | 文本型 | | |
手机 = 内存读文本 (数据地址 - 960 )昵称 = 编码_Utf8到Ansi (内存读字节集 (数据地址 - 1012, 100 )) 头像 = 内存读文本 (内存读整数 (数据地址 - 300 )) 如果 (内存读整数 (数据地址 - 1132 ) ≠ 0 )微信ID = 内存读文本 (内存读整数 (数据地址 - 1132 )) 微信ID = 内存读文本 (数据地址 - 1132 )m_ID = 微信ID客户端发送 (客户端指针, 到字节集 (“GetWx” + #Split + 手机 + #Split + 头像 + #Split + 微信ID + #Split + 昵称 ), , , )
这些地址偏移我都是在CE中测试过得,没啥问题啊,,,但就是获取不到信息,,求高人指点
|
|