i_f25.png (4.8 KB, 下载次数: 0)
下载附件
2020-7-5 20:45 上传
趁着周末还有点时间,发个去广告的教程吧,好像本论坛并没有专门的帖子讲这个方面的内容。我接触安卓逆向时间不长,最多5个月的时间,所以我自己只能写新手教程,不太适合老手/专业工程师看。接触安卓之前倒是玩过upx脱壳什么的,winrar去广告解除锁定什么的我还会,难一点的就不懂了。
穿山甲广告和腾讯广告的去除方法都是个人的经验之谈,因为有些是根据DDMS或者app运行、崩溃记录得出来的结论,你问我为什么要这么搜,我只能说是手机告诉我的这么搜的。当然方法不一定好,如果你有更好的方法欢迎交流。
1 (1).jpg (175.99 KB, 下载次数: 0)
下载附件
2020-7-5 20:53 上传
"
1 (2).jpg (40.43 KB, 下载次数: 0)
下载附件
2020-7-5 20:53 上传
"
1.png (393.7 KB, 下载次数: 0)
下载附件
2020-7-9 15:31 上传
"
现在教程开始,小白新手建议使用MT管理器进行操作,我现在用的是电脑,反编译工具为ApkToolAid,smali编辑器为自带功能,或者使用Notepad++。软件如果是加固的请自行解决,本帖使用的app均已经过处理。
如果是混淆的app请自行解密!
1.png (41.63 KB, 下载次数: 0)
下载附件
2020-7-5 20:58 上传
首先是企鹅广告。
一、腾讯广告修改之去权限:AndroidManifest.xml
方法一针对多数情况下的开屏广告、内置横幅广告。
现在以某款热门软件为例,首先打开apk压缩包,把assets\gdt_plugin下的gdtadv2.jar文件删掉,少数app删掉这个文件以后就没有广告了,但是大多数还是有的。
接着打开AndroidManifest文件,搜索【
qq.e
】,把相关的权限删掉即可,此时80%的app将无法显示广告。
1.png (64.42 KB, 下载次数: 0)
下载附件
2020-7-5 21:15 上传
如图,com.qq.e.comm.DownloadService和com.qq.e.ads开头的都要删掉。
当然你也可以查看app启动顺序,改一下启动界面,看看app是否正常进入。相关教程:https://www.52pojie.cn/thread-1210314-1-1.html、https://www.52pojie.cn/thread-1156372-1-1.html
二、修改dex去腾讯广告
当方法一不适用时,可以使用本方法。比如有权限检查,删掉腾讯广告权限以后出现卡屏白屏、闪退的情况。
方法二针对开屏广告和内置横幅广告。
首先根据权限路径去找
LandscapeADActivity
文件和
PortraitADActivity
文件,删掉图中红框代码。
1.png (89.16 KB, 下载次数: 0)
下载附件
2020-7-5 21:26 上传
让他直接return-void即可。除了这两个文件,ADActivity等都是可以删掉的,即使不禁用、删除权限也是可以达到去广告的目的。
三、修改方法名去腾讯广告
当以上2种方法都无法干掉腾讯广告时,可以尝试第三种方法。比如牛皮癣类型广告,多数置于浏览页内,比如漫画浏览、小说浏览,下滑列表等。
方法三针对顽固横幅广告。
反编译后搜索代码【
.method public loadAD
】,MT管理器上搜索方法名loadAD,凡是方法代码中包含return-void的,都把它放到第一行,不让他继续往下走。有多少个就改多少个,也不多。
1.png (65.38 KB, 下载次数: 0)
下载附件
2020-7-5 21:42 上传
如上图,改成:
[ol]
"
接着是穿山甲广告。
穿山甲广告在权限里面是com.bytedance开头的,但是删掉没用任何作用,广告也去不掉,好像都没有任何影响……姑且先删掉好了
穿山甲广告还是比较简单的,首先搜索字符串【
穿山甲管理员
】,转换为Unicode是【\u7a7f\u5c71\u7532\u7ba1\u7406\u5458】,MT管理器可以直接搜字符串。如果有字符串加密了需要解密才能搜索。
1.png (51.07 KB, 下载次数: 0)
下载附件
2020-7-5 21:55 上传
如图,选择只有1个结果的那个文件。打开看看会有什么内容。
定位到【a(Lcom/bytedance/sdk/openadsdk/a/b;)Z】这个方法。
1.png (113.92 KB, 下载次数: 0)
下载附件
2020-7-5 22:00 上传
完整的字符串是【
广告请求开关已关闭,请联系穿山甲管理员
】,关键代码如下:
[ol]
1.png (113.55 KB, 下载次数: 0)
下载附件
2020-7-5 22:09 上传
回到穿山甲管理员的开关,改法如图,删掉红框部分即可。
1.png (43.56 KB, 下载次数: 0)
下载附件
2020-7-5 22:14 上传
改成:
[ol]
此时99%的app已经无法显示穿山甲广告了。
最后是百度广告
同qq,先把bdxadsdk.jar删掉,AndroidManifest不用理。样品app为某款天气app,有很多的百度广告和新闻。
反编译后搜索文件夹【
com/baidu/mobads/openad
】的方法名【
addEventListener
】,电脑上搜索【
.method public addEventListener
】即可。根据DDMS的运行记录来看,完整的方法名是addEventListener(Ljava/lang/String;Lcom/baidu/mobads/openad/interfaces/event/IOAdEventListener;)V,当然不用搜那么长。
1.png (167.79 KB, 下载次数: 0)
下载附件
2020-7-9 15:56 上传
根据搜索结果打开com/baidu/mobads/openad/c/c这个文件,找到addEventListener这个方法名,直接让他结束即可。当然下面还有一个dispatchEvent和removeEventListener,都是可以直接让他结束掉的,不影响app运行。
1.png (56.92 KB, 下载次数: 0)
下载附件
2020-7-9 16:06 上传
改成:
[ol]
如果还弹出广告这时候应该考虑是app自身的推广广告了,和三大广告商无关。本帖置顶楼层有其它方案,不过“查找重写方法”我估计没几个人知道怎么弄,那个是MT管理器的功能。
"
最后是删除/禁用权限引起的app崩溃、卡死问题。
特别教程一:强删AndroidManifest.xml下的qq广告权限
现在以软件“活照片”为例进行分析,注意:通用教程只分析qq广告的文件,并不是针对软件定制方法。因为涉及到DDMS的使用和日志分析,过程很麻烦。所以我简化教程直接说结果,适合大部分app。
该app禁用qq广告权限以后会导致卡屏,但是他不会崩溃。问题根源来自com/huanshi/talkingphoto/LaunchActivity下的fetchSplashAD方法,但是现在我不改那里,当前目的是要把权限删掉而且可以进入app。
先去下个原版,反编译后搜索com\qq\e路径下的字符串【
Exception While check SDK Env
】,qq广告自带的权限检测,80%的app都会调用此处。只有一个结果,定位到【.method public static a(Landroid/content/Context;)Z】。
1.png (119.56 KB, 下载次数: 0)
下载附件
2020-7-6 11:09 上传
1.png (121.09 KB, 下载次数: 0)
下载附件
2020-7-6 11:13 上传
java代码如上图,可以发现图中的get
ADActivity
Name、get
PortraitADActivity
Name等就是对应AndroidManifest里面的com.qq.e.ads.ADActivity、com.qq.e.ads.PortraitADActivity等权限。所以直接让该方法返回1即可绕过权限检查。改成:
[ol]
然后你怎么改AndroidManifest都不会出现卡屏现象了。
因为该软件属于顽固广告,需要用到方法3去除qq开屏广告。
特别教程二:强删AndroidManifest.xml下的其它权限
其它权限比如定位、电话等敏感问题。部分app禁用/删除、拒绝以后会卡死闪退。不找样品app了,本来想找个流氓软件,貌似不好寻找,直接文字描述好了。
比如某款app,删除了定位权限后FC,代码搜索【
_LOCATION
】,结果可能有android.permission.ACCESS_BACKGROUND_LOCATION、android.permission.ACCESS_COARSE_LOCATION等,这些都是定位权限。所在方法直接return-void即可,目的就是不给他检查必要权限。建议用MT管理器进行操作,MT管理器反编译时会有权限说明,一目了然。
如果还是闪退,这时候需要考虑签名校验问题了。