艾歐踢論壇
標題:
Android APP破解去广告完整教程
[打印本頁]
作者:
admin
時間:
2023-4-9 21:47
標題:
Android APP破解去广告完整教程
1. 解压
下载apk文件,修改后缀名为.zip,解压到文件夹中
[attach]526[/attach]
其中:
assets文件夹
-- 放原生资源文件
lib文件夹
-- 放引用库文件
META-INF文件夹
-- 放清单文件
res文件夹
-- 放资源文件
AndroidManifest.xml
-- 安卓清单
resources.arsc
-- 主资源文件
以上这些主要跟资源有关,如果需要提取一些图片或声音资源可以直接在文件夹中找,剩下的
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换成实际名字):
apktool d xx.apk
複製代碼
注意:apktool工具版本太老可能会解包失败,这时需要下载一个较新版本的
很快在相同文件夹下就能看到解包后的文件夹,与apk同名
[attach]531[/attach]
进入解包生成的目录中,看到文件夹基本与直接解压类似,不同的是生成了smali文件夹,生成的汇编代码都在里面,目录结构跟包名相同
[attach]532[/attach]
很容易找到需要修改的页面代码
XXXActivity.smali
,用文本编辑器可以直接打开修改。
[attach]533[/attach]
搜索需要修改的方法
adInit_av()
,如下是方法的定义:
<blockquote>.method private adInit_av()V
複製代碼
中间省略号部分是方法的主体,根据上面对代码的分析,删除方法主体就可以。然后找到另外一个方法
adInit_aw()
,同样删除方法主体,保存文件。
4.重新打包签名
修改好之后使用apktool重新打包。
输入命令(
-o
代表输出文件名):
apktool b xx -o xx_new.apk
很快重新生成apk文件,不过这个apk文件不能直接安装的,因为没有签名。使用
安卓逆向助手
进行签名。
因为使用的是非官方签名,与官方的APP是不兼容的,安装前先需要卸载官方的,安装后也是不能正常升级的。
运行一下,一切正常,广告没有了,世界清静了~~~
5.总结
现在有的apk使用了较好的加密机制,可能解压后
classes.dex
代码文件被封装进.so文件中,需要另行破解,难度会比较大,这里不作讨论;
据说jar文件里的class文件也能使用工具修改,修改后重新打包成jar,这样可能不用重新签名。本人没有试过,有兴趣的读者可以尝试看看是否有效;
smali是Dalvik虚拟机指令语言,语法跟Java不同。在短时间不熟悉的情况下,修改常量、删除方法内容等是比较简单的操作。如果需要其他操作,比如添加类、修改语句等,可以自己建立一个安卓工程,将相同逻辑的Java语句写进去,生成apk解包查看生成的smali语句,再参照这些生成语句修改;
破解成功主要因为这个应用功能较简单,逻辑比较清晰,没进行彻底的混淆,破解其他应用可能难度完全不同。
链接:
https://www.jianshu.com/p/89f7e509305b
歡迎光臨 艾歐踢論壇 (http://www.iot.idv.tw/ucenter/)
Powered by Discuz! X3.2