Android Killer篡改信息、修改包名和去除广告

1 基本介绍

Android Killer是可视化界面的一款反编译软件,省去了利用编译工具进行反编译的繁琐步骤,这里简单的说一下利用工具进行反编译的步骤:

  • Apktool:谷歌提供的APK编译工具,可以反编译和回编译。APK其实就是一个压缩包,我们完全可以把.apk修改为.zip。通过这种方式来获取资源文件,但是xml会乱码。如果使用Apktool来进行反编译apk就不会出现这种问题;
  • dex2jar:将dex文件转换成jar包;
  • jd-gui:用来查看jar包里面的代码的一种工具。

Android Killer虽然是Android逆向方面的神器,但是Android版本更新迅速,而Android Killer早已不再更新,这不能不说是一个遗憾,而且目前AndroidKiller对高版本的编译会卡在代码的位置。

2 安装与配置

2.1 安装

首先,从网页https://down.52pojie.cn/Tools/Android_Tools/中下载AndroidKiller_v1.3.1.zip,然后解压至指定目录,双击AndroidKiller.exe打开应用程序,如图1所示。

图1 Android Killer主界面

2.2 配置

总共需要配置两个软件的路径,Java的JDKApktool

对于Java的JDK,依次点击主页->配置->Java,选择Java的JDK的bin目录,如图2所示。

图2 配置Java的JDK

对于Apktool,建议从官网https://ibotpeaches.github.io/Apktool/下载最新版,这里我下载的是2.6.0版的Apktool。依次点击Android->APKTOOL管理器->添加->选择默认的Apktool版本,如图3所示。

图3 配置Apktool

3 篡改APK名称和图标

3.1 篡改APK名称

下载完成之后,使用Android Killer打开土豆视频APK(或者直接拖动到Android Killer里面),会自动进行反编译并分析工程文件,完成后的结果如图4所示。

图4 反编译并分析APK

AndroidManifest.xml文件中,找到字符串android:label=”@string/tudou_app_name”,对应的就是APP的名称,如图5所示。

图5 定位AndroidManifest.xml中的APP名称

在工程搜索中搜索字符串tudou_app_name,然后将其值从土豆视频改为猫咪视频,如图6所示。

图6 修改APP名称

3.2 篡改APK图标

AndroidManifest.xml文件中,找到字符串android:icon=”@drawable/icon”,对应的就是APP的图标,如图7所示。

图7 定位AndroidManifest.xml中的APP图标

可以看到android:icon=”@drawable/icon”,表示drawable文件夹下的icon图片就是APP图标,可以全局搜索icon,但是会搜出好多结果,比较麻烦。

这里有一种更快捷的方法,因为MANIFEST.MF保存的是所有文件的签名和Base64编码后的值,当然图标文件签名肯定也在里面,可以在MANIFEST.MF里面进行搜索/icon.png,结果如图8所示。

图8 定位所有的icon.png图标

依次替换图8中所有的icon.png文件,最后,重新打包并编译为APK,依次点击Android->编译->安装,在连接的手机端即可查看到已经修改过名称和图标的APP猫咪视频,如图9所示。

图9 修改过名称和图标的APP

本节篡改APK名称和图标的基本过程可以概况如下:

  • 篡改APK名称:APP -> Android Killer -> 反编译 -> 工程搜索 -> 输入tudou_app_name -> 搜索 -> 修改 -> 编译 -> 手机端 -> 安装运行
  • 篡改APK图标:工程管理器 -> AndroidManifest.xml -> 在MANIFEST.MF中搜索/icon.png -> 替换所有图片 -> 编译 -> 手机端 -> 安装运行

【注意】

  1. 要替换的icon.png图标一定是png格式,不能是jpg、gif或者其他文件格式强制改后缀名改成png,不然编译的时候会报错;
  2. MANIFEST.MF里面进行搜索/icon.png可以快速匹配目标文件,效率更高。

4 修改包名实现应用分身

首先还是把土豆视频APK拖到Android Killer里面,然后在AndroidManifest.xml文件中找到manifest标签中的package属性,这个属性就是APK程序的包名,原来是package=”com.tudou.android”,这里我们改为package=”com.tudou.android.pro”,然后保存,如图10所示。

