首页
社区
课程
招聘
[分享]Android逆向:smali编码实践 —— 小书亭去除定时广告以及权限未授权弹窗
发表于: 2021-3-26 14:31 14390

[分享]Android逆向:smali编码实践 —— 小书亭去除定时广告以及权限未授权弹窗

2021-3-26 14:31
14390

为了学习Android逆向特地下载了一个盗版小说的APP,准备去掉广告以及授权的弹窗,以此来增加对smali语法的熟悉度。

执行命令 java -jar apktool_2.5.0.jar d 经典小书亭-1.3.0.apk

编译成功后会生成一个与apk同名的目录里面就是反编译后的文件了,如图:
​​​​​​​​

这里我的习惯是先打开日志打印,在代码中经过搜索发现app的日志打印是由 com/reader/vmnovel/utils/MLog 类来完成,和大多数开发人员使用的方法一样这里也是使用一个boolean开控制日志的打印。

这里直接写死isShowLog为true,当然也可以去掉if判断,这样日志就可以打开了。接下来是打包APK查看修改结果以及日志:

为了方便使用乐固提供的签名工具进行签名后运行,运行后查看控制台果然日志能够打印出来了,查看发现在打开小说之后有一个会定时打印一个日志 “是否显示广告”,因此可以推断这里是在XsApp类中使用的计时器,当到了指定时间显示广告弹窗。

由此可见我们关掉这个计时器或者关掉弹窗显示就可以阻止弹窗了。直接在代码中搜索 "是否显示广告" 结果没查到!在XsApp类找了一圈之后发现原来是中文转换成了unicode,如图:

根据上面的:cond_5我们可以看看是什么情况下会跳转:cond_5,只要一直跳转:cond_5那么就不会显示广告弹窗了。经过查找发现有两处地方会跳转,那么只要在第一处进行跳转就可以满足了,这一处的值是l()Z返回的。

这个l()方法就是我们的关键,当然这里直接设置v0也是可以的,但是为了增加熟练度,我决定还是多写点代码修改l()Z方法,找到后直接删除里面逻辑,然后加了个日志打印。

再次打包签名后查看logcat。可以看到修改已经生效了。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-3-26 14:38 被代吃夜宵编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 173
活跃值: (3831)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
牛逼,如果一些防护功能在Java层写的话,也可以通过修改smali代码来进行绕过,当然了,能hook就hook
2021-3-27 16:03
0
雪    币: 982
活跃值: (426)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
有apk链接吗
2021-10-18 20:01
0
雪    币: 222
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
andyhah 有apk链接吗
标题里有诶,小书亭
2021-10-20 17:52
0
游客
登录 | 注册 方可回帖
返回
//