jd-gui

从字节码层面,解析 Java 布尔型的实现原理

夙愿已清 提交于 2020-08-12 06:34:23
最近在系统回顾学习 Java 虚拟机方面的知识,其中想到一个很有意思的问题: 布尔型在虚拟机中到底是什么类型? 要想解答这个问题,我们看 JDK 的源码是无法解决源码的,我们必须深入到 class 文件中才能解决问题。于是他给出了这么一道题: public class Foo{ static boolean flag; public static void main(String[] args){ flag = true; if(flag){ System.out.println("Hello, Java!"); } if(flag == true){ System.out.println("Hello, JVM!"); } } } 这道题很简单,结果是输出: Hello, Java! Hello, JVM! 但我们要深入到 class 文件中去看看 JVM 对于这段代码,它到底是怎么执行字节码指令的。于是我们使用 javac 命令得到它的 class 字节码文件: javac Foo.java 字节码文件都是十六进制的字符集合,我们一般可以用 javap 命令来实现反汇编工作。但这次我们使用另一个工具,即 asmtools。它是 OpenJDK 提供的另一个反汇编工具。 java -cp /path/to/asmtools.jar org.openjdk.asmtools

Android ***测试学习手册(三)Android 应用的逆向和审计

断了今生、忘了曾经 提交于 2020-08-04 18:25:55
在本章中,我们将查看 Android 应用程序或 .apk 文件,并了解其不同的组件。 我们还将使用工具( 如 Apktool,dex2jar 和 jd-gui) 来逆向应用程序。 我们将进一步学习如何通过逆向和分析源代码来寻找 Android 应用程序中的各种漏洞。 我们还将使用一些静态分析工具和脚本来查找漏洞并利用它们。 3.1 Android 应用程序拆解 Android 应用程序是在开发应用程序时创建的数据和资源文件的归档文件。 Android 应用程序的扩展名是 .apk ,意思是应用程序包,在大多数情况下包括以下文件和文件夹: Classes.dex (文件) AndroidManifest.xml (文件) META-INF (文件夹) resources.arsc (文件) res(文件夹) assets(文件夹) lib (文件夹) 为了验证这一点,我们可以使用任何归档管理器应用程序( 如 7zip,WinRAR 或任何首选应用程序) 简单地解压缩应用程序。 在 Linux 或 Mac 上,我们可以简单地使用 unzip 命令来展示压缩包的内容,如下面的截图所示: 这里,我们使用 -l ( list) 标志,以便简单地展示压缩包的内容,而不是解压它。 我们还可以使用 file 命令来查看它是否是一个有效的压缩包。 Android 应用程序由各种组件组成

Android反编译三件套 apktool 、dex2jar、jd-gui

自作多情 提交于 2020-07-29 10:23:31
1.还是老话下载三件套(点击下载)   或者自己在百度搜索下载    2.使用apktool反编译apk   cd到D:\TESTCODE\android\android反编译三件套目录下   输入java -jar apktool_2.3.4.jar d -f yv.apk -o vpn   yv.apk (要反编译的apk名字) vpn(反编译后存到vpn目录下),注:我的yv.apk和apktool 、dex2jar、jd-gui 处于同一目录下。    3.查看vpn目录下的反编译情况    4.使用dex2jar反编译apk得到Java源代码   将yv.apk解压将其中的classes.dex文件放到dex2jar-2.0 目录下    5.dos命令定位到dex2jar.bat所在目录,输入"d2j-dex2jar classes.dex",效果如下:       6.使用【jd-gui】工具将class文件反编译成java源代码   双击jd-gui.exe 将classes-dex2jar.jar 拖入jd-gui.exe即可      参考:https://blog.csdn.net/s13383754499/article/details/78914592   也有在线反编译的工具 http://www.javadecompilers.com/jad 来源:

Android APK反编译教程

只愿长相守 提交于 2020-04-07 10:43:54
Google Android平台选择了Java Dalvik VM的方式使其程序很容易破解和被修改,首先APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,类似Sun JavaMe的Jar压缩格式一样,不过比较去别的是Android上的二进制代码被编译成为Dex的字节码,所有的Java文件最终会编译进该文件中去,作为托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译。所有的类调用、涉及到的方法都在里面体现到,至于逻辑的执行可以通过实时调试的方法来查看,当然这需要借助一些我们自己编写的跟踪程序。Google最然在Android Market上设置了权限保护app-private文件夹的安全,但是最终我们使用修改定值的系统仍然可以获取到需要的文件。 一、dexdump方法 dexdump是emulator自带提供的查看dex文件的工具,可使用类似这样的命令将dex文件dump到txt文件中: D:\Program Files\android-sdk-windows-1.6_r1\platforms\android-1.6\tools>dexdump.exe -d classes.dex > spk.dump.txt 得到的文件内容,描述了类的信息,但是不怎么好阅读 二、AXMLPrinter2.jar + baksmali.jar +

android软件防反编译与反编译

拟墨画扇 提交于 2020-03-24 07:51:05
3 月,跳不动了?>>> 如何防止 反编译 作为Android应用开发者, 不 得 不 面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就 反编译 出来。 Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹 proguard是一个java代码混淆的工具,通过proguard,别人即使 反编译 你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。 下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看 android-sdk-windows\tools\lib\ proguard.cfg 的内容: [html] view plain copy -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity -keep public

android 反编译jar包 解决多厂家so包冲突问题

有些话、适合烂在心里 提交于 2020-03-24 07:49:25
3 月,跳不动了?>>> 公司要求对接多个手机厂家的rfid,其中涉及到了串口通信,多厂家中有相同厂家调用了同一个libserial_port.so包,但是他们的jar包调用的包名不同,这就只好反编译jar包,然后将jar包重新编译解决。 1.首选下载JD-GUI 官方下载地址 http://java-decompiler.github.io/ 2.打开jd-jui,打开反编译的jar 通过菜单保存为java源码,然后修改代码 3..在工程中创建一个目录结构与你需要修改的类一致,并新建类 例如: 目标类 com.android.xxx.a.class 新建类 com.android.xxx.a.java 4..编译修改后的工程,找到编译出来的.class文件 d 5.然后用压缩工具打开jar包,把修改好的.class拖到相应的位置 6.大功告成 参考链接 https://blog.csdn.net/new_abc/article/details/52243772 http://jackzhang.info/2019/01/21/%E4%BF%AE%E6%94%B9jar%E5%8C%85%E5%B9%B6%E9%87%8D%E6%96%B0%E6%89%93%E5%8C%85/ 点赞 收藏 分享 文章举报 会飞的猪_shine 发布了31 篇原创文章 · 获赞 1 · 访问量

Android 反编译详解

天涯浪子 提交于 2020-03-17 02:20:44
在学习Android开发的过程中,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考了一些文章后简单的详解步骤。 (注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。) 测试环境: win 7 /XP 使用工具: 下载地址: 反编译工具 工具介绍: 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 d [-s] -f test.apk -o test (命令中test.apk指的是要反编译的APK文件全名

开发工具推荐

醉酒当歌 提交于 2020-02-26 18:13:11
1.前言 <br/> 俗话说:“工欲善其事,必先利其器”。 为了助力大家的学习和进阶,本小节介绍几个对 Java 学习非常有帮助的 IDEA 插件,代码反编译和反汇编工具,以及非常不错的网站等。 <br/><br/><br/> 2. IDEA 插件 首先不必多说,IDEA 是目前 Java工程师最主流的开发工具, IDEA 的强大之处不仅在于自身,还在于提供了丰富的插件(这点和谷歌浏览器非常类似)。 本部分介绍几款强大实用的 IDEA 插件,助力大家开发。 以下插件大都可以通过 IDEA 自带的插件管理中心安装,如果搜不到可以去 IDEA 插件官网下载本地导入。 <br/> 2.1 Alibaba Java Coding Guidelines 首先要推荐的是阿里巴巴 Java代码规范插件。 安装该插件后,代码超过 80 行、手动创建线程池等,这些和《手册》中的规约不符时,IDEA中会给出警告提示。 建议大家一定一定一定要安装该插件,它会帮助你检查出很多隐患,督促你写更规范的代码。 <br/><br/> 2.2 jclasslib bytecode viewer <br/> 下面要隆重介绍的是一款可视化的字节码查看插件:jclasslib 。 大家可以直接在 IDEA 插件管理中安装(安装步骤略)。 使用方法: 在 IDEA 打开想研究的类; 编译该类或者直接编译整个项目(

如何“反编译” Java类文件? [关闭]

爱⌒轻易说出口 提交于 2020-01-25 05:22:12
我可以使用什么程序来反编译类文件? 我实际上会得到Java代码,还是仅仅是JVM汇编代码? 关于该站点上的Java性能问题,我经常看到已经“反编译” Java类文件以查看编译器如何优化某些东西的人们的回答。 #1楼 到目前为止,列出的所有JAD链接似乎都已损坏,因此我找到了此站点。 效果很好(至少适用于Linux)! 在Ubuntu 11.10上,无论出于何种原因,我都必须下载静态版本。 http://www.varaneckas.com/jad #2楼 如果要查看Java编译器如何执行某些操作,则不需要反编译,而需要反汇编。 反编译涉及将字节码转换为Java源代码,这意味着丢失了许多低级信息,并且如果您想知道编译器优化,那么这可能就是您感兴趣的信息。 无论如何,我碰巧写了一个 开源Java反汇编程序 。 与Javap不同,这甚至可以在高度病理的类上使用,因此您也可以查看混淆工具对类的作用。 它也可以反编译,尽管我不建议这样做。 #3楼 煤烟 是更新的Java代码的一种选择。 至少它的优点是最近仍在维护... 而且, Java Decompiler 是具有独立GUI和Eclipse集成的反编译器。 最后,虽然没有像其他选项那样 精巧 ,但是没有提及 Jdec 。 #4楼 Procyon 包括反编译器。 是FOSS。 #5楼 JAD对我不起作用(Ubuntu 11.10问题)

APK .

烂漫一生 提交于 2020-01-23 20:25:36
{ 一、准备必要工具 工欲善其事,必先利其器,首先我们要下载好反编译apk时需要的相关工具 1.1、使用工具 1. apktool (资源文件获取) 2. dex2jar(源码文件获取) 3. jd-gui (源码查看) 1 2 3 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的下载,从官方网站上点击 下载时会经常出现如下图所示的问题   但是多试几次又可以下载了