图10 修改APK的包名

改完包名之后,还得在AndroidManifest.xml里面修改ContentProvider。首先,工程搜索<provider,搜索范围选择在当前文件,在android:authorities属性的值后面全部加上1,如图11所示。

图11 修改android:authorities属性

最后,所有都修改完成之后,就保存、编译、打包,安装测试,如图12所示。

图12 修改APK包名成功

本节修改APK包名和ContentProvider的基本过程可以概况如下:

  • 修改APK包名:工程管理器 -> AndroidManifest.xml -> manifest标签 -> package属性的值 -> 修改 -> 回编译 -> 手机端 -> 安装运行
  • 修改APK的ContentProvider:AndroidManifest.xml -> 搜索<provider字符串 -> 修改所有android:authorities属性的值 -> 回编译 -> 手机端 -> 安装运行

【注意】安装失败的几种原因和解决方法:

  1. 只修改APK包名会引发ContentProvider冲突;解决方案就是修改AndroidManifest.xml文件中所有android:authorities属性的值;
  2. 应用分身的签名信息不同导致无法运行;解决方案是使用相同的签名工具对所有分身APP进行统一签名;
  3. 有些APK在内部使用了包名,只修改包名会导致程序崩溃;解决方案是全局搜索应用程序包名,查看搜索结果,如果是字符串就进行替换,将所有的字符串改为修改后的包名,否则不进行替换。

5 修改资源去广告

在这里,我们对程序的修改思路主要是以下两点:

  1. 删除网络权限
  2. 修改程序入口界面

5.1 去除弹窗广告

因为广告信息是通过网络获取的,所以可以直接删除广告的网络权限,这样APP就无法通过网络获取广告信息了,从而达到去除广告的目的。这里以火柴人突击格斗 APK为例。

下载完成后,安装到手机上,打开APP,我这里没有看到弹窗广告,猜想可能是因为之前的开发者对这个APK的广告信息不再维护或者到期了,如图13所示。

图13 程序入口界面

其中,AndroidManifest.xml文件中与网络有关的权限如下所示:

  • CHANGE_NETWORK_STATE:允许应用程序改变网络状态;
  • CHANGE_WIFI_STATE:允许应用程序改变WIFI连接状态;
  • ACCESS_NETWORK_STATE:允许应用程序访问有关网络的信息;
  • ACCESS_WIFI_STATE:允许应用程序访问有关WIFI网络的信息;
  • INTERNET:允许应用程序打开网络套接字。

【注意】INTERNET权限一定不能删除。因为游戏的更新、游戏资源文件的下载等行为都需要访问网络。

在这里,我们删除AndroidManifest.xml文件中的CHANGE_NETWORK_STATECHANGE_WIFI_STATEACCESS_NETWORK_STATEACCESS_WIFI_STATE这4个权限的标签。

此时,我们已经去除弹窗的广告信息,但是APP还是有长达5秒的广告,但是对应Activity上没有广告,只有一个空白框。因此,我们下一步需要修改APP的入口界面,让其一打开就跳转到游戏的入口界面。

5.2 修改入口界面

首先,我们通过AndroidManifest.xml文件查看所有的activity,如果一个activity同时包含以下两个属性,那这个activity才是入口界面。

1
2
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

然后,下一个问题就来了。我们希望的是进入这个入口页面,而不是广告页面,那怎么处理呢?

当应用程序执行完5秒广告界面后会跳转到程序的入口界面,这时可以在cmd中使用命令adb shell dumpsys activity top来捕获当前的活动页面,如图14所示。

图14 查看当面的Activity界面

接着,在AndroidManifest.xml文件中删除com.mosads.adslib.Splash.MosSplashActivityMAINLAUNCHER属性,在org.cocos2dx.lua.AppActivity中添加MAINLAUNCHER属性,如图15所示。

图15 修改Activity的标签下的属性值

最后,依然是保存、编译、打包、安装测试。在安装Android Killer编译好的APK时,即打开对应的游戏入口Activity界面,而没有打开广告的Activity界面,如图16所示。

图16 成功修改入口界面

6 参考文献

[1]https://blog.csdn.net/freeking101/article/details/105234804


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 xingshuaikun@163.com。

×

喜欢就点赞,疼爱就打赏