反编译 订阅
计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。 展开全文
计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。
信息
定    义
高级语言源程序经过编译变成
类    型
反编译:机器码(汇编语言)
概述 
计算机软件反向工程
中文名
反向编译
关联软件
VBExplorer,JD(Java Decompiler)等
别    称
计算机软件还原工程
反向编译定义
高级语言源程序经过编译变成可执行文件,反编译就是逆过程。
收起全文
精华内容
下载资源
问答
  • Android反编译工具包(升级)官方绿色版

    万次下载 热门讨论 2012-10-10 19:18:30
    Android反编译工具包,内含图形和命令两种反编译方式,命令支持windows和linux平台,亲测验证成功!详见博客:Android APK反编译详解(附图) http://blog.csdn.net/sunboy_2050/article/details/6727581
  • apktool 反编译工具 绿色版

    万次下载 热门讨论 2014-03-11 20:18:37
    apktool功能:反编译出apk资源文件。 使用方式: 把apktool 解压到任意位置 执行 在dos 改目录下 执行 apktool d xxx.apk test ,便会把编译后的资源存入test文件夹下。
  • 2020年支持java8的Java反编译工具汇总

    万次阅读 多人点赞 2018-06-29 10:58:53
    luyten是一款操作简单、功能实用的java反编译工具,软件支持*.JAR、*.zip、*.class等类型文件的反编译操作,还原度非常高,支持更多功能设置,如显式导入、类型、合成组件等等,用户可根据不同的需求选择合适的显示...

         大多商业软件,会对程序进行加密、加壳等安全措施以防范软件被破解,从而使得反编译越来越难。反编译是一个对目标可执行程序进行逆向分析,从而得到源代码的过程。尤其是像Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。

          我们知道,在代码支撑方面,JDK 1.7引入了字符串Switch、泛型接口改进等新功能,1.8增加了lambda表达式、方法传递、多重注解等新特性,这使得反编译工具的编写难度加大。今天我们盘点一下目前仍然可用的、相对功能很强大的Java反编译工具(Eclipse插件不做评价),比较老的反编译工具很难支持Java8及其以上版本。

     

    1、Java 反编译器 JD-GUI

    JD-GUI 是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持Windows、Linux和苹果Mac Os三个平台。而且提供了Eclipse平台下的插件JD-Eclipse、IntelliJ的插件JD-IntelliJ。JD-GUI不需要安装,直接点击运行,可以反编译jar,class文件。

    最新版本1.4.0,官方网站:http://jd.benow.ca/

     

    2、Java 反编译器 procyon-decompiler及其window下独立UI工具luyten

         Procyon-Decompiler支持JDK1.8类的反编译,在很多方面做得非常不错,如反编译匿名类、内部类、Java8 Lambda等等。Procyon-Decompiler支持JDK1.8类的反编译,在很多方面做得非常不错:字符串的Switch、枚举声明方面、注解方面、匿名类、内部类、Java8新接口规范、Java8 Lambda表达式、Java8 方法传递等。

          luytenProcyon的GUI,是一款操作简单、功能实用的java反编译工具,软件支持*.JAR、*.zip、*.class等类型文件的反编译操作,还原度非常高,支持更多功能设置,如显式导入、类型、合成组件等等,用户可根据不同的需求选择合适的显示项目,结果更明了。

         luyten的最新版本0.53,官方网址:https://github.com/deathmarine/Luyten,只需要下载luyten即可,不用下载ProcyonProcyon最新版本0.5.30。

     

    3、Android反编译gui工具Jadx

         jadx是一款Android反编译gui工具,它支持apk、dex、jar、class、zip、aar等文件。jadx操作方便,反编译后的代码可读性高,同时还拥有较完善的gui界面,除去混淆部分的代码,jadx已经非常接近源代码了。

       Jadx最高版本v0.7.1,官方地址https://github.com/skylot/jadx/

       三个工具中JD-GUI打开jar文件反编译速度飞快、luyten次之、Jadx最慢(有时候需要等好一会,喝杯咖啡先。三者都会遇到反编译不出来的情况,建议配合使用。

    展开全文
  • 反编译

    千次阅读 2018-10-17 18:12:41
    参考 http://the.bytecode.club/showthread.php?tid=5 此篇文章,使用Fernflower 反编译整个工程相当好用。。 1.首先把工程的所有class 压缩成zip 2.java -jar fernflower.jar classes.zip zzCode/ 使用此jar包加...

    参考 http://the.bytecode.club/showthread.php?tid=5 此篇文章,使用Fernflower 反编译整个工程相当好用。。

    1.首先把工程的所有class 压缩成zip

    2.java -jar fernflower.jar classes.zip zzCode/ 使用此jar包加参数运行即可编译出相对很完美的java源码了

    fernflower.jar 下载链接 http://the.bytecode.club/fernflower.jar

    展开全文
  • APK防反编译技术PPT

    千次下载 热门讨论 2014-01-27 18:33:38
    我们的APK实际上就是一个ZIP压缩文件,里面包含有一个classes.dex,我们编译后生成的程序代码就全部在那里了,通过apktool等工具可以轻松地将它们反编译成smali代码。有了这些反编译出来的smali代码之后,我们就可以...
  • APK反编译

    万次阅读 多人点赞 2017-12-27 17:31:39
    学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装...
    学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装。正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了。但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反编译之后,我们就可以看到开发这个应用使用的资源文件(图片)、layout、样式、相关的实现代码等,apk反编译也算是Android开发中一个比较实用的技巧吧,当我们对别人开发好的应用感兴趣时,我们就可以通过这种技术手段将别人打包好的apk进行反编译,继而可以看到我们感兴趣的内容,(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。)下面就来说说如何将一个apk反编译出来。

    一、准备必要工具

      工欲善其事,必先利其器,首先我们要下载好反编译apk时需要的相关工具

    1.1、使用工具

    1. apktool (资源文件获取) 
    2. dex2jar(源码文件获取)
    3. jd-gui  (源码查看)

    1.2、工具介绍

      apktool  

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

      dex2jar

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

      jd-gui

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

    1.3工具下载

      apktool下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads

      

      下载好之后得到一个如下图所示的jar文件

      

      dex2jar下载地址:http://sourceforge.net/projects/dex2jar/files/

      

      

      下载完成之后,得到一个如下图所示的压缩包

      

      jd-gui下载地址:http://jd.benow.ca/

      

      下载完成之后,得到一个如下图所示的压缩包:

      

      到此,需要使用到的3个相关工具都下载好了,在这里说明一下jd-gui的下载,我从官方网站上点击下载时会经常出现如下图所示的问题

      

      但是多试几次又可以下载了,所以如果有遇到这个问题的朋友们不妨多试几次,或者从别的地方下载jd-gui,jd-gui算是做Java开发的一个必备工具了,用它来将class反编译成java源代码是非常方便的,网上搜索一下一般都可以下载到,只不过版本不一定是最新的。

    二、Apk反编译流程

      为了方便进行反编译,我们将上述下载好的3个工具统一放到一个文件夹中,例如:

      

      然后将【dex2jar-2.0.zip】和【jd-gui-windows-1.3.0.zip】分别解压到当前文件夹,如下图所示:

      

    2.1、使用apktool反编译apk得到图片、XML配置、语言资源等文件

      进入CMD命令行,如下:

      

      切换到上述的3个工具的所在目录,如:E:\AndroidDevelopTool\Android反编译工具包

      

      接下来我们要做的就是运行apktool_2.0.1.jar这个jar文件来将apk文件进行反编译,在java中,运行可执行jar包的命令是:

    java -jar jar包名.jar

      使用如下的命令运行apktool_2.0.1.jar反编译MMTS-release-1.0.2.apk

    java -jar apktool_2.0.1.jar d -f E:\AndroidDevelopTool\Android反编译工具包\测试apk\MMTS-release-1.0.2.apk -o MMTS

      这个命令是启动apktool_2.0.1.jar将位于【E:\AndroidDevelopTool\Android反编译工具包\测试apk\】目录下的"MMTS-release-1.0.2.apk"这个apk反编译,然后将反编译生成的文件存放到当前目录(apktool_2.0.1.jar所在的目录,也就是"E:\AndroidDevelopTool\Android反编译工具包"目录)下的一个【MMTS】文件夹中。这个文件夹的名字是可以随便取的,喜欢叫啥都行。

      执行反编译操作:

      

      反编译成功后,会在当前目录(E:\AndroidDevelopTool\Android反编译工具包)下生成一个MMTS文件夹,打开MMTS里面就有反编译后生成的文件,如下图所示:

      

      打开MMTS文件夹,就可以看到反编译后的生成的文件,如下图所示:

      

      生成的文件和文件夹当中,我们关心的是【res】文件夹中和AndroidManifest.xml文件,打开res文件夹,里面就有我们想要看到的东西了,如下图所示:

      

      

      

      

      想查看哪个xml文件就使用文本编辑器打开看看吧,反正全部都可以看到了。以上就是使用apktool这个工具将一个apk反编译得到图片、XML配置、语言资源等文件的过程。

    2.2、使用dex2jar反编译apk得到Java源代码

      将要反编译的APK后缀名改为.rar或者 .zip,并解压,得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的),如下图所示:

      

      将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内,如下图所示:

      

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

      

      命令执行完成之后,在当前目录下就可以看到生成的Jar文件了,如下图所示:

      

      反编译classes.dex得到classes-dex2jar.jar文件之后,就可以使用【jd-gui】工具将class文件反编译成java源代码了

      

      使用jd-gui打开classes-dex2jar.jar就可以看到源代码了,如下图所示:

      

      JD-GUI虽然可以将class反编译成java源代码,但是对于一些被混淆过的class,反编译的效果就不是那么理想了,被混淆过的class反编译后的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):

      

      以上步骤是我亲自实践过之后一步步整理出来的,对照着做应该不会有太大问题。

    三、Apk反编译注意问题

    3.1、apktool版本太旧导致反编译失败的问题

      之前用过了apktool这个工具的一些旧版本,发现总是反编译不成功,在执行反编译时会出现如下错误:

      Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file

      

      这个问题是因为apktool版本过低导致,而解决这个问题的办法就是使用最新版本的apktool就可以了,最新版本的下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads

    3.2、apktool执行反编译命令出现”Input file was not found or was not readable"的问题

      这个问题是因为apktool升级到2.0以上时,使用方式已经替换,格式为:apktool d [-s] -f <apkPath> -o <folderPath>

      好了,关于反编译apk的内容就这么多了。
      最后,给大家分享我下载好的那三个相关工具,下载地址:http://pan.baidu.com/s/1jGKSQyU

    展开全文
  • Android APK反编译详解(附图)

    万次阅读 多人点赞 2011-08-28 22:42:11
    这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的...

    这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。

    在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。


    本文Android反编译教程,测试环境:

    Win7 Ultimate x64

    Ubuntu 12.04 x86_x64

    反编译工具包 下载 (2012-10-10更新)


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

    下载上述反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。

    apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件

    源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码


    dex2jar 和 jdgui 最新版本下载,分别见google code:

    dex2jar(google code)

    jdgui(google code),最新版本请见 官方


    具体步骤:

    首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.9文件夹。

    在命令行下定位到dex2jar.bat所在目录,运行

    dex2jar.bat    classes.dex

    生成

    classes_dex2jar.jar


    然后,进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了,如下图:



    HelloAndroid源码在反编译前后的对照如下:

     



    二、apk反编译生成程序的源代码和图片、XML配置、语言资源等文件

    如果是汉化软件,这将特别有用

    首先还是要下载上述反编译工具包,其中最新的apktool,请到google code下载

    apktool(google code)


    具体步骤:

    下载上述反编译工具包,打开apk2java目录下的apktool1.4.1文件夹,内含三个文件:aapt.exeapktool.batapktool.jar 

    注:里面的apktool_bk.jar是备份的老版本,最好用最新的apktool.jar


    在命令行下定位到apktool.bat文件夹,输入以下命令:apktool.bat  d  -f   abc123.apk   abc123,如下图:

     

    上图中,apktool.bat 命令行解释:apktool.bat   d  -f    [apk文件 ]   [输出文件夹]


    反编译的文件如下(AndroidManifest.xml为例):



    将反编译完的文件重新打包成apk,很简单,输入apktool.bat   b    abc123(你编译出来文件夹)即可,命令如下:

     

    打包apk后的文件在目录C:\HelloAndroid下,生成了两个文件夹:

    build

    dist

    其中,打包生成的HelloAndroid.apk,在上面的dist文件夹下,Ok



    三、 图形化反编译apk

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

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





    本文反编译工具包整理历史版本:

    Android反编译工具包(升级)  (2012-10-10)

    Android反编译工具 (2012-08-21)

    android反编译工具 (2011-08-28)



    本博客反编译方法,仅供参考学习使用,禁止用于非法和商业等用途,谢谢!


    展开全文
  • 众所周知,我们开发所用的手机App安装包都是apk文件,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件供用户安装,这时候就很难再看到开发这个应用时使用的资源文件以及代码了,所以就有了反编译这个...
  • exe反编译工具exe反编译工具 exe反编译工具exe反编译工具 exe反编译工具exe反编译工具 exe反编译工具exe反编译工具 exe反编译工具exe反编译工具
  • 反编译Android应用

    万人学习 2015-01-26 12:18:38
    学习技术的渠道多种多样,而通过反编译一些经典应用来学习是一种比较好的途径,在Android领域,有比较好的反编译工具,本课程将会教大家如何反编译Android应用。
  • java在线反编译class文件

    万次阅读 多人点赞 2018-10-27 14:44:31
    反编译网址:http://javare.cn 对你有帮助的话,右上角给个赞呗~
  • jd-gui.exe反编译查看工具包官方绿色版

    万次下载 热门讨论 2013-04-19 17:37:43
    jd-gui.exe 工具类 用于查看反编译的jar包
  • 在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码、反编译资源、以及重新打包等内容。通过这些内容我们也能看出来,其实我们的程序并没有那么的安全。可能资源被反编译影响还不是很大,而...
  • 反编译核心使用的fernflower,感谢fernflower作者提供这么优秀的反编译工具。https://github.com/fesh0r/fernflower 范围: 应用范围仅供学习,请勿用于违法。 功能: 1:可以反编译WAR和JAR。 2:可以提取WAR...
  • 我们都知道,Android程序打完包之后得到的是一个APK文件,这个文件是可以直接安装到任何Android手机上的,我们反编译其实也就是对这个APK文件进行反编译。Android的反编译主要又分为两个部分,一个是对代码的反编译...
  • Android APK反编译 apktool使用教程

    万次阅读 多人点赞 2016-10-31 19:36:33
    然后百度“apk反编译”,出来最多的是apktool反编译。百度也真是越来越水了,反正百度出来的教程都是N年前的,现在早就不能用了。很多博主也都不跟新博客了,然后随着jdk发展apktool也跟新很多代了。所有有些博主的...
  • 最全的Android反编译工具包_Androidfby+apk2java 一键反编译,让你直接看到别人的布局文件,和jar源码,帮助你快速熟悉Android app开发内幕
  • Android APK反编译就这么简单 详解(附图)

    万次阅读 多人点赞 2014-03-11 22:06:09
    你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考...
  • Android开发之反编译与防止反编译

    万次阅读 多人点赞 2014-09-10 22:17:50
    防止反编译是每个程序员的必修课,因为当你辛辛苦的研发一个应用,被人家三下五除二给反编译了,是一件多么尴尬的事啊。那么如何防止反编译啊?这里就用Google Android自带的代码混编的方式来防止反编译。孙子兵法中...
  • 安卓反编译,我们用到的工具有两个 dex2jar 将dex文件转为jar文件 jd-gui 用于查看jar文件源代码,支持引用之间的跳转 2.获取抖音dex文件 2.1.获取最新版本抖音apk 下载到了抖音apk文件 aweme_aweGW_v7.7.0_c2b0c...
  • 什么是反编译 高级语言源程序经过编译变成可执行文件,反编译就是逆过程。但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。 反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前...
  • Android apk反编译查看源码、反编译资源文件

    万次阅读 多人点赞 2018-06-01 13:37:00
    反编译代码 要想将APK文件中的代码反编译出来,我们需要用到以下两款工具:dex2jar 和 jd-gui,可以在网上自行下载,这里分享下网盘下载链接:dex2jar-2.0.zip 和 jd-gui-windows-1.4.0.zip dex2jar这个工具用于将...
  • java反编译工具,war包反编译

    千次阅读 2018-05-19 14:38:26
    有一次把项目源码弄丢了,没办法,只有class文件,只能进行反编译,在网上找到了jd-jui反编译工具,很好用java反编译程序----&gt;jd-gui,将.class、.jar等java系统封装文件反编译至java文件,另外提供jd-...
  • android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原。因此开发人员如果不准备开源自己的项目就需要知道怎样防止反编译反编译他人的项目来学习。2.3版本以上在eclipse...
  • 1、确保IDEA中装有...2、在需要反编译的jar包所在目录执行以下命令等待完成即可(最后一句的data是放在jar包所在目录下的data目录,表示将反编译后的文件放到此目录下): java -cp "D:\software\IntelliJ ID...
  • 但是有些公司可能只给源码,不愿意直接提供代码(价钱问题),但是开发公司的技术人员因为入行时间,工作背景,编码风格以及使用技术的不同,明明在服务器可以跑的class文件反编译出来之后会出现乱码或者缺失的问题,这种...
  • 反编译,可以查看dll和exe文件中的源码。开源工具:ILSpy  防止反编译,采用混淆器对dll程序集和exe程序进行混淆处理。开源工具:ConfuserEX

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,634
精华内容 15,853
关键字:

反编译