问题标签 [bytecode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
21029 浏览

assembly - 汇编代码和字节码有什么区别?

在寻找源代码、字节码、汇编代码、机器代码、编译器、链接器、解释器、汇编器等所有含义的各种差异时,我只对字节码和汇编代码之间的区别感到困惑。

特别是这篇描述 CIL 的维基百科文章的介绍让我感到困惑,因为它似乎可以互换使用这两个术语(汇编代码和字节码),这让我认为它们的含义可能完全相同。

0 投票
5 回答
628 浏览

java - 为 JVM 生成 .class 文件

我正在开发一个项目,该项目需要我在旅途中生成一个 java“.class”文件,以后可以在 JVM 上编译该文件。在学习和使用 MSIL (Microsoft IL) 这也是一种基于堆栈的中间编程语言之后,以下是我面临的问题:

  1. 与 IL(对于 C# 或 VB)相比,“.class”文件中的 java 字节码以结构化方式包含信息,据我所知,它包含除程序数据之外的元数据,是真的吗? ? 我可以为每个类文件以模板形式生成相同的吗?
  2. 是否必须以二进制格式生成类文件?

我参考了“Joshua Engel 的 Java™ 虚拟机编程”,但它并没有达到我的目的,因为我已经了解了 JVm 指令集。

有人可以帮我吗?所有帮助将不胜感激。生成简单类文件的示例将非常有帮助,因为我还找不到单个 1。

0 投票
6 回答
24102 浏览

java - 字节码到 Java 源代码

是否可以将文件转换.class.java文件?

如何才能做到这一点?

从这个选项中提取的代码的正确性如何?

0 投票
2 回答
1164 浏览

java - 如何使用 ASM 访问者检查堆栈?

我正在尝试使用 Java 字节码工程库ASM来执行静态分析。我有一种情况,我想检查分配给字段的变量。

我有MethodVisitor哪个实现该visitFieldInsn()方法。我正在专门寻找putfield命令。那没问题。问题是,当我遇到 时putfield,我希望能够访问将分配给该字段的变量。具体来说,我想访问有关变量类型的信息。

目前我真的只需要查看堆栈顶部的内容,但如果有更通用的方法来检查它,那就更好了。

有没有办法使用 ASM 来检查堆栈上的变量?

0 投票
6 回答
9754 浏览

java - 是否可以让 System ClassLoader 在运行时加载指定的 .class 文件?

我正在为作业编写一个静态分析工具,它使用 ASM 库分析​​ Java 字节码。我们使用的 ASM 的其中一个部分要求(或至少似乎要求)从 ClassLoader 加载类。

我们希望该工具能够分析 .class 文件,而无需将它们放在类路径中。我们已经在运行时从指定目录加载 .classes 并使用 InputStream 读取它们。在大多数情况下,这对于 ASM 来说是可以接受的。有一些类,例如SimpleVerifier,尝试加载这些类。

在这种情况下,是否可以注册要加载的 .class 文件,以便调用Class.forName()将加载它们?或者有没有一种简单的方法来扩展 ClassLoader 以允许这样做?


编辑:关于的信息URLClassLoader很有用。不幸的是,Thread.currentThread().setContextClassLoader()在这种情况下使用该实例不起作用。我调用的库代码使用它在实例初始化时使用getClass().getClassLoader().

当我设置 URLClassLoader 时,该类尚未初始化,所以我猜 contextClassLoader 没有加载该类。

我是否正确理解了这些回答?是否有可能使用 URLClassLoader 加载第 3 方类?

0 投票
2 回答
773 浏览

java - 从 Eclipse 的 CompilationUnit 生成字节码

不是在做一个 Eclipse 插件项目;但是,我使用生成 org.eclipse.jdt.core.dom.CompilationUnit 实例的外部库。有没有办法从中生成 Java 字节码?

一些搜索显示,CompilationUnit 通常是通过为 Eclipse 项目注册一个自定义构建器,然后让 eclipse 调用它来构建的……但我找不到任何方法来利用它来构建独立的应用程序。

0 投票
2 回答
307 浏览

python - 没有 -O 标志,Python 做了哪些优化?

我一直认为 Python 解释器在没有-O标志的情况下没有进行任何优化,但以下内容有点奇怪:

似乎解释器正在对两个字符串常量的模进行一些折叠。如果我添加一个变量,它会给出一个未优化的结果:

没有 -O 标志,Python 做了哪些优化?有没有办法禁用它们?我想看看未优化的 Python 字节码的外观。我不打算在任何生产类型的环境中这样做。

0 投票
6 回答
5118 浏览

java - 如何静态识别 JAR 中缺少的方法(二进制兼容性)

我想验证 2 个 JAR 之间的二进制兼容性。

按照这个答案中的建议,我使用了jboss tattletale,但它只能找到缺失的类。

如何查找是否缺少方法?有可能吗?

例如

“取决于”类Foo 取决于 Bar(像许多其他中产阶级工人一样)

“编译时间”类

现在想象一个的Bar jar 正在替换已编译的时间栏:

“运行时”类

有没有办法在不运行它并获得的情况下识别丢失的方法NoSuchMethodError


免责声明:这是对我自己的相关问题的重大改写,不可删除。我选择提出一个新问题,因为重新措辞会使当前的 2 个答案与主题完全无关。

0 投票
5 回答
15447 浏览

python - 如何保护 Python 源代码?

是否可以仅分发 Python 脚本的字节码版本(.pyc 文件)而不是原始 .py 文件?我的应用程序嵌入了 Python 解释器并调用 PyImport_Import 来加载脚本。我如何告诉它查找 .pyc 文件并导入它?

0 投票
1 回答
3038 浏览

python - 将 Python 字节码重新组装成原始代码?

这可能是一个愚蠢的问题,但是,鉴于输出,说..

..或.pyc文件 - 是否可以将其重新组装成一段有效的 Python 源代码?即在哪里reassemble(dis(myfunc)) == "def reassembled_function(x):\n print x ** 2"

不是出于任何特定的实际原因,我只是好奇这是否可能,或者是否已经尝试过……

有关的