目标游戏: sxd3 任务:获取该游戏客户端 lua 源码 lua 脚本在 ab 包中 ,游戏每次进入都要重新解压 ab 包读取 lua 脚本libslua 是该游戏使用的 lua+unity 加载框架 ,在 unity 层有很多和 lua 交互的封装接口查看官方文档 https://github.com/pangweiwei/slua/blob/…
在 frida 中调用 Foundation框架的函数 先说使用 OC 函数简单粗暴丢上来我的工具代码 //打印 NSDictionary function printNSDictionary(dic) { // body... var dictionary = new ObjC.Object(dic); var allKeys = diction…
之前一直只用 frida 来打印 il2cpp 注入后的函数,今天遇到一个游戏,需要在 unity 层去注入lua,因为用的 xlua 框架,从 so 里面注入无法注入。 分析了一段时间后,可以从从 il2cpp_string_new 这个函数入手 const il2cpp = Module.findBaseAddress("libil2cpp.s…
今天遇到一个游戏,用的 lua5.4 ,基于xlua 开发的,我尝试了几个方向都不能正常的注入lua。 就不能通过 g 表来 注入篡改逻辑。 想着不能注入明文 lua ,不如我用 C 写一遍吧。代码在下面: void print_table(lua_State* L, int index) { // 如果不是 table 类型,直接打印其值 if …
很多时候我们逆向应用的时候,目标参数并不是明文的内容。可能在 list 里面,或者就是某个 bean。或者我们要主动调用某个函数,需要传进去对象。 那这个时候我们应该怎么处理呢,我在这里简单分享一下 用 toast 举例 很多时候我们破解的方向是根据 toast 来做突破的,比如现在有个游戏在你重打包签名后,弹出 toast “当前应用为破解应用,…
年初的时候搞的一个游戏,一直陆陆续续搞,弄了很久,那个时候还没离职,现在换了新公司之后,专心搞逆向,就把这个游戏找出来,练习一下。 游戏原版样本链接在这 https://share.weiyun.com/0DVjK9xK 是一个比较好玩的单机游戏,当时找的时候是 google 商店 单机排行第一。 简单尝试 当时的需求已经忘记了,只记得这个游戏有个…
遇到问题,初步分析 最近遇到一个很老的 cocos2djs 游戏,用的引擎是 SpiderMonkey ,需要对这个游戏做一下修改。 先分析一下这个游戏的 js 文件,打开 assets 一看,加密了。每个加密文件都是 统一的 header icegame 开头的,初步判定是 cocos2d 自己的 xxtea 加密 把 libcocos2djs.…
有时候定位到了关键的 native 函数,但是调用方有很多,不知道触发关键行为的时候 是谁调用的这个逻辑,这个时候就需要 frida-trace 来追踪 native 函数的调用了 当追踪的函数有符号时 frida-trace -U com.a.b.c -i "gettimeofday" //支持 正则匹配 比如 frida-trace -U co…
一.安卓逆向基础(建议1周) 1. 学习安卓逆向第一步必须先把环境搭建好,这是你学习安卓逆向的开始,环境搭建好后表示正式迈入安卓逆向。在环境安装的工程中会遇到很多细节上的问题。 2. 第二步就是要了解我们要分析的是什么文件,很多0基础的同学都不知道安卓逆向分析的什么文件。我们要分析的是应用程序或者安装包(就是.apk文件),了解apk是怎么生成的以…
处理 根据上一节总结的内容,在有 sim 卡的手机上会出现闪退,报错 log 是native 层的。 代码跳转到 ida 的逻辑,查看 对应的 native 代码 看到在进入游戏之后调用了 talingdata 的 登录逻辑,这里的登录逻辑会根据手机信息 生成 deviceid ,因为我们手机有手机卡,而且我们替换了签名,所以这里面的逻辑会导致崩溃…