設為首頁收藏本站

艾歐踢論壇

 找回密碼
 立即註冊

QQ登錄

只需一步,快速開始

搜索
熱搜: 活動 交友 discuz
查看: 208|回復: 0
打印 上一主題 下一主題

Android APP破解去广告完整教程

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2023-4-9 21:47:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1. 解压下载apk文件,修改后缀名为.zip,解压到文件夹中



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





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




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



分析代码:
广告主要使用了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同名



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



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



搜索需要修改的方法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.总结
  • 现在有的apk使用了较好的加密机制,可能解压后classes.dex代码文件被封装进.so文件中,需要另行破解,难度会比较大,这里不作讨论;
  • 据说jar文件里的class文件也能使用工具修改,修改后重新打包成jar,这样可能不用重新签名。本人没有试过,有兴趣的读者可以尝试看看是否有效;
  • smali是Dalvik虚拟机指令语言,语法跟Java不同。在短时间不熟悉的情况下,修改常量、删除方法内容等是比较简单的操作。如果需要其他操作,比如添加类、修改语句等,可以自己建立一个安卓工程,将相同逻辑的Java语句写进去,生成apk解包查看生成的smali语句,再参照这些生成语句修改;
  • 破解成功主要因为这个应用功能较简单,逻辑比较清晰,没进行彻底的混淆,破解其他应用可能难度完全不同。



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



本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?立即註冊

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 轉播轉播 分享分享 分享淘帖
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

小黑屋|Archiver|手機版|艾歐踢創新工坊    

GMT+8, 2024-4-29 16:19 , Processed in 0.254880 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表