android反编译_android反编译工具 - CSDN
精华内容
参与话题
  • Android APK反编译就这么简单 详解(附图)

    万次阅读 多人点赞 2018-07-18 15:03:41
    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK...

    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考了一些文章后简单的教程详解。

    (注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。)

     

    测试环境:

            win 7 

     

    使用工具:

         CSDN上下载地址:

           apktool (资源文件获取)  

           dex2jar(源码文件获取) 

           jd-gui  (源码查看) 

     

    工具下载:

         http://download.csdn.net/download/xcc1234/9966953

     

     

         官方最新版本下载地址:

           apktool(google code)

      dex2jar(google code)  

       jd-gui(google code)最新版请见官方

     

     

    工具介绍:

    apktool  

         作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看

    dex2jar

         作用:将apk反编译成java源码(classes.dex转化成jar文件)

    jd-gui

         作用:查看APK中classes.dex转化成出的jar文件,即源码文件

     

    反编译流程:

    一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件

    下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下,

    打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f  test.apk  test    

    (命令中test.apk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称,即为:apktool.bat   d  -f    [apk文件 ]   [输出文件夹])

    说明获取成功,之后发现在文件夹下多了个test文件,点击便可以查看该应用的所有资源文件了。

    如果你想将反编译完的文件重新打包成apk,那你可以:输入apktool.bat   b    test(你编译出来文件夹)便可,效果如下:

    之后在之前的test文件下便可以发现多了2个文件夹:

    build

    dist(里面存放着打包出来的APK文件)

     

     

     

    二、Apk反编译得到Java源代码

    下载上述工具中的dex2jar和jd-gui ,解压

    将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内,

    在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat   classes.dex,效果如下:

    在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:

    被混淆过的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):

     

     

    三、 图形化反编译apk(本人未使用过)

    上述步骤一、二讲述了命令行反编译apk,现在提供一种图形化反编译工具:Androidfby

    首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就可以浏览打开要反编译的apk

     

    通过反编译,你可以获知该应用用到了什么第3方的库文件,它的代码是如何编写的等等。

    然而,如果该APK进行了混淆处理,那么你看到的类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名,所以你可以想找到你所想得知的界面代码可能会十分费劲,找到了代码可能看起来也会很费劲,可是一个大体的思路会获得,有了这个思路,你就可以自己去尝试了。

    本人曾经想写一个类似唱吧的名人界面布局,可是当初第一次接触不知道如何去写,进进行了反编译,即使他的那个代码是混淆过的,我也看出来他是通过LISTVIEW的TYPE设定不同的ITEM布局实现了。可能好多引用都是采用重写VIEW来实现效果,你可以得到他的大体思路对你的开发有益无害。

     

    还有处于一个开发者辛辛苦苦将自己的应用开发出来被别人一反编译便成为了他自己的东西,所以要进行混淆处理:

    以下是我转载的混淆的教程:http://blog.csdn.net/vipzjyno1/article/details/21042823

     

    原文地址:http://blog.csdn.net/vipzjyno1/article/details/21039349/

    展开全文
  • Android Killer是一款免费可视化安卓反编译软件箱,它可以对安卓APK文件进行反编译、APK打包、APK签名、APK编码转换等多种功能为一体;编译文件以树形目录结构呈现出来,自动失败图像资源文件,并提供图片资源的快捷...
  • 安卓反编译就这么简单

    万次阅读 2019-04-09 16:31:37
    现在,您可以通过安卓修改大师对apk进行反编译,通过对反编译的apk进行图片和文字的修改,代码逻辑的修改,来学习android的开发技巧。 (注:反编译不是让各位开发人员去对一个应用破解并作为商业用途,主要目的是...

    学习Android开发的过程中,你会向别人学习应用软件是如何开发出来的,那些漂亮的动画和复杂的布局可能让你爱不释手,作为开发者,你可能真的想知道的是如何实现这样的界面效果。现在,您可以通过安卓修改大师对apk进行反编译,通过对反编译的apk进行图片和文字的修改,代码逻辑的修改,来学习android的开发技巧。

    (注:反编译不是让各位开发人员去对一个应用破解并作为商业用途,主要目的是为了促进开发人员学习。借鉴好的代码。提升自我开发水平。)

     

    测试环境:

    Win7 64位系统以上

     

    使用工具:

    安卓修改大师 (百度搜索下载,该工具自带java环境和adbtool反编译环境,不需要另外下载编译环境)

     

    官方最新版下载地址:

    http://www.apkeditor.cn

     

    工具介绍:

    安卓修改大师可以让您轻松将任何APK安装包进行反编译,替换应用程序界面上的任何文字和图片,并且通过代码级别的修改,实现汉化、破解、功能增强,甚至可以在任何的界面添加自定义的代码和功能。本软件还提供多渠道打包工具,无需源代码,直接通过APK安装包进行多渠道打包。本软件提供的反编译功能,仅供安卓开发爱好者对安装包进行反编译研究之用,严禁将反编译之后的安装包作为商业用途。

     

    软件主要功能:
    1、任意反编译安卓应用
    自由定制任何没有加固过的APK安装包,可以修改应用程序图标和应用程序名称、替换界面吗上面的任何文字和图片、翻译或者汉化制作多语言版本,更支持通过高级的SMALI代码,实现对应用软件的破解。

     

    2、拥有海量安卓应用和游戏的模板,方便反编译
    提供海量最新最全的应用作为定制模板,可以直接下载后进行反向工程、破解、修改、查看源代码、查看安装包信息等操作(部分应用由于做了加固,暂时不能进行反向工程)。

     

    3、提供多渠道打包功能
    通过已经打包的APK安装包作为模板,反编译后,动态修改配置文件或者SMALI代码中的渠道标志来实现批量重新多渠道打包,由于不是源代码级别的打包,所以大大提升了批量打包的速度和效率。

     

    4、提供随机包名和应用名打包功能
    对于成人影院、成人游戏等APP,经常会出现被手机安全软件和手机管家类软件报毒的情况,可以通过本功能定时随机更换包名和应用名称重新打包,再配合网页下载程序,用户就可以实时下载到最新的安装包,避免了报毒等情况。

     

    5、任意查看安卓应用的源代码

    经过对APK安装包进行反编译,然后通过反映射的方式获取源代码。反编译获取的JAVA代码适合对源代码进行分析,查看应用内部逻辑,不可进行反编译,反编译工程只能在SMALI代码基础上修改。
     

    6、内置众多的安卓应用反编译工具

    软件还提供了大量的小工具,用来查看安装包信息,并可以在手机连接电脑的情况下,查看手机信息、实时日志、安装和管理手机的应用程序、管理手机的文件等等,并可以直接定制修改手机已经安装的应用程序。

     

    反编译流程:

    1、从本地选择一个硬盘上面保存的apk,即可开始反编译,也可以从应用模板里面选择应用进行反编译

     

    2、修改应用图标、应用名称、参数和版本号

     

    3、修改应用界面上面的任意图片

     

    4、添加或者删除应用的权限

     

    5、添加语言支持,汉化或者修改界面上面的任意字符串

    6、修改代码逻辑,实现破解会员,添加功能或者隐藏功能,需要你了解smali的基本代码知识

     

     

    7、对关键字进行搜索和替换,可以把应用里面的文字都改成自己的,是不是很酷

     

     

    8、高级模式,啥都能改

     

    9、添加小插件,在任意应用的任意界面添加弹出注册码、弹出信息框等等,是不是很拽?

     

    10、啥都改完了,打包在手机上面看一下结果吧

    11、还提供好多其他的功能,例如把手机投屏到电脑上面,好多工具箱等等,还有视频教学视频,在线学习如何快速进行反编译等等

     

    好了,反正安卓修改大师就是一个什么安卓软件都能改的厉害软件,百度去搜索安卓修改大师下载试试看吧,我相信你也能爱上这个软件。

    展开全文
  • apktool 反编译工具 绿色版

    万次下载 热门讨论 2020-07-30 09:07:32
    apktool功能:反编译出apk资源文件。 使用方式: 把apktool 解压到任意位置 执行 在dos 改目录下 执行 apktool d xxx.apk test ,便会把编译后的资源存入test文件夹下。
  • android 反编译逆向APP简单实践

    千次阅读 2018-11-21 11:11:33
    有钱就可以为所欲为了 吗?... 今天给大家简单介绍下android app 的反编译相关的简单操作,具体下面几个套路:  1.反编译app ,常用三件套:apktool,dex2jar,jd-gui-windows ;  1.1apktool 反编...

           有钱就可以为所欲为了 吗?NO,懂技术才是真的可以为所欲为。分分钟可以逆向别人的app ,做些不可描述的事情。

          今天给大家简单介绍下android app 的反编译相关的简单操作,具体下面几个套路:

          1.反编译app ,常用三件套:apktool,dex2jar,jd-gui-windows  ;

                   1.1apktool 反编译出里面apk 包里面的文件,将源码转换成smali 文件,如果你懂samli语言就可以直接修改 源码,如果不懂 ,那你学啊,不想学也行,jetbrain 公司出品的插件java2smali 可以满足你的需求。然后修改后重新打包签名就实现你羞羞的目的。

                   1.2 dex2jar 是另外一种思路:将apk 包直接改后缀为rar ,然后解压缩, 就可以找到里面 后缀为.dex源码文件,然后使用dex2jar 将其转化为jar包,使用jd-gui-windows 打开jar包 就可以看到字节码文件。

          2.修改app 源码: 两种类型的源码的修改,

                   2.1.原生java代码的修改,上面步骤的 1.1中中的smali文件修改。

                   2.2 对native 代码修改,修改动态链接库.so文件。

         下面具体讲讲具体套路细节:

               上面1中的反编译 app 获取smali 文件 或 jar包,的方式已经烂大街了,大家自行百度谷歌。

         重点是修改smali文件和so文件方式,修改smali,了解smali语法你可以看这个博客,了解基本数据类型, 定义对象和 方法的方式。对照上面1.2 中得到的jar 的字节码文件,就可以找到对应的类和方法。比如微信的checkDir方法,解压缩后如下图所示:

    对应的jar 包的字节码如下图所示:

    如果你想修改这个方法,就可以直接借助 androidStudio 的 插件java2smali,直接写好java代码转换成smali文件,然后再替换原来的smali文件的方法后载打包签名就可以了。

           so 库的源码修改就需要借助 IDA静态分析工具了,apk 包里面的so库 直接拖到IDA中,就可以看到里面的汇编源码了,最终还得修改汇编源码实现你的方法,当然也可以鼠标定位到汇编方法, 按F5 展示c 语言代码。这样方便阅读。

          汇编代码如果下图:

    c 代码如下图:

         修改完后, 下一步就是重新打包 和签名,否则无法安装。

     重新打包命令, apktool.bat b  + 包名  

    签名工具:autosign 

           这样就简单的完成了一次反编译之路,但是道高一尺,魔高一丈,逆向和反逆向永远是动态竞争的。现在一些使用加固方式加固APK之后:篡改后无法正常运行、无法正常动态调试、反动态注入无法注入、反编译无法获取到原dex代码或完整的dex代码、So文件的整体加密,使用自定义链接器的技术,对SO文件进行整体的加密,完全阻止 IDA等逆向工具的静态分析。

          也只有不断竞争才能最近技术的发展。代码侠们,技术从来没有停止和灭绝,只有发展的更高更快,和换一种方式重生。

     

    展开全文
  • 反编译代码 要想将APK文件中的代码反编译出来,我们需要用到以下两款工具:dex2jar 和 jd-gui,可以在网上自行下载,这里分享下网盘下载链接:dex2jar-2.0.zip 和 jd-gui-windows-1.4.0.zip dex2jar这个工具用于将...

    反编译代码

    要想将APK文件中的代码反编译出来,我们需要用到以下两款工具:dex2jar 和 jd-gui,可以在网上自行下载,这里分享下网盘下载链接:dex2jar-2.0.zip jd-gui-windows-1.4.0.zip

    dex2jar 这个工具用于将dex文件转换成jar文件 

    jd-gui 这个工具用于将jar文件转换成java代码

    将这两个工具都下载好并解压,然后我们就开始对Demo程序进行反编译。解压dex2jar压缩包后,你会发现有很多个文件,如下图所示: 

    其中我们要用到的是d2j-dex2jar.bat这个文件,当然如果你是linux或mac系统的话就要用d2j-dex2jar.sh这个文件。 

    然后我们将Demo.apk文件也进行解压,如果不知道怎么直接解压的可以先将文件重命名成Demo.zip,然后用解压软件打开。解压之后你会发现里面有一个classes.dex文件,如下图所示:

    这个classes.dex文件就是存放所有java代码的地方了,我们将它拷贝到dex2jar解压后的目录下,打开cmd命令窗口,切换到解压后的dex2jar下,输入命令d2j-dex2jar classes.dex

    执行结果如下图所示:

     

    没有报任何错误,这就说明我们已经转换成功了。现在观察dex2jar目录,你会发现多了一个文件,如下图所示:

    可以看到,classes-dex2jar.jar这个文件就是我们借助工具之后成功转换出来的jar文件了。但是对于我们而言,jar文件也不是可读的,因此这里还需要再借助一下jd-gui这个工具来将jar文件转换成java代码。

    打开解压后的jd-gui-windows-1.4.0文件,双击打开jd-gui.exe程序,如图

     

    把刚才生成的classes-dex2jar.jar这个文件直接拖过来,结果如下图所示:

    OK,由此可见,我们的代码反编译工作已经成功了,MainActivity中的代码非常清晰,基本已经做到了90%以上的还原工作。但是如果想要做到100%的代码还原还是非常有难度的,因为像setContentView()方法传入的参数,其实就是一个资源的id值而已,那么这里反编译也就只能将相应的id值进行还原,而无法变成像R.layout.activity_main这样直观的代码展示。 

    另外,除了MainActivity之外,还有很多其它的代码也被反编译出来了,因为当前项目有引用support-v4和support-v7的包,这些引用的library也会作为代码的一部分被打包到classes.dex文件当中,因此反编译的时候这些代码也会一起被还原。 

    好的,学完了反编译代码,接下来我们看一下如何反编译资源。

     

    反编译资源

    其实细心的朋友可能已经观察到了,刚才Demo.apk的解压目录当中不是已经有资源文件了吗,有AndroidManifest.xml文件,也有res目录。进入res目录当中,内容如下图所示: 

     

    这不是所有资源文件都在这里了么?其实这些资源文件都是在打包的时候被编译过了,我们直接打开的话是看不到明文的,不信的话我们打开AndroidManifest.xml文件来瞧一瞧,内容如下图所示: 

    可以看到,这代码是完全没法阅读的。当然如果你去打开activity_main.xml看看,结果也不会好到哪儿去: 

    由此可见,直接对APK包进行解压是无法得到它的原始资源文件的,因此我们还需要对资源进行反编译才行。 

    要想将APK文件中的资源反编译出来,又要用到另外一个工具了:

    apktool 这个工具用于最大幅度地还原APK文件中的9-patch图片、布局、字符串等等一系列的资源。

    下载地址:http://ibotpeaches.github.io/Apktool/install/

    网盘地址:https://pan.baidu.com/s/13_YUDVXxu-WaYpbpFovilw

    关于这个工具的下载我还要再补充几句,我们需要的就是apktool.bat和apktool.jar这两个文件。目前apktool.jar的最新版本是2.3.1,这里我就下载最新的了,然后将apktool_2.3.1.jar重命名成apktool.jar,并将它们放到同一个文件夹下就可以了,如下图所示: 

        

    接下来的工作就很简单了,我们将Demo.apk拷贝到和这两个文件同样的目录当中,然后cmd也进入到这个目录下,并在cmd中执行如下命令:apktool d Demo.apk

    其中d是decode的意思,表示我们要对Demo.apk这个文件进行解码。那除了这个基本用法之外,我们还可以再加上一些附加参数来控制decode的更多行为:

    • -f 如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败)。
    • -o 指定解码目标文件夹的名称(默认使用APK文件的名字来命名目标文件夹)。
    • -s 不反编译dex文件,也就是说classes.dex文件会被保留(默认会将dex文件解码成smali文件)。
    • -r 不反编译资源文件,也就是说resources.arsc文件会被保留(默认会将resources.arsc解码成具体的资源文件)。

    常用用法就这么多了,那么上述命令的执行结果如下图所示:

    这就说明反编译资源已经成功了。 

    当然即使你在和我执行一模一样的操作,也有可能会在这里反编译失败,比如说会报如下错误:

    出现这个错误的原因很有可能是你之前使用过apktool的老版本进行过反编译操作,然后apktool就会在你系统的C:\Users\Administrator\apktool\framework这个目录下生成一个名字为1.apk的缓存文件,将这个缓存文件删除掉,然后再重新执行反编译命令应该就可以成功了。 

    现在你会发现在当前目录下多了一个Demo文件夹,这个文件夹中存放的就是反编译的结果了。我们可以打开AndroidManifest.xml来瞧一瞧,如下图所示: 

     

    怎么样?这样就完全能看得懂了吧,然后可以再到res/layout中看一下activity_main.xml文件,如下图所示:

    可以看到,activity_main.xml中的内容基本和源代码中的内容是一致的,外层是一个RelativeLayout,里面则是一个Button。你可以再到其它目录中去看一看别的资源,基本上都是可以正常还原的,这样我们就把反编译资源的方法也已经掌握了。

    如果你觉得对你有用,就点个赞支持一下吧~ 谢谢啦~

     

    展开全文
  • Android 反编译整理

    千次阅读 2019-06-14 11:14:12
    Android 反编译需要用到以下几个工具: Apktool: 这个工具的作用是: It is a tool for reverse engineering 3rd party, closed, binary Android apps. It can decode resources to nearly original form and ...
  • Android反编译工具

    千次阅读 2018-10-24 17:03:43
    可以反编译apk,也可以重新打包apk 下载地址:https://github.com/iBotPeaches/Apktool/releases brew安装:brew install apktool 文档:https://ibotpeaches.github.io/Apktool/documentati...
  • 首先反编译别人的APK,主要是学习别人的实现逻辑,给自己一个思路。比较商业的APK也不会给你留下这个漏洞,一些核心的业务处理会在后台进行操作;本地的 APK 也会进行混淆加密等。 好了废话不多说,步入正题: 方法...
  • 1.更新到最新版本androidstudio2.随便编译一个demo.apk,记得是发布版本3.编译完成后点击Module 'app': locate or analyze the APK. 4.选择任何一个apk
  • androidkiller反编译失败可能解决方案

    万次阅读 2019-03-01 10:05:01
    Exception in thread “main” java.lang.ClassCastException反编译核心都是apktool,出现以上报错可能是你反编译的apk编写的版本比较高,我们只需要简单把apktool版本替换到最高 1.apktool官网下载2.这个是我整理...
  • 反编译Android应用

    万人学习 2019-06-26 11:46:03
    学习技术的渠道多种多样,而通过反编译一些经典应用来学习是一种比较好的途径,在Android领域,有比较好的反编译工具,本课程将会教大家如何反编译Android应用。
  • Android反编译软件android killer教程

    万次阅读 2017-10-13 11:01:57
    我推荐大家使用的Android反编译的软件是Android Killer。(这启动界面Cool爆了) 其实这个软件就是对以上博客提到的操作进行一系列的封装。打开这个软件你就可以发现这些熟悉的反编译工具。 接着,打开待反...
  • Android反编译工具包(升级)官方绿色版

    万次下载 热门讨论 2020-07-30 23:30:40
    Android反编译工具包,内含图形和命令两种反编译方式,命令支持windows和linux平台,亲测验证成功!详见博客:Android APK反编译详解(附图) http://blog.csdn.net/sunboy_2050/article/details/6727581
  • AndroidStudio安装jd-intellij,反编译任意.jar .class

    万次阅读 热门讨论 2015-11-02 12:53:01
    AndroidStudio自带的是有个反编译工具,此工具可以反编译绝大多数文件。再AS下可以顺畅的看任意android源码是AS最突出的优点之一。但是引用的第三方jar包文件,这个自带的反编译工具就不大好使了,只能反编译出大概...
  • 1、apk反编译会卡在 “正在反编译APK源码,请稍等...” 2、apk回编译失败 解决: 1、最简单的方法,把apk后缀改成zip,解压之后再重新压缩成zip,然后改成apk后缀。这样就可以解决反编译卡住的问题。 2、回...
  • Android如何防止apk程序被反编译

    万次阅读 多人点赞 2013-12-14 15:59:46
    作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。 Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一...
  • Android反编译工具的使用-Android Killer

    千次阅读 2018-03-05 17:34:19
    今天百度搜索“Android反编译”搜索出来的结果大多数都是比较传统的教程。刚接触反编译的时候,我也是从这些教程慢慢学起的。在后来的学习过程中,我接触到比较方便操作的Android反编译。在这,我将使用的过程写下来...
  • 半吊子安卓逆向水平,也就会用android killer看看反编译的java源码。。。玩ctf的时候经常android killer莫名卡死,大致如图: 一般看安卓题就为了换换脑子冷静下,几次碰到这个问题都没有想办法去解决,这次在...
  • 推荐一款好用的android反编译工具

    千次阅读 2017-02-15 18:40:04
    不用再手动使用apktool, dex2jar, jd-gui来反编译apk了 推荐使用jadx https://github.com/skylot/jadx
1 2 3 4 5 ... 20
收藏数 49,327
精华内容 19,730
关键字:

android反编译