仅提供实现思路, 毕竟这个网上资料也较少,思路值千金。

主流

目前手游逆向分为下面这几类
  • 图色 (类似按键精灵)
  • 封包 (通常用于模拟器x64)
  • 内存 (通常用于真机)分为 Android 和 IOS 两大阵营
  • 脱机 (脱离客户端纯代码与服务器交互)难度较大

易语言的使用优先级都是最高的,易语言写中控台效率相对是最高的。


现在主流的游戏引擎分为

  • cocos
  • unity3d 主流(分为 2cpp 和 mono 又可以 2lua)
  • ue4
想学习 Unity 开发的话可以去找博主师傅 猴哥 联系博主可以课程打折

Lua

现在用到 lua 的游戏还是挺多的,无论是 cocos 还是 u3d


当然我们可以通过修改后重新打包的方式来处理, 但我这里说到的是另外一种方式! 毕竟方法不嫌多。

我们在解析普通 lua 非 luajit 的时候,有两种方法解密

  1. 在 so 中定位 luaL_loadbufferx 这个点来 hook 可以拿到解密后的明文 Lua 文件 (当然是在未混淆的情况下)
  2. 静态分析解密 Lua

那么我们拿到 Lua 文件后,想要插桩分析的话, 可以考虑使用 hook 替换的方法, 实现步骤如下:

  1. 现在 lua 可疑点中加入 debug.traceback() 获取堆栈
  2. 写一个保存输出函数,讲调试信息输出到本地 log 日志
  3. 修改后的 lua push 到手机中。
  4. hook so 中的 luaL_loadbufferx 替换原本的 lua 为我们插桩后的 lua 文件
这样一来执行的 lua 就会动态的被替换为我们修改后的 lua 文件

前提

  • 需要熟悉 Lua 语言,否则这个流程都写不出来
  • C# 也是需要会的
  • java 、 C++ 这些也是必不可少的
  • 汇编(根据不同平台)
  • hook 调试
  • 编码、封包、组包、解包这些都要熟悉才行
  • 最后就易语言

当然如果你只是写图色脚本的话, 可以无视上面的前提直接怼就是完事了

Last modification:February 23, 2021
如果觉得我的文章对你有用,请随意赞赏