本帖最后由 Hayden. 于 2018-5-21 22:47 编辑
老司机的福音,Android反编译入门必备!
现在的广告越来越多了,他无时不刻都在消耗着我们的生命。
为了生活更简洁,这里以快播的孙子影音先锋为例,讲述我与广告的斗争生活!
首先以影音先锋4.9.9.3这个版本为例,下载好开始上金刚钻----Android Killer1.3.1
很快我便遇到了第一组山峰,签名验证。我发现只是去了几条危险权限回编译后就会闪退,果断什么都不改试了一下依然闪图,这肯定是做了签名校验了。
在定位签名校验位置时常用的关键词有sign,signature,checkSign,signCheck,getPackageManager,getPackageInfo,verify,same等,试了一下果然
定位到了代码,但是逻辑太乱,不会改,只好放弃。
去签名验证:原理就是读取原APK安装包的签名信息再程序中欺骗签名验证程序。
一键去签名验证神器https://github.com/fourbrother/kstools
作者说明帖:https://www.wuzuowei.net/7449.html
而我要用到的就是基于这个工具由MT管理器的作者开源的一键去签名校验工具:https://github.com/L-JINBIN/ApkSignatureKiller
大胆猜测2.5.0版的MT管理器的去签名验证就是用的这个工具,不过这个工具只能去除
Java层通过getPackageManager().getPackageInfo.signatures来获取签名信息校验的app,我试过最新版8.5的WIFI万能钥匙就不行。
下载后按说明运行run.bat批处理文件,直接生成去效验的apk文件。
把去效验的文件拖入Android Killer反编译,开始去广告:
主要是去除启动页广告,干掉启动页。
程序入口为WelcomeActivity.java,所以把入口更改到主界面MainActivity.java,如果不知道哪个是界面可以到WelcomeActivity中查看跳转信息。
而更改主界面就靠修改AndroidManifest.xml中<intent-filter>元素来完成
也就是下面这段代码在哪一个activity下,哪一个activity就是主界面,即程序入口。
[XML] 纯文本查看 复制代码
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
所以我们把WelcomeActivity下的这段代码剪切到MainActivity下就可以跳过启动页直接进入主界面了,也就把启动广告给去除了,这种方法有时候会连内部广告都去除,因为有些广告是在启动页里加载的,如果跳过了启动页他们也就没法加载了。
禁版本更新:
静止更新有很多种方法,如修改版本号法,禁止查询更新版本法,以及禁止显示法(就是不让应用显示更新对话框或者通知栏消息)。
这里我采用了禁止查询更新版本法。
首先工程搜索版本4.9.9.3没有结果,接下来打开apktool.yml文件找到版本号4993
搜索版本号4993找到以下几条,其中一句很容易就能知道是判断版本的,直接用浏览器可以查看到新版本信息。
把这句的网址改成无效地址就可以了,比如“https://hayden.cc”,这样应用检查不到新版本应用信息自然也就不会再提示更新弹出对话框或通知栏信息。
接下来去除应用危险权限就可以打包了安装使用了。
去除红色部分危险权限权限,让我们用的更放心。
记录结束,开始你们的尝试吧!
福利奉上,原版+修改版:链接:https://pan.baidu.com/s/11sQ-ziMmwPLrj-ebOPpsdg 密码:d8w5
欢迎观看我的上一篇教程帖:【处女作】【内购】【去广告】【教程】史上最干净的《登山赛车》!
请文明评论,真心评分!
|