精华内容
下载资源
问答
  • 总结javap是jdk自带的反解析工具。...javap的用法格式:javap 其中classes就是你要反编译的class文件。 在命令行中直接输入javap或javap -help可以看到javap的options有如下选项:-help --help -? ...

    总结

    javap是jdk自带的反解析工具。它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。

    javap的用法格式:

    javap

    其中classes就是你要反编译的class文件。 在命令行中直接输入javap或javap -help可以看到javap的options有如下选项:

    -help --help -? 输出此用法消息

    -version 版本信息,其实是当前javap所在jdk的版本信息,不是class在哪个jdk下生成的。

    -v -verbose 输出附加信息(包括行号、本地变量表,反汇编等详细信息)

    -l 输出行号和本地变量表

    -public 仅显示公共类和成员

    -protected 显示受保护的/公共类和成员

    -package 显示程序包/受保护的/公共类 和成员 (默认)

    -p -private 显示所有类和成员

    -c 对代码进行反汇编

    -s 输出内部类型签名

    -sysinfo 显示正在处理的类的系统信息 (路径, 大小, 日期, MD5 散列)

    -constants 显示静态最终常量

    -classpath 指定查找用户类文件的位置

    -bootclasspath 覆盖引导类文件的位置

    一般常用的是-v -l -c三个选项:

    javap -v classxx,不仅会输出行号、本地变量表信息、反编译汇编代码,还会输出当前类用到的常量池等信息。

    javap -l 会输出行号和本地变量表信息。

    javap -c 会对当前class字节码进行反编译生成汇编代码。

    javap 分析装箱拆箱

    关于equals比较

    double i0 = 0.1;

    Double i1 = new Double(0.1);

    Double i2 = new Double(0.1);

    System.out.println(i1.equals(i2)); //true 2个包装类比较,比较的是包装的基本数据类型的值

    //javap 分析这句话

    System.out.println(i1.equals(i0)); //true 基本数据类型和包装类型比较时,会先把基本数据类型包装后再比较

    基本数据类型和包装类比较时,会先把基本数据类型包装成对应的包装类型,再进行比较。这一点可以通过查看.class字节码来证明:

    8c7f61a5ce864f68884e53bf47be3000.png

    关于 == 比较

    对于基本数据类型,==(双等号)比较的是值,而对于包装类型,==(双等号)比较的则是2个对象的内存地址。

    double i0 = 0.1;

    Double i1 = new Double(0.1);

    Double i2 = new Double(0.1);

    System.out.println(i1 == i2); //false new出来的都是新的对象

    //javap 分析这句话

    System.out.println(i1 == i0); //true 基本数据类型和包装类比较,会先把包装类拆箱

    基本数据类型和包装类型比较时,会先把包装类拆箱再进行值比较(和equals是反的)。这个也可以通过查看字节码来证明:

    a228fa59746d7788ce45132497f38378.png

    展开全文
  • 如果有的时候单给出class文件,要快速看这个class文件的JDK版本号等,其实不用工具,也可以用JDK自带的javap命令进行反编译输出,下面小结其用法:1,javap -verbose 类名得到的信息如下:Compiled from...

    展开全部

    用习惯了著名的反编32313133353236313431303231363533e78988e69d8331333361326265译工具jad的话,如果有的时候单给出class文件,要快速看这个class文件

    的JDK版本号等,其实不用工具,也可以用JDK自带的javap命令进行反编译输出,下面小结

    其用法:

    1,javap -verbose  类名

    得到的信息如下:

    Compiled from "Test.java"

    public class Test extends java.lang.Object

    SourceFile: "Test.java"

    minor version: 0

    major version: 50

    Constant pool:

    ......

    可以看出jdk的版本,这个用在判断某些CLASS的版本是否兼容的时候很有用.

    2 最常见的不带参数的情况:javap 类名

    比如某个类:

    Java代码package test;

    public class Test {

    int number = 5;

    public void sayHello() {

    System.out.println("Hello");

    }

    }

    则:

    C:\temp\javaptest>javap Test

    Compiled from "Test.java"

    public class test.Test extends java.lang.Object{

    int number;

    public test.Test();

    public void sayHello();

    }

    带参数-c:

    则可以看到字节码了:

    Java代码C:\temp\javaptest>javap -c Test

    Compiled from "Test.java"

    public class test.Test extends java.lang.Object{

    int number;

    public test.Test();

    Code:

    0:   aload_0

    1:   invokespecial   #1; //Method java/lang/Object."":()V

    4:   aload_0

    5:   iconst_5

    6:   putfield        #2; //Field number:I

    9:   return

    public void sayHello();

    Code:

    0:   getstatic       #3; //Field java/lang/System.out:Ljava/io/PrintStream;

    3:   ldc     #4; //String Hello

    5:   invokevirtual   #5; //Method java/io/PrintStream.println:(Ljava/lang/String;)V

    8:   return

    }

    带参数-l: 将显示行号和局部变量表

    -public 只显示 public 类及成员。

    -protected 只显示 protected 和 public 类及成员。

    -package 只显示包、protected 和 public 类及成员。这是缺省设置。

    -private 显示所有类和成员。

    展开全文
  • java反编译命令

    2021-05-20 06:11:37
    在服务器上,反编译查看class文件: javap -c 类名

    在服务器上,反编译查看class文件:

    javap -c 类名

    展开全文
  • 平常开发过程中常使用jadx反编译工具进行反编译过程。其实,对于简单的反编译工作亦可以使用JDK自带的命令行工具javap。

    版权声明

    • 本文原创作者:谷哥的小弟
    • 作者博客地址:http://blog.csdn.net/lfdfhl

    javap概述

    平常开发过程中常使用jadx反编译工具进行反编译过程。其实,对于简单的反编译工作亦可以使用JDK自带的命令行工具javap。

    javap使用方式

    使用语法

    javap class文件路径
    

    使用示例

    在这里插入图片描述

    展开全文
  • JVM-javap反编译命令

    2021-01-22 19:01:41
    javap是jdk自带的解析工具。它的作用就是根据class字节码文件,解析出当前类对应的code区(汇编指令)、本地变量表、异常表和代码行偏移量映射表、常量池等等信息。 javap 用法: javap <options> <...
  • 2020年2月3日晚我想反编译一个apk用来学习,结果发现,网上的文章可真nice,费了九牛之力,终于成功。(网上好多文章都是盗的,根本不讲清楚,在那胡说,对此本人竖起大大的拇指),具体过程如下。不赚你们积分,网盘...
  • 怎么用java自带反编译工具查看java字节码文件图文教程,用java自带反编译工具查看java字节码文件,首先,配置好java开发环境,环境变量各种配置,这里就不一一说了,相信大家都配置好了。下面入正题----怎么用java...
  • 直接贴代码了public void exeu(){try{Process p = Runtime.getRuntime().exec(" aapt d badging D:\\360安全浏览器下载\\mt.apk");////Process p = Runtime.getRuntime().exec("cmd.exe /c aapt d badging D:\\360...
  • 反编译jad的命令使用

    2021-03-10 08:11:05
    首先,看一下jad的帮助提示-a - 用JVM字节格式来注解输出-af - 同 -a,... }, default: no)-d - 指定输出文件的文件目录-dead -试图反编译代码的dead 部分(default: no)-disass - 不用用字节码的方式反编译 (no JAV...
  • 命令行中使用javap反编译class文件

    千次阅读 2021-02-10 11:52:10
    由于自己在学习Java JVM相关知识的时候需要将java文件反编译成class文件进行性能分析,故将搜索到的方法整理如下: 步骤: 第一步:运行代码,生成.java文件 第二步:在当前路径下打开cmd窗口 在当前文件...
  • java如何进行反编译

    千次阅读 2021-03-04 00:12:49
    反编译的过程与编译刚好相反,就是将已编译好的编程语言...Java常用反编译工具本文主要介绍4个Java的反编译工具:javap、jad和cfr以及可视化反编译工具JD-GUIJAVAPjavap是jdk自带的一个工具,可以对代码反编译,也可...
  • Java编译命令整理

    千次阅读 2021-02-12 10:59:45
    引言近期在做Android相关开发工作,不可避免的需要接触Java层的调用机制,好多年不用Java了,这里整理下相关的编译命令。作为后续参考使用,也防止每次都需要到处查找。基本概念javac - Java programming language ...
  • 使用IDA反编译.so文件并修改

    千次阅读 2021-05-13 10:53:10
    使用IDA反编译.so文件并修改简述之前一直在做应用层的开发很少接触底层,总感觉底层是一个很神秘的地方。最近各种原因之下有一些逆向的工作,但是好多应用的核心逻辑都是利用jni在c/c++层去实现的,这就给我们的逆向...
  • 原标题:Java代码的编译与反编译一、什么是编译1、利用编译程序从源语言编写的源程序产生目标程序的过程。2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,...
  • 一、需要的工具apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。dex2jar:将反编译后的classes.dex文件转化为.jar文件。jd-gui:用于将.jar文件转换成java代码。二、反编译步骤...
  • 使用IDEA进行反编译

    2021-03-06 11:37:17
    使用IDEA进行反编译 单击右上角的“项目结构”图标,找到文件位置。 复制文件位置到搜索框打开该文件。 点进去发现存在对应的class文件 回到IDEA,右键需要反编译的程序,选择“Open in”–>“File ...
  • import java.util.concurrent.TimeUnit;...对所生成的Mutex.class文件进行反编译,反编译命令是javap -c + 文件相对路径,如下图所示: image.png 若反编译成功,PowerShell界面应如下所示: image.png image.png
  • jd-gui 对字节码文件进行反编译使用阿里开源 Arthas 工具对运行中的类进行反编译一、下载对应的工具二、解压Arthas的jar包三、选择需要反编译的类四、运行结果五、使用jad命令反编译六、成功反编译反编译 ...
  • 打开该路径,找到想要反编译的字节码class文件: 右击idea结构书中的文件夹,选择Show in Explorer: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XidMqacU-1630655116046)(C:\...
  • 怎样用IDEA反编译

    多人点赞 2021-03-15 15:27:22
    然后你找到自己需要编码的文件,然后再次打开IDAE 在自己的某个包哪里点右键,弹出一堆…第一个是New… 在这里面找到Show in Explore,然后点击,然后再开这个文件夹后找到有自己写的java程序那里,然后将上面复制...
  • javap命令如何使用查看反编译字节码 以hui.java为例 1、打开你的文件中要反编译的文件路径,复制下来 2、打开cmd(命令提示符),并转到刚刚我们复制的路径下 3、刚刚编写hui.java文件编译成class文件,使用javac ...
  • 最近一直在复习java基础,这里就记录对于一个类文件如何编译、运行、反编译的,让自己加深一下印象!首先我们来写一个简单的JavaTest方法,大致如下:packagecom.cuiyongzhi.io;publicclassJavaTest{...
  • IDEA怎么反编译jar包

    2021-07-10 22:00:38
    1、查看idea中是否有反编译插件(在setting中进行查看) 2、查看插件的路径(一般在idea安装环境的路径下) 3、进行反编译(在要编译的Jar的路径下新建一个文件夹,名字可以随便取,存放反编译后的文件) ...
  • Android studio 中, 也可以使用javap命令反编译java文件, 得到字节码指令 1. 添加环境变量 (javac.exe / javap.exe 等所在的路径) javac.exe / javap.exe 等所在的路径一般是你安装studio 的目录下的 \jre\...
  • 1 objdump汇编示例1.1 显示main.c的汇编代码1.2 目标文件汇编1.3 可执行文件汇编1.4 objdump汇编常用参数2 objdump帮助信息3 参考资料1 objdump汇编示例源文件main.c:/* main.c */#includevoid swap(int*...
  • 因为在看java编程思想,看到String章节,发现一个命令javap,可以反编译看汇编代码,进行代码的可行性优化。自己心血来潮,在自己的IDEA中想试一试,不想使用cmd命令。正所谓,君子性非异也,善假于物也。废话不多说...
  • WASM反编译,WASM逆向

    千次阅读 2021-03-15 10:09:01
    看了WebAssembly官方文档之后发现了一个工具可以转换成可读性更好的伪代码: wasm-decompile 通过wabt工具库编译出的wasm-decomplie进行转换,清晰多了 ./wabt/bin/wasm-decompile test.wasm -o test.o import ...
  • 使用apktool反编译apk文件:java -jar apktool_2.1.1.jar d xxx.apk使用apktool重新打包为apk文件:java -jar apktool_2.1.1.jar b xxx(xxx为反编译后的文件目录)将.apk文件改为.zip/.rar,解压文件获得classes.dex...
  • step 1: cmd切换到文件目录下 step 2: pip install uncompyle6 step 3: 运行 uncompyle6 -o C:\Users\Administrator\Desktop\temp model1.pyc
  • step2 jad -o -r -s java -d src xx/wepapps/xxxApp/WEB-INF/classes/.../Example.class (执行完毕后,jad的当前目录下会生成1个名为src的子目录,其内会存在反编译后的java文件: Example.java) jad 命令解析 -o:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 166,279
精华内容 66,511
关键字:

反编译命令