转载自:http://hi.baidu.com/%CB%BF%D4%B5%CC%EC%CF%C2/blog/item/2284e2debafc541e495403ec.html
To copy others is necessary, but to copy oneself is pathetic.【模仿别人是必要的,但重复自己是可悲的】——毕加索。
一直常备的反编译工具是JAD,今天看到了另一种快速的编译工具,使用后感觉不错,而且直接带有图形界面。
在 Java 开发领域中,经常会遇到需要查看已编译的 Java 类文件的情况。然而,已编译的类文件通常以二进制形式存在,不可直接阅读和理解。幸运的是,有一款强大而易用的工具,它可以帮助我们将这些类文件转换为可读的 Java 源代码。它就是 JD-GUI(Java Decompiler GUI)。
大多商业软件,会对程序进行加密、加壳等安全措施以防范软件被破解,从而使得反编译越来越难。反编译是一个对目标可执行程序进行逆向分析,从而得到源代码的过程。尤其是像Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。
putty PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。
早在4年前我曾发表过一篇关于《Android开发之反编译与防止反编译》的文章,我在该文章中对如何在Windows平台反编译APK做了讲解,如今用Mac系统的同学越来越多,也有很多朋友问我能否出一篇关于
在Ubuntu(使用xfce4桌面)上通过deb包安装完JD-GUI后,启动时没有任何响应。于是重新下载JD-GUI的jar包,使用命令后方式再次启动,这时可以看到下面的错误:
APK(android Application PacKage)文件是安卓app的安装文件,其实就是一个zip或rar压缩包,把apk后缀改为zip,即可解压得到一堆安卓相关文件。
今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程。尤其是像.NET、Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。当然,也有一些商业软件,对其程序进行了混淆加密,这样我们就很难用工具反编译了。
总之,有时候我们想要阅读代码,但是只有jar包却没有源码,就需要用到反编译工具了。
我们下面的操作需要使用到 mac上Android反编译工具dex2jar 已经安装过的可以直接前往下方查看。
如果版本>=1.8 ,可以使用 procyon-decompiler,不过是命令行界面
homebrew安装: brew install apktool brew install dex2jar JD-GUI去http://jd.benow.ca/下载 dmg可能不支持最新版本的mac用不了,打开就报错
https://ibotpeaches.github.io/Apktool/install/
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
apk(android package)就是我们安卓系统的安装文件,可以在模拟器和手机中直接打开安装,从项目中打包apk有几种方式可取 一、最简单的方法(类似我们的winfrom) 只要我们调试或者运行过项目,在项目下的bin debug下就有同名apk文件了(Eclipse)下是这样的。在Android下变成了\app\build\apk下了 当然我们不能把这个apk放在商店。没有签名会被人家的apk替换 二、签名发布 1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同
Android反编译查看源码 首先把.apk应用程序包复制一份到桌面,将.apk后缀名改为.zip文件 打开文件夹,找到classes.dex文件 安装dex2jar工具生成jar包 使用dex2jar工具 安装JD-GUI工具 完成后运行.exe程序 注:妥善使用,请尊重别人的劳动成果! 首先把.apk应用程序包复制一份到桌面,将.apk后缀名改为.zip文件 📷 📷 打开文件夹,找到classes.dex文件 📷 安装dex2jar工具生成jar包 官网下载 📷 使用dex2jar工具 将需要反编译的
反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载;
又到周末一个人侘在家里无事可干,这就是程序员的悲哀啊。好了我们利用周末的时间继续介绍android apk防止反编译技术的另一种方法。前三篇我们讲了加壳技术、运行时修改字节码和伪加密,如果有不明白的可以查看前三篇中关于这三种技术的介绍。接下来我们将介绍另一种防止apk反编译的技术-对抗JD-GUI。 一、对抗JD-GUI原理 通常在对apk进行反编译的时候用到的最多的两个工具就是apk-tool和dex2jar。利用这两个工具将apk首先反编译成classes.dex然后再将classes.dex反编译成j
JD-GUI和JAD是两个用于反编译Java字节码的工具。它们通常在以下情况下使用:
根据apktool网站提示的下载方法,右击wrapper script,链接存储为apktool,不要带拓展名
在我们安卓开发当中,我们不仅需要掌握基础的开发技能,也需要掌握软件的安全技能,这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件,同时也可以让自己的核心技术不会被别人所盗取。首先我们应当了解的是,对于反编译我们一共需要三个工具,它们分别是:APKTool,dex2jar,和jd-gui。APKTool:用于解析apk的res文件以及AndroidManifest.xml文件dex2jar:用于把apk解压后生成的classes.dex文件解析为后缀为jar的文件,与下面的jd-gui工具联合使用则可以得到我们的核心Java代码jd-gui:将上一步所得到的jar文件解析为Java文件,从而得到软件的核心代码
Apktool是最常用的一款安卓反编译工具。支持多平台,在Linux中我们可以用apt命令直接安装。
相信在大学学习过编译原理这门课程的小伙伴都看过这段话,“编译的主要的目的是将便于人编写、阅读、维护的高级语言所写作的源代码程序,翻译为计算机能解读、运行的低级语言的程序,也就是可执行文件。那么反之,我们亦可以通过低级语言进行反向工程,获取其源代码。这个过程,就叫做反编译。”
做Android开发的程序员对反编译都比较痛恨,不想让自己的劳动成果成了别人的,反编译主要的目的在于学习。利用反编译进行相关的汉化或修改,都是不道德的。
dex2jar 这个工具用于将dex文件转换成jar文件 下载地址:http://sourceforge.net/projects/dex2jar/files/
学习 Android 安全 , 首先要了解常用的破解 Android 应用的方式 , 本篇博客中简单介绍了破解 Android 应用的
Android的内核源码很大,有几个G,仔细找找网上有许多下载的地方。作为普通开发者,一般不需要阅读内核源码,但一点都不了解好像也不行,因为实际开发中有时候就得会那么一点点。下面几个源码目录,是开发者在实际开发中可以参考的: \system\core\toolbox : linux后台命令的源码,如ls、rm、kill、chmod、top、netstat等等。 \packages\apps : Android自带的应用程序的源码,如计算器、日历、相机、浏览器、联系人、音乐、拨号、设置等等。 \sdk : Android开发的辅助工具源码,如eclipse插件、emulator模拟器、ddms管理工具、draw9patch点九制图工具。 \frameworks\base\core\java\android : 提供给开发者的SDK开发框架的源码,基本与“Android SDK Manager”上下载的SDK一致。
DIVA(Damn insecure and vulnerable App)是一个故意设计的存在很多漏洞的Android app,目的是为了让开发、安全工程师、QA等了解Android app常见的一些安全问题,类似dvwa,也可以把它当成一个漏洞演练系统。下载地址:
例如,假设我们有一个名为Example.class的Java类,可以使用以下命令查看其字节码反编译结果:
APKTool是GOOGLE提供的APK编译工具,需要JAVA运行环境,推荐使用JDK1.6或者JDK1.7。
本文主要介绍4个Java的反编译工具:javap、jad和cfr以及可视化反编译工具JD-GUI
APP反向编译工具是APP安全领域很重要的工具,本节介绍Dex2jar、和jd-gui。秀一节介绍apktool。
反编译,即从apk安装包还原出Android源码。 本篇内容将使用dex2jar和jd-gui两个工具。 (工具可在微信公众号“我有一计”回复“反编译”进行下载)
文章目录 一、坚持60s 二、答题步骤 1.使用jd-gui进行jar文件的反编译得到如下flag 2.把flag进行base64解码 总结 ---- 一、坚持60s 文件:jar文件 二、答题步骤 1.使用jd-gui进行jar文件的反编译得到如下flag 📷 2.把flag进行base64解码 📷 总结 jd-gui base64
作为Android开发者反编译apk是我们需要掌握的技能,那么在Ubuntu环境下反编译怎么进行Apk的反编译呢?
jd-gui 查看jar包的java代码 使用jd-gui打开classes-dex2jar.jar就可以看到源代码了
在这篇技术博客中,跟随猫头虎博主的脚步,深入探索Java JAR文件反编译工具的神秘领域。无论你是编程新手还是资深开发者,本文都将带你了解如何逆向工程Java类文件,揭露其中的代码逻辑。通过本文,你将学会使用各种强大的反编译工具,包括CFR、Fernflower、Procyon和JD-GUI,它们各自的优势、劣势、下载方式和使用方法将一一展开。加入我们,发掘隐藏在JAR文件背后的秘密吧!本文包含关键词,如“Java反编译工具”、“CFR下载”、“Fernflower使用方法”等,旨在帮助你轻松找到本篇文章。
如果出现无法验证开发者,你确定要运行此软件吗提示则到设置中点击允许,这里会弹出是否允许
了解下这两个文件类型:.java文件是给人看的,.class是给计算机看的。程序员编写的是.java文件,经编译后生成.class文件给计算执行。
学过Java的人都知道,Object是所有类的父类。但是你有没有这样的疑问,我并没有写extends Object,它是怎么默认继承Object的呢?
今天上班的时候,我的一位专于web安全的网友联系我,让我帮忙分析一款app的架构和运行方式。虽然之前没有弄过这一块,但是出于好奇,也希望在安卓相关方面多接触点陌生的东西,我欣然地接受了。分析一款app,首先需要拿到源码,而拿到源码的第一步就是反编译,本篇文章我们来讲解反编译的工具的使用,因本人使用的是Mac电脑,所以本片文章基于Mac平台。
应用程序显示包内容,随后找到 Contents 下面的 info.plist 文件打开。
有时候需要搞清楚jar包内部的方法调用依赖,并且有时候我们拿不到源码,默认IDE都没有这个功能,或者功能不够完善。IDEA的反编译是比较完善的,但是寻找jar包内部方法调用还是不够完善。 一种思路是能不能把jar包批量反编译成为项目,导入IDE中,这样就能分析依赖了。我们可以用jd-gui工具:http://java-decompiler.github.io/ 但是,jd-gui也有反编译不了的时候,例如:
IDEA IDE 是java开发的首选IDE, 拥有非常强大、便捷的功能。在目前的项目中debug时遇到了源码不匹配的问题,影响到调试断点。
我们下载到的Android App 安装包是 Apk文件(Android Application Package) 。通过 Apk 文件,我们也可以得到这个应用的代码和资源文件,对应用进行修改。
Luyten是一款很强大的反编译工具包,是一款github的开源工具,软件功能非常强大,界面简洁明晰、操作方便快捷,设计得很人性化。
😀 Java Decompiler 是Java反编译工具,可以对 Java 5 和更高版本的 class 文件进行反编译分析。
领取专属 10元无门槛券
手把手带您无忧上云