第二十二章 补丁技术
补丁:文件补丁(修改文件本身的某个数据)和内存补丁(对正在运行的程序的数据进行修改,以达到某种效果)
22.1 文件补丁
文件补丁直接修改可执行文件或某功能模块的二进制代码。
22.2 内存补丁
跨进程内存存取机制
Windows提供了两个用于进程间互访内存的函数ReaadProcessMemory和WriteProcessMemory。
Debug API机制
利用调试器机制
利用DLL注入技术
利用HOOK技术
22.3 SMC补丁技术
利用 SMC(Self-Modifying Code)能修改自身代码这个特点,可以对加壳程序直接打补丁,其效果相当于内存补丁。加壳程序执行时都有一个将数据解压并将其写入原始映像基址的过程。在代码刚刚恢复、尚未运行时,在外壳里插人一段补丁代码,就可以给刚解压的数据打补丁了。
22.4 补丁工具
CodeFusion