-
-
[分享]Android逆向:smali编码实践 —— 小书亭去除定时广告以及权限未授权弹窗
-
发表于:
2021-3-26 14:31
14389
-
[分享]Android逆向:smali编码实践 —— 小书亭去除定时广告以及权限未授权弹窗
为了学习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。可以看到修改已经生效了。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2021-3-26 14:38
被代吃夜宵编辑
,原因: