# 更新后某电视频 APP 去广告破解
参考 52pj 大佬教程:https://www.52pojie.cn/thread-1814917-1-1.html
教程中样本软件版本是 1.5.1, 本博客基于更新后的版本 1.6.1 部分操作不一样 大致思路一样的
比较逆天的就是真机启动闪退 只好用模拟器了
# 破解思路
想在 APP 免费看片,有两种路径 一种是看广告,一种是邀请人数也就是推广,这里用的是通过去广告的方法实现免费看片
# 广告分析
许多广告的 SDK 文档百度能搜 就不列举了
jadx 一开就能看见一堆广告相关
# 去广告
广告 SDK 少的话 就直接在文档里找关键的方法 改返回值即可
这个软件就是广告比较多的
关键字:initsdk、loadad、initad 等
SDK 的初始化基本上都在启动类
activity 活动记录先
查找用例可以发现这里 这些一系列方法都是 SDK 的初始化 因为是 void 方法于是把这个 d 方法中间的代码都删了即可 (或加一个 return-void)
VIP 免广告
关键方法:getFree_time ()
# 去除签名校验
(没管签名校验就用算法助手直接 hook)
# 法一 (简单): 注释掉 exit 的地方 (hook)
直接搜 app kill 即可找到三个退出的地方
# 法二 (手撕!): 找到验证 MD5 摘要的地方,在 smail 代码进行一个方法重写让他得到的字符串与校验所需的 MD5 值一样
if 判断找到 obj 参数和 saiFunUtils.f8000c 参数,后者是 app_id 查找后就是 zidian
equals 的值是
13AB01332853FA65AD5C3BA49950A45C 32 位字符串 猜测为 MD5 摘要
找到这个第一个参数的方法,看到 getPackageName () 方法 (多半就涉及到签名信息了)
继续 ctrl + 鼠标左键寻找到这里有 signature 的 f 方法
结合上述以及算法助手 hook 打印 f 方法日志 可以得知这个 w 方法就是获取包的 MD5 摘要再和你的对比
于是 MT 管理器修改 f 方法的 smail 代码
.method public static f()Ljava/util/List;
.registers 2
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 1
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
const-string v1, "F9:6C:E9:5F:D5:47:BE:DF:81:15:E3:71:8A:10:54:45"
#创建了一个新的 ArrayList 实例,然后向列表中添加了一个字符串常量 "F9:6C:E9:5F:D5:47:BE:DF:81:15:E3:71:8A:10:54:45"
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
return-object v0
.end method
# 大坑
经过大佬的分析,该 APP 的签名校验分为 java 层和 native 层 (反射获取签名信息), 改 MD5 只通过了 java 层,仍然会播放失败!(反射介绍:https://www.jianshu.com/p/6277c1f9f48d)
所有导出函数已被混淆 (知识补充:https://blog.csdn.net/jltxgcy/article/details/109012006)
JNI 也被改过 故 so 文件分析困难
大佬的话是说通过其他的一些工具分析出这个 so 其实是通过反射来获取签名的信息 (b 站问了大佬大佬说其他工具是指 funelf,github 上一搜就有)
分析日志可知可以通过 PM 代理的方法代理它的签名信息
手动用 PM 代理是不会的,可以用 MT 管理器自带的去除签名校验功能 (原理其实就是 PM 代理)
# 闪退问题
一开始就要去签名校验,然后才能改包!
# 成功!广告一去,可以看奥本海默了!
布局优化什么的还没搞,直接点观看广告 是不会弹广告的 就是在广告 SDK 初始化的时候让他直接 return-void 了,关键还是签名校验部分吧
这里挂一个百度网盘链接,需要就直接下载吧
6ZO+5o6l77yaaHR0cHM6Ly9wYW4uYmFpZHUuY29tL3MvMWNjNW10Z3Q4eWdaVkduVmlsZXB4YWc/cHdkPXl2eGUgCuaPkOWPluegge+8mnl2eGUgCi0t5p2l6Ieq55m+5bqm572R55uY6LaF57qn5Lya5ZGYVjXnmoTliIbkuqs=