以下是阿冲老师跟大家一样零起点开始学的个人心得:
(1)什么是PC 微信hook:
PC 微信 HOOK 是一种修改内存汇编逻辑与数据达到改变执行逻辑与结果的技术,通过这种技 术我们可以实现对PC微信 版本程序的控制和监控,通常会被用于一些自动化脚本程序和数据过滤等场景。
(2)用什么编程语言:
目前市面上主流的辅助开发语言主要是用C++、易语言、python 、C# 这4门语言任选一个都可以。C++(高手的核武器,高手都会)、易语言(辅助模块丰富开发效率高)、python(人生苦短,我只用它,库多开发效率高)、C#(Delphi 作者的作品,多好就不说了)
(3)需要掌握的技术:
要学会基本的调试技术,学会使用64dbg调试,为什么不是OD呢,因为现在主流的大部分软件都转成64位了,微信目前也升级到64位版本了,熟练掌握64dbg就显得很重要,然后在学会CheatEngine 扫描数据就可以了。 64dgb+CE 就可以分析调试数据了。
A 掌握DLL注入 、APIhook、任意地址hook 、函数JMP跳转偏移计算等。
B 掌握 远程Hook ,远程CALL技术、无痕注入等
C 掌握,调试中数据回溯技术,日志分析技术,特征码定位更新技术。
D 了解常见的检测技术,并调试分析检测点进行防封处理。
64位微信hook需要掌握:64位下的InlineHook 跳转技术。
第1种 利用push+ret 让Hook的位置跳转为我们的地址,push用来 开栈就可以了。
Push 函数地址(8个字节)
mov dword ptr ss:[rsp + 4],
ret
第2种 原理: rax + jmp + push 进行恢复还原 reg 代表任意寄存器
push reg
mov reg,address
jmp reg
pop reg
第3种 原理: jmp + rip 进行寻址. 进行跳转 64位程序可以使用rip寄存器
jmp qword ptr ds:[rip]
(4)总结: 总之要学会抄学网上开源的各种微信hook源码,不是原原本本抄下来,是要参考吸收老师们的调试思路,参考老师们的源码写法,要学会知其所以然。试着跟着图文教学流程,做一遍然后记录下来,自己参考老师的源码写出属于自己风格的源码,并加以创新,才能真正掌握。