[转载]Android反编译植入代码(详解,手把手)-Android开发经验分享-eoe 移动开发者论坛 - Powered by Discuz!

baacloud免费翻墙vpn注册使用

[转载]Android反编译植入代码(详解,手把手)-Android开发经验分享-eoe 移动开发者论坛 – Powered by Discuz!.

虽然说Android的反编译一直都不是什么神秘高深的技术,好久之前就已经搞过,但是闲着无聊,还是想来跟小伙伴们分享一下。

一、工欲善其事必先利其器。

反编译apk包不可少的就是apktool工具,可以上 https://code.google.com/p/Android-apktool/ 下载相关工具,或在我的附件中下载亦可。
(apktool所依赖的环境包括JDK、Android SDK,此处不赘述)。

二、反编译植入代码的思路与方法。

  其实思路很简单,
1、假如我们要植入代码带targetapk.apk中, 那么首先我们要反编译 targetapk.apk,得到源代码对应字节码。我们知道,如果我们要植入代码到其中,必须加入字节码然后重新编译打包。
2、但是我们只会Android代码,怎么写字节码?其实我们只要新建一个Android工程,将我们需要加入的Android代码写入,然后打包成apk,比如sourceapk.apk;接着反编译它得到Android代码对应的字节码。
3、将需要植入的Android代码对应的字节码拷贝,粘贴到targetapk对应的字节码源文件中的合适位置。
4、重新编译targetapk对应的源文件,生成apk后进行签名即可安装使用。

思路出来了,方法也就呼之欲出了,接下来直接进入实战
1、apktool反编译命令:apktool d targetapk.apk targetapkfolder  。重新编译命令:apktool b targetapkfolder  。 生成的apk在targetapkfolder的dist文件夹下。
2、以金山毒霸为目标apk,植入一段Toast代码进行演示。
①反编译duba.apk:

命令行cd到apktool目录下(或者直接点击其中的start.bat即可),并将duba.apk拷贝到该目录:

     开始反编译,执行 “apktool.bat d duba.apk duba”命令:

       似乎反编译一切顺利,得到duba文件夹(关于反编译后的文件结构和格式以及字节码语法,有兴趣就去Google了解一下):

           ②编写需要植入的Android代码生成apk包,然后反编译该apk包得到代码的字节码。

  找到反编译后得到SourceApk文件夹中Toast的Android代码对应的字节码(代码包在 smali文件夹下):

③将得到的Toast代码对应的字节码复制,粘贴到金山毒霸的主界面代码中:

通过反编译后的duba文件夹中的AndroidManifest.xml可以找到主界面对应的类所在位置:
(我们暂且将代码放到毒霸的splash界面也无妨)

接着找到SplashActivity.smali中的setContentView,在其下面加入Toast字节码:

       ④保存后重新编译duba文件夹,执行 “apktool.bat b duba”命令:

            貌似重新编译一切顺利(可能一些apk会出现千奇百怪的错误,那就Google吧),找到植入代码后的duba.apk :

           ⑤得到植入代码后的duba.apk为未签名apk,需经过签名后才可安装使用。
(关于apk签名,此处不多加赘述,不懂的就Google去吧。或者使用附件中的签名工具进行Debug签名)


          ⑥签完名可以安装使用了,看看是否成功吧:

三、关于反编译的总结与后续。

      1、相信大家看了我的示例会觉得原来反编译这么简单。其实对于大部分Apk来说反编译都是这么简单,只要抓对思路。
2、本例中只是示范了一个简单得不能再简单的反编译植入代码的示例,其实一般反编译大多用于App的破解、App的汉化、App植入广告等(个人觉得)。
3、本来想着写完这个入门级的示例后,再写个植入广告的示例的。But,我现在已经无力再继续写了,下次吧。其实掌握思路之后,用apktool工具都可以很简单做到。
4、有兴趣了解更多的,可以去看我上一个”关于小米手机抢购页面代码分析“的贴,上面有个技术交流群号,可以在群上面找到我。


四、那些年调戏过的App。




   
      


apktool-1.5.2_with_signtool.zip

2.8 MB, 下载次数: 161

 

反编译工具+apk签名工具

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