前言
Hi,大家好,我是码农星期八,今天来搞点关于逆向相关的,如何去除app的开屏广告。
搞逆向还是需要有一点Java和安卓的基础的,但是真没基础也没事,看热闹不闲事大,搞!
本次测试的app是火柴人突击格斗.apk。
网盘下载地址:
链接:https://pan.baidu.com/s/1pAs-_DLCNpmUSn4z2-c_xg
提取码:mf2b
- 1.
- 2.
安装完毕后,打开游戏会先蹦出来一个广告!
哎,app熟悉的操作,这搞的,那就开始搞吧!!!
用到的工具
AndroidKiller、雷电模拟器。
知识补充
了解安卓开发的知道,AndroidManifest文件是配置文件。
像什么activity,广播,服务,权限等,都需要在这里面配置。
下面也标识出来了,主启动activity的特征是啥。
注:一个apk只能有一个主启动activity!
破解思路
1.app拖入AndroidKiller进行反编译
2.修改AndroidManifest.xml文件
通过知识补充我们知道,AndroidManifest里面配置了主启动activity是什么特征。
那我们来看一下这个火柴人app的主activity吧!
通过查看,可以发现主activity是com.mosads.adslib.Splash.MosSplashActivity,那该怎么证明呢?
可以通过cmd命令adb shell dumpsys window | findstr mCurrentFocus命令查看当前的activity验证。
但是这个app不太好验证,开屏广告蹦的有点快!
。。。
可以换个思路,看看广告之后是哪个activity,然后将它设置为主activity。
通过命令可以发现,主activity是org.cocos2dx.lua.AppActivity。
然后我们在AndroidManifest.xml中发现,它还真存在,但是它并不是主activity。
然后我们将他修改一下,将它设置成主activity,将原来的删除,进行Ctrl+s。
3.回编译
将原来的app卸载掉,安装回编译后的app,你就会发现,好了,广告没了!!!
人间正道
可能这时候你一看,wc,这也不难啊,基本会安卓的都能看懂,不就是利用的安卓的AndroidManifest.xml配置文件原理吗?
我行我也上,然后逮着其他大厂app一波操作,然后。。。反编译失败,哈哈哈!
这是因为一些app可能加壳了或者做了其他操作,所以导致反编译失败,不用担心,随着水平升级,都会解决的!
总结
根据我的猜测,如果能反编译并且回编译成功,80%的app都是可以通过修改AndroidManifest.xml文件来实现app开屏去广告的,并且操作不算太难!