前言
  找到偏移之后,就是写辅助工具了。这一篇聊聊写辅助工具的原理。具体的代码细节,等到实战会展开细说。

明确一下
  逆向两个目的
  1、调用功能
  2、获取数据

对应的实现方法
  1、调用功能
    找到偏移,直接调用。
  2、获取数据
    对于全局数据,找到偏移,直接得到。
    对于局部数据,拦截代码,间接得到 。

写外部工具
  1、调用功能
    windows系统提供了接口(CreateRemoteThread),允许一个软件调用另一个软件的功能。
  2、获取数据
    对于全局数据
      windows系统提供了接口(ReadProcessMemory),允许一个软件获取另一个软件的数据。
    对于局部数据
      windows系统提供了调试机制,就是在目标软件设置陷阱,当软件触发到陷阱,会暂停下并且抛出报错信息
      辅助工具监听到报错信息,进而获取目标软件的数据。

写内部工具
  辅助工具,可以写个间谍模块(dll),然后注入到目标软件里面去。
  通过间谍模块,辅助工具就可以操控目标软件,进而调用功能或者获取数据。
  Windows逆向分析入门(四)——代码篇
  1、调用功能
    在内部,可以直接调用
  2、获取数据
    对于全局数据
      在内部,可以直接获取
    对于局部数据
      内部修改代码拦截(HOOK)
      
    正常流程:步骤1 -> 步骤2
    拦截流程:步骤1 -> hook拦截 -> 步骤2
    Windows逆向分析入门(四)——代码篇

理论上的东西,差不多这样,下一篇,聊逆向分析用到的工具。

工具和教程,放群里(163419350),方便交流。
实战代码放在github:https://github.com/KongKong20/WeChatPCHook

相关文章: