艾歐踢論壇

標題: Android APP破解去广告完整教程 [打印本頁]

作者: admin    時間: 2023-4-9 21:47
標題: Android APP破解去广告完整教程
1. 解压下载apk文件,修改后缀名为.zip,解压到文件夹中

[attach]526[/attach]

其中:
以上这些主要跟资源有关,如果需要提取一些图片或声音资源可以直接在文件夹中找,剩下的classes.dex文件就比较重要了,它是安卓中classes类的打包格式,代码都在这里面。
2.查看jar查看代码需要将dex文件转换为jar文件,这里推荐一款软件“安卓逆向助手”


[attach]527[/attach]


里面集成了apktool、autosign、dex2jar、jd-gui等常用工具,十分方便。
这里选择其中的dex2jar功能,源文件浏览选中解压出来的classes.dex文件,点击操作按钮,即可自动生成classes_dex2jar.jar文件。
再选jd打开jar功能,就可以调用jd-gui查看jar文件了。

[attach]528[/attach]


jd-gui中可以看到,大部分代码经过了混淆,而且经过编译器优化后的代码跟源码会有所不同,不过逻辑还是一样的,认真看还是能大致看懂。
3.寻找广告页面和代码
要找到广告页面的Activity,将手机连接电脑,在Android Studio或Eclipse的logcat中会输出日志,在日志搜索栏输入“ActivityManager”,这样启动广告页面时,log中就能看到Acitivty的全名,然后在jd-gui中找到这个Activity。

[attach]529[/attach]

分析代码:
广告主要使用了adStream和adwo这两个view,它们分别在adInit_av() 和 adInit_aw()这两个方法中初始化和添加到页面。如果修改这两个方法,不让它们初始化和添加,那么就达到目的了,同时其他用到这两个view的地方要进行判断,防止引起程序崩溃,幸运的是原代码中已经对它们进行了空判断。
3.解包修改smali汇编代码
找到广告页面和方法后需要修改,直接改jar文件肯定是不行的,需要对原apk文件进行解包,解包后生成的smali文件可以直接用文本编辑器修改。解包使用apktool,将apk文件
(如果刚才改成了.zip,就改回.apk)复制到apktool文件夹下,输入命令(xx.apk换成实际名字):
  1. apktool d xx.apk
複製代碼

注意:apktool工具版本太老可能会解包失败,这时需要下载一个较新版本的
很快在相同文件夹下就能看到解包后的文件夹,与apk同名

[attach]531[/attach]

进入解包生成的目录中,看到文件夹基本与直接解压类似,不同的是生成了smali文件夹,生成的汇编代码都在里面,目录结构跟包名相同

[attach]532[/attach]

很容易找到需要修改的页面代码XXXActivity.smali,用文本编辑器可以直接打开修改。

[attach]533[/attach]

搜索需要修改的方法adInit_av(),如下是方法的定义:
  1. <blockquote>.method private adInit_av()V
複製代碼

中间省略号部分是方法的主体,根据上面对代码的分析,删除方法主体就可以。然后找到另外一个方法adInit_aw(),同样删除方法主体,保存文件。
4.重新打包签名
修改好之后使用apktool重新打包。
输入命令(-o代表输出文件名):
apktool b xx -o xx_new.apk

很快重新生成apk文件,不过这个apk文件不能直接安装的,因为没有签名。使用安卓逆向助手进行签名。

因为使用的是非官方签名,与官方的APP是不兼容的,安装前先需要卸载官方的,安装后也是不能正常升级的。
运行一下,一切正常,广告没有了,世界清静了~~~
5.总结


链接:https://www.jianshu.com/p/89f7e509305b








歡迎光臨 艾歐踢論壇 (http://www.iot.idv.tw/ucenter/) Powered by Discuz! X3.2