反编译 订阅
计算机软件反向工程(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反编译、修改、重新打包、签名全过程

    万次阅读 多人点赞 2016-10-16 01:52:37
    首先明确,反编译别人apk是一件不厚道的事情。代码是程序员辛苦工作的成果,想通过这种手段不劳而获,是不对的。这也说明,代码混淆是非常重要的。本文抱着学习的态度,研究在一些特殊的情况下如果有需要,该怎么...

    首先明确,反编译别人apk是一件不厚道的事情。代码是程序员辛苦工作的成果,想通过这种手段不劳而获,是不对的。这也说明,代码混淆是非常重要的。本文抱着学习的态度,研究在一些特殊的情况下如果有需要,该怎么反编译apk。

    工具简介

    apktool,编译和反编译apk,从apk中提取图片和布局资源

    dex2jar,将可运行文件classes.dex反编译为jar源码文件

    jd-gui,查看jar源码文件

    反编译

    apktool安装

    Windows系统:
    1. 首先确保系统安装有Java
    2. 下载apktool.bat脚本
    3. 下载最新版本的apktool.jar,并且重命名为apktool.jar
    4. 将apktool.bat和apktool.jar放在同一目录下,就可以在命令行窗口使用了。
    5. 其他系统请参考链接

    用法

    可以直接在命令行执行apktool.bat查看帮助。这里介绍两个最常用的:

    反编译

    apktool.bat d -o <output_dir> test.apk

    其中<output_dir>指定输出目录,默认为apk.out。

    编译

    apktool.bat b -o <output.apk> <input_dir>

    其中<input_dir>就是上面反编译输出的目录,<ouput.apk>是编译的输出结果,默认为dist/<name>.apk。

    示例

    一个典型的apktool反编译的结果如下:

    这里写图片描述

    此时,可以查看AndroidManifest.xml,res及smali文件了。甚至可以修改这个目录下的资源文件或者smali文件,然后重新编译。

    值得注意的是,apktool反编译出来只能得到apk的smali文件,即汇编语言版本,并不能得到源代码。

    查看源码

    一. 这里需要用到另外两个工具,下载dex2jar并解压。下载jd-gui,这是一个带UI的应用程序。

    二. 将需要反编译的apk的后缀名改为.zip或者.rar,然后解压到一个文件夹,得到其中的classes.dex文件。

    这里写图片描述

    三. 将classes.dex复制到解压后的dex2jar-2.0文件夹下。从命令行进入到该目录,执行

    d2j-dex2jar.bat classes.dex

    会生成由classes.dex反编译得到的jar文件,classes-dex2jar.jar。

    这里写图片描述

    四. 然后使用jd-gui打开classes-dex2jar.jar,就可以查看源码了。

    这里写图片描述

    如果apk在发布的时候加过混淆处理,那么我们也只能得到混淆后的版本。想通过阅读源码来破解别人的apk,还是有一些难度的。

    修改代码

    如果只是修改apk相应的资源,例如图片,比较好办,在res文件夹下找到相应的文件替换就可以。

    修改代码比较麻烦,因为反编译出来的结果中只有smali文件,即Java虚拟机支持的汇编语言。

    如果确实需要修改代码,就得对照smali文件和从classes.dex反编译出来的源码了,按照smali的规范来改动即可。相当于写汇编,这个难度比较大。

    重新打包

    使用apktool编译前面反编译生成的目录即可。

    签名

    签名是对要发布的apk文件作标记,确保你的apk文件有唯一的身份归属认证,只有相同签名和相同包名的文件才可以覆盖安装并保留用户信息。

    对于反编译的apk,我们可以通过jarsigner来对它进行签名。

    生成keystore文件

    首先,签名需要keystore文件,可以使用keytool工具生成,一般Java环境都带有keytool命令,可以在命令行测试。

    keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore

    各个参数解释如下:

    -genkey 产生证书文件
    -alias 产生别名
    -keystore 指定密钥库的.keystore文件中
    -keyalg 指定密钥的算法,这里指定为RSA(非对称密钥算法)
    -validity 为证书有效天数,这里我们写的是40000天

    输入上述命令后,会有如下的提示:

    输入keystore密码:
    再次输入新密码:
    您的名字与姓氏是什么?
      [Unknown]:  test
    您的组织单位名称是什么?
      [Unknown]:  test
    您的组织名称是什么?
      [Unknown]:
    您所在的城市或区域名称是什么?
      [Unknown]:
    您所在的州或省份名称是什么?
      [Unknown]:
    该单位的两字母国家代码是什么
      [Unknown]:
    CN=test, OU=test, O=Unknown, L=Unknown, ST=Unknown, C=Unknown 正确吗?
      [否]:  y
    
    
    输入<demo.keystore>的主密码
            (如果和 keystore 密码相同,按回车):

    签名apk

    jarsigner也存在于Java JDK的安装包当中,所以安装好了Java环境的话,可以直接在命令行使用。

    jarsigner -verbose -keystore demo.keystore demo.apk demo.keystore

    -verbose 指定生成详细输出
    -keystore 指定数字证书存储路径

    这样,就完成了对一个apk的签名过程,然后就可以安装使用了。注意如果你的手机上原来就有这个apk,需要卸载掉。因为新apk的签名已经改变了。

    参考

    apktool

    dex2jar

    jd-gui

    Android开发学习总结(六)—— APK反编译

    android apk反编译、修改源码、重新打包全过程

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

    千次下载 热门讨论 2014-01-27 18:33:38
    我们的APK实际上就是一个ZIP压缩文件,里面包含有一个classes.dex,我们编译后生成的程序代码就全部在那里了,通过apktool等工具可以轻松地将它们反编译成smali代码。有了这些反编译出来的smali代码之后,我们就可以...
  • 在项目开发过程中,估计也有人和我遇到过同样的经历:运行环境出现了重大Bug亟需解决、或者由于电脑挂了、旧代码覆盖新代码,而在这种情况下,我们不能直接在当前的代码中修改这个Bug然后发布,这会导致更严重的问题...

    在项目开发过程中,估计也有人和我遇到过同样的经历:运行环境出现了重大Bug亟需解决、或者由于电脑挂了、旧代码覆盖新代码,而在这种情况下,我们不能直接在当前的代码中修改这个Bug然后发布,这会导致更严重的问题,因为相当于版本回退了。还有电脑挂了代码整个都没有,这种情况下 我们只能只能利用一些逆向的技巧和工具了 来解析在服务器发布好的dll。那么你只是单纯的修改一个.Net程序集中的某个方法或功能,而且这个程序集还是出自于你自己或你所在团队之手,这实在是一件非常容易的事情,这和破解别人的程序完全不同,你不会遇到无法破解的加密算法,也不会遇到让人恶心的加壳混淆。所以我要把用过的工具一个个的列出来总结一下。

    推荐四大发编译工具

    1:.Net Reflector  【收费】

    一提起.Net逆向,其实很多人第一反应都是Reflector这款神器,这一方面是由于Reflector良好的用户体验和强大的插件功能,另一方面要归功于Reflector堪称完美的智能反编译能力,使用它不仅能看到反编译后的IL源码甚至能直接反编译出C#源码,而且和编写时的代码几无二致,如果需要还可以直接另存为工程文件用Visual Studio打开,不过现在已经收费了,所以老司机都选择破解版,有钱人选择正版。 破解地址就不在这里放出,大家自行搜索.

    使用方法:可以直接把dll、exe拖放到左侧,或者文件选择选择

    官方网址:http://www.red-gate.com/products/dotnet-development/reflector/

    2:ILSpy/dnSpy 【免费】

    ILSpy是唯一免费且开源的.NET反编译器,它基于MIT许可证发布。ILSpy的代码生成和语法高亮功能做的非常好。对于反编译的程序集,它既可以将其保存在一个文件中,也可以为所有文件创建一个项目。ILSpy是一个独立的工具,没有Visual Studio集成。,ILSpy 是为了完全替代收费的Reflector而生,它是由 iCSharpCode 团队出品,这个团队开发了著名的 SharpDevelop 。ILSpy 完全开源,ILSpy的使用和上面的Reflector完全类似,可以直接把dll、exe拖放到左侧,或者文件选择选择。

    官方网址:http://ilspy.net/

    ILSPY还有一款同门师弟,感觉比ILSPY还强大

    dnSpy is a .NET assembly editor, decompiler, and debugger forked from ILSpy

    * Assembly editor
    * Decompiler
    * Debugger
    * Tabs and tab groups
    * Themes (blue, dark, light and high contrast)

    If you want to help, fork the project and send pull requests.

    Latest release: https://github.com/0xd4d/dnSpy/releases

    Latest build:
    https://ci.appveyor.com/project/0xd4d/dnspy/build/artifacts

    3:JetBrains dotPeek【免费】

    JetBrains是捷克的一家软件开发公司,出品了大量著名的开发工具,包括:IntelliJ IDEA、PHPStorm、ReSharper、TeamCity、YouTrack等等,每一款产品都如雷贯耳。dotPeek 是 JetBrains 开发的一款.Net反编译工具,是.Net工具套件中的一个相比于前面几款工具来说,dotPeek算比较小众的一款,它生成的代码质量很高,它还会尝试到源代码服务器上抓取代码。DotPeek的导航功能和快捷键非常便捷。它还能精确查找符号的使用,同时支持插件。DotPeek不能与Visual Studio集成。个人感觉它最大的特色就是Visual Studio风格,这对于那些长期在Visual Studio下进行开发的人来说应该更亲切一点。

    官方网址:http://www.jetbrains.com/decompiler/

    4:Telerik JustDecompile 【需要输入信息安装】不喜欢这个就卸载了

    Telerik JustDecompile是一个免费的.NET反编译器,但是有商业化支持。它生成的代码质量也很高。它可以为反编译程序集得到的代码创建一个项目。JustDecompile提供了健壮的查找功能,能够支持全文查找和符号使用查找。它还有一个插件系统,目前在Telerik的网站上有两个可用的扩展。JustDecompile不能与Visual Studio集成。

    官方网址:http://www.telerik.com/products/decompiler.aspx

     

    总结:

    使用舒服些如下:

    dnSPY>ILSPY>Net Reflector>doPeek

    下面是一个dll里面的方法反编译后的对比:

     

    展开全文
  • APK反编译

    万次阅读 多人点赞 2017-12-27 17:31:39
    学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装...
  • 2021 Android APK反编译 apktool使用教程

    万次阅读 多人点赞 2016-10-31 19:36:33
    然后百度“apk反编译”,出来最多的是apktool反编译。百度也真是越来越水了,反正百度出来的教程都是N年前的,现在早就不能用了。很多博主也都不跟新博客了,然后随着jdk发展apktool也跟新很多代了。所有有些博主的...
  • 众所周知,我们开发所用的手机App安装包都是apk文件,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件供用户安装,这时候就很难再看到开发这个应用时使用的资源文件以及代码了,所以就有了反编译这个...
  • Android APK反编译详解(附图)

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

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

    千次下载 热门讨论 2012-08-21 15:43:41
    Android反编译工具,博客请见:Android APK反编译详解(附图) http://blog.csdn.net/sunboy_2050/article/details/6727581
  • 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反编译就这么简单 详解(附图)

    万次阅读 多人点赞 2014-03-11 22:06:09
    你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考...
  • 最全的Android反编译工具包_Androidfby+apk2java 一键反编译,让你直接看到别人的布局文件,和jar源码,帮助你快速熟悉Android app开发内幕
  • 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-...
  • 1、确保IDEA中装有...2、在需要反编译的jar包所在目录执行以下命令等待完成即可(最后一句的data是放在jar包所在目录下的data目录,表示将反编译后的文件放到此目录下): java -cp "D:\software\IntelliJ ID...
  • android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原。因此开发人员如果不准备开源自己的项目就需要知道怎样防止反编译反编译他人的项目来学习。2.3版本以上在eclipse...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,301
精华内容 21,320
关键字:

反编译