关闭

Android中利用AXMLEditor工具不进行反编译就篡改apk文件

4373人阅读 评论(5) 收藏 举报
分类:

一、问题描述

在上一篇文章,我们已经介绍了如何修改arsc文件,直接利用AXMLEditor工具进行二进制文件修改,可以实现对属性和标签的增删改。这样我们就不需要在反编译apk文件,然后修改xml在回编译了。而本文就用一个案例来分析这个工具的用法,我们用一个回编译失败的apk包文件,那就是我们常用的WX,我们想实现的效果很简单,在WX的启动页面篡改一下,启动的是我们插入的广告页面,效果如下:


看到这里,我们要做的很简单,定义一个广告Activity启动页面,然后把这个广告Activity配置到清单文件入口即可。我们需要做两件事:修改代码+修改AndroidManifest.xml文件了。


二、案例操作

第一步:修改代码

这个比较简单了,也是我们后续修改代码不进行反编译的一个重要操作。直接利用压缩文件解压出WX的apk包中的主dex文件classes.dex,然后利用baksmali.jar和smali.jar工具进行反编译成smali代码。当然这里看到有一个操作就是反编译了。不过反编译代码一般都很多报错情况,如果更牛逼的是二进制修改dex文件。哎,感觉那个操作就太费劲了。真心不敢尝试了。所以就还是利用这个工具进行需更修改吧。一般这里报错几乎很少的。这个工具网上很多,自行搜索下载即可。我们也可以利用这个工具去修改jar文件,可以先把jar文件利用dx命令转化成dex然后在反编译成samli文件进行修改即可。工具用法很简单:


如果真的没找到这个工具,可以留言单独发给你们吧。


那么这个插入广告的smali代码难道要手动编写?那是肯定不是的,我们可以定义一个demo工程,然后编写好这个广告开平Activity,然后在反编译我们的demo应用拿到对应的smali语法。然后直接将代码文件拷贝到刚刚用baksmali工具反编译之后的文件夹目录下即可:


一定要注意文件的包名是对应的文件夹名称。所以没有对应的文件夹需要手动新建文件夹。放完之后直接利用smali工具在进行回编译成dex文件即可。然后在利用压缩文件直接替换apk文件中的classes.dex文件即可。


第二、修改清单文件

上面我们就成功的把代码插入到了dex文件中了,下面还需要修改他的清单配置文件,把我们的广告Activity配置成启动页面,但是WX默认的启动页面是:


所以我们第一步得先用AXMLEditor.jar工具删除这个activity标签,为什么是删除呢?其实我们是想修改这个标签,让他不要成为启动页面,但是直接删除intent-filter操作有点费劲,所以直接删除这个标签,然后在插入即可:

java -jar AXMLEditor.jar -tag -r activity com.tencent.mm.ui.LauncherUI AndroidManifest.xml AndroidManifest_out.xml

我们依然利用压缩工具解压出他的AndroidManifest.xml文件进行操作,操作完成之后,我们需要插入操作了,因为我们需要插入广告页面和刚刚被我们删除的页面,所以直接在插入的xml文件中这么定义:


然后命令也很简单:

java -jar AXMLEditor.jar -tag -i insert.xml AndroidManifest.xml AndroidManifest_out.xml

这样我们就把xml中的内容插入到了WX的清单配置文件中了。有的同学会好奇,关于WX原来的那个启动页面,我们在插入的时候删除了好几个属性,其实是因为现在AXMLEditor.jar不支持引用的属性操作。所以这里就直接删除了,而这些属性其实不是太影响使用的。所以可以忽略不管了。


三、签名安装

然后我们把修改之后的xml替换WX的apk中的xml文件即可。这时候我们就完成了代码和配置的全部替换工作,接下来我们还得做一步,就是需要删除WX之前的签名文件,这个可以直接在压缩文件中删除META-INF文件夹即可。


删除之后,我们就可以利用jarsigner工具直接签名即可。签名之后安装,我们如果在这个过程中操作不当会出现安装包损坏的错误信息。所以可以简单的排查文件,可能是我们修改xml文件出错了。我们可以直接用jadx打开apk文件:


正常的情况下,是不会报错的,插入成功的,如果包损坏的话,这里就打不开xml文件了。


四、操作总结

到这里我们就成功插入了广告页面,看看效果如下:


这样我们就省去了反编译和回编译的复杂操作,也可以避免了很多错误处理。所以从这里可以看到二进制修改文件的需求还是有的。下面就来总结一下,对于我们在使用apktools工具进行反编译失败的时候,我们可以这么做来避免:

  • 第一步:利用baksmali和smali工具直接修改器对应的dex文件
  • 第二步:利用AXMLEditor.jar工具直接修改对应的xml文件

而我们只需要利用压缩文件直接解压出dex文件和xml文件即可。修改之后在替换原来的文件,删除签名文件。再次签名即可使用了。这样的操作问题少也方便。


工具源码下载地址:https://github.com/fourbrother/AXMLEditor


五、总结

关于Android中资源文件修改后面还会继续进行,我们需要直接二进制修改resource.arsc文件,插入资源文件的功能,不过这个工作会比这个难点,因为resource.arsc文件格式更为复杂。不过如果完成了,以后可以不用在担心回编译遇到的各种错误问题了。也不需要再一次反编译和回编译操作了就可以实现篡改apk文件了。


《Android应用安全防护和逆向分析》

点击立即购买:京东  天猫

更多内容:点击这里

关注微信公众号,最新技术干货实时推送

编码美丽技术圈
微信扫一扫进入我的"技术圈"世界

扫一扫加小编微信
添加时请注明:“编码美丽”非常感谢!
6
0
查看评论

使用apktool反编译apk的XML文件

打开解压的res\layout目录,有很多xml文件,如果你想看下作者是如何设计界面的,你会很失望,因为你看到的是一大堆乱码!这个时候我们需要用到的是apktool。     具体操作方法:将下载的apktool和apktool-install-windows-r05-ib...
  • buptdavid
  • buptdavid
  • 2014-11-19 13:13
  • 13603

AndroidManifest.xml反编译工具

  • 2013-09-12 09:47
  • 2.78MB
  • 下载

Android 超好用反编译工具

  • 2017-11-24 10:52
  • 29.99MB
  • 下载

Android 如何对apk文件进行反编译以及重新打包签名

最近在看视频的时候看到有关apk文件如何反编译的,顿时提起了自己的兴趣,记得在刚刚学习Android的时候就对这份面有兴趣,只是当时自己的技术…咳…现在自己…咳咳..咳…注:以下的前提是Java相关环境变量配置完成 我觉得反编译无非就是能够得到其apk的资源文件,以及java代码等 常用的工具有...
  • w18756901575
  • w18756901575
  • 2016-05-10 16:00
  • 6841

Android中对APK进行反编译

其实反编译很简单,只是利用一些工具包和一些基本命令行的命令对apk文件进行反编程,没有什么高深的技术。下面就让我们一起来学习一下反编译的技术。
  • u013761665
  • u013761665
  • 2015-02-09 09:47
  • 1884

安卓反编译xml文件

我们在进行安卓逆向分析的时候,xml文件是无法直接打开的,通过记事本打开会是乱码。 我们可以通过AXMLPrinter2.jar来进行还原。 首先下载AXMLPrinter2.jar  http://download.csdn.net/detail/hansion3333/...
  • hansion3333
  • hansion3333
  • 2017-03-06 18:36
  • 998

Android APK反编译方法(可以获取APK xml和android Manifest,java代码等内容)

APK反编译和签名 apk文件反编译以及签名打包 通过dex2jar和jd我们可以反编译apk中的dex,可以比较完美的查看java源文件;通过apktool可以反编译apk中的xml等资源文件,然后通过apk-sign签名,可以制作成修改版的可发布apk文件。 1.dex2jar反编译dex...
  • daditao
  • daditao
  • 2014-02-16 23:24
  • 7355

教你用最新工具反编译android apk

所谓工欲善其事必先利其器,首先从官网拿到最新的反编译工具: APK反编译工具: dex2jar:https://github.com/pxb1988/dex2jar(原网址:http://code.google.com/p/dex2jar/downloads/list)Apktool:ht...
  • u014763302
  • u014763302
  • 2016-06-05 21:16
  • 11175

为Android的apk应用程序文件加壳以防止反编译的教程

这篇文章主要介绍了为Android的apk应用程序文件加壳以防止反编译的教程,同时对apk程序的解壳操作也有详细讲解,需要的朋友可以参考下
  • MJM_49
  • MJM_49
  • 2017-08-20 17:11
  • 349

AndroidManifest.xml反编译工具

  • 2017-10-10 14:53
  • 61KB
  • 下载
    《Android应用安全防护和逆向分析》正式开售
    《Android应用安全防护和逆向分析》

    360创始人周鸿祎、CSDN创始人蒋涛、看雪创始人段钢联袂推荐

    零基础学习移动安全逆向,手把手带你进入安全逆向领域!安全不息,逆向不止!让别人的应用都成为我们手中的炮灰!

    读者技术交流QQ群:682646223



    购买地址: 京东 天猫
    技术分享微信公众号
    扫一扫关注

    关注公众号留言可咨询问题和技术交流,推送最新技术文章!
    酱爆短视频
    酱爆短视频



    全球首款短视频聚合应用「酱爆视频」正式发布上线

    别人等车干着急,我在酱爆看视频

    想你说想,为你所做!

    不负众望,就在酱爆!

    点击查看详情
    微信扫一扫加入安全逆向圈

    友情链接
    个人资料
    • 访问:5673534次
    • 积分:32242
    • 等级:
    • 排名:第169名
    • 原创:306篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1667条
    博客专栏
    文章分类