hook某聊天软件lab

# 起因是在学安卓逆向,而且自己水平太低,打算练练手。恰巧某友的校内 lab 做了类似的东西,羡慕,遂打算动手尝试复现

# 一、某绿色软件防撤回

首先搜索相关字串 revoke ,找到一个 RevokeMsgEvent ,看起来很像,然后翻找代码,发现了这个 listener 用于接收一个撤回消息事件

# image-20230809174202432

观察这里的 callback 函数,先赋值到一个叫做 revokeMsgEvent2 的 class 上(什么鬼命名… 但是看起来可能挺重要的,marked 一下)

接着合法性检测,不需要管

p0.D 的声明如下

image-20230809175148467

猜测这里是通知一栏,将原通知的属性修改为已撤回的属性,两者参数 string 声明如下:

image-20230809175818647

image-20230809175830933

不好懂,接着往下看

可以明确的是这里的 class h 是和撤回相关操作的类,结合下面的调用,猜测这里就是集中处理撤回用的函数(对本地数据库进行了一些操作与删除),查看一下其声明,均是 revoke 的相关操作,那合理来说不会影响正常的流程,直接 hook 就行。

image-20230809185208738

这里试一下 frida 脚本 hook 的操作。

首先是这里只有 arm 的包,暂时没有物理机做测试,可以用的方案有三个:AS、qemu、商业模拟器

AS qemu 商业模拟器
开发必备 比较折腾,但是稍微比 AS 效率好一点 运行比较流畅,但是版本选择有限,而且还有很多版本和 hyperV 犯冲,选择更加有限

这里选择先用 AS 尝试了一下,配置如下(一点点尝试可以运行起来的 arm 架构):image-20230810132624458

巨慢无比,还不支持 android studio 的一些便携操作,结果和绿色软件的 so 还不兼容… 麻了…

尝试使用 mumuX(亲测只有 mumux 在本机可以和 WSL2 共存,其他声称支持 hyperV 的都会出问题,待修复),会被检测环境,来尝试配一下 qemu

疑似不太行,毕竟 AS 也是基于 qemu 的,该卡照样卡(据说 mac 上用 as 模拟 android 非常流畅…)

然后发现微软自家的 vs 有安卓模拟器,那来尝试一下下

# - to be continue

# 二、某运动软件广告消除以及强制更新破解

# 之前队里一直有跌说加了壳搞不了,但是感觉好像么有点机会,遂来看看,这里是用的一个旧版本,好像对 root 的检测没那么严格,但是也能用,后面有空再调一个新版本的

通过搜索引擎可以找到一个文档,开屏广告 - Android 集成文档 - 开发测试 - 穿山甲广告平台 (csjplatform.com),这个 app 的部分广告大概就是基于这个开发的

大概定位到这个类上,是广告加载用的类

# image-20230810164814274

合理来说把这里 hook 一下

image-20230810165617746

就能消掉大部分和 ad 相关的事件了

但是接着看下去就感觉事情不对头了,这里的 com.fighter.wrapper 疑似只是一个 ad 的处理方法,仔细看左边的包还有一万个不同公司的 ad… 破软件没啥功能,集成的广告不少

image-20230810171514620

而且后面很多广告用的不是这个方法,那就是不能在这层 hook 了,会累死自己,最好的解决方法还是在调用这 n 个广告类前就掐掉源头

可以搜索发现 com.zjwh 应该是这软件自己的包,命名做的手动混淆,全都是 oO0 啥的…

这里发现了反虚拟环境和反 hook 的操作,那看来后面有点点不好整的

image-20230810173613500

另外,可以手动调试发现,apk 启动的时候会与 server 交互获取应用更新信息,然后触发强制更新,交互方法疑似使用的 okhttp , 但是 zjwh 包进行了混淆,与服务器也都用的 okhttp 交互,需要一定工作量找到

进度记录:这里仔细找引用和具体的实现方式

image-20230810212148480

检测 xposed 框架是否存在的方法,也需要 hook 掉

image-20230810213654727

这个包看起来是比较重要的,下面还有检测攻击等等函数:

image-20230810214035445

这个包的源码可以找到一个很类似的(虽然只有部分):

DRiskNativeTool.java - 得物.apk 源代码分析 - 摸瓜 (mogua.co)

然后顺着搜,可以找到 iJiami - Guarding the Smart World | mobile information security service provider 这家公司,专门做安全的,这些安全相关的包就是它家做的了

# image-20230810221152187

到这里就要考虑放弃了,毕竟是商业级的加固,就算级别不高,破解再怎么说也要不小的工程量…