问题标签 [bytecode-manipulation]

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 投票
3 回答
428 浏览

string - 是否可以更改 Lua 字节码中的字符串(内容和大小)以使其仍然正确?

是否可以更改 Lua 字节码中的字符串(内容和大小)以使其仍然正确?它是关于翻译 Lua 字节码中的字符串。当然,并不是每种语言的每个单词都有相同的大小......

0 投票
1 回答
586 浏览

python - 如何使用 importlib 重写字节码?

我正在寻找一种在 Python 2.x 中使用importlib 即时重写导入模块的字节码的方法。换句话说,我需要在导入期间在编译和执行步骤之间挂钩我自己的函数。除此之外,我希望导入功能就像内置功能一样工作。

我已经使用imputil做到了这一点,但是该库并未涵盖所有情况,并且无论如何都已弃用。

0 投票
3 回答
427 浏览

perl - 如何从 Perl 中的 coderef 获取语法树?

我想在 Perl 中检查和操作任意 Perl 过程的代码(由 coderefs 获得)。是否有用于此的工具/模块/库?类似于B::Concise的东西,除了 B::Concise 在输出上打印代码,但我想以编程方式检查它。

我想像这样使用它。给定一个 coderef F,它被称为例如。有 10 个参数:

我想创建一个函数F1,st。

那就是将它“分解”成两部分,第二部分不依赖,x1第一部分尽可能简单(我假设F它是一个巨大的产品)。

我想要的应用程序是Metropolis 采样算法的优化- 假设我正在对分布进行采样p(x1 | x2 = X1, x3 = X3, ...) = f(x1, x2, x3, ...)。算法本身是不变的。乘法常数因子和其他变量不会通过算法改变,因此根本不需要评估不依赖的部分x1(即从上面)。$c

联合概率可能有例如。以下形式:

我还考虑将其构造p为一个对象,该对象由具有特定因素所依赖的变量的注释的因素组成。即使这也将受益于代码自省(自动确定变量)。

0 投票
2 回答
629 浏览

java - 在可能被序列化的类上使用字节码增强技术是否安全?为什么?

我还没有尝试过,但它似乎有风险。我正在考虑的案例是使用 JiBX 检测简单的 VO 类。这些 VO 将通过 AMF 和可能的其他方案进行序列化。任何人都可以确认或否认我的怀疑,即做像字节码增强这样的幕后工作可能会搞砸一些事情,并提供一些背景信息来说明原因吗?另外,我对 JiBX 的具体案例感兴趣。

0 投票
2 回答
749 浏览

java - Obj C 等价于 Double.doubleToLongBits

我正在将一些 Java 代码移植到 Objective C 并且知道足够多的位来让我头疼。有人可以指出我与 Double.doubleToLongBits 和 Float.floatToIntBits 等效的 objC 吗?

0 投票
1 回答
967 浏览

java - 使用 ASMifierClassVisitor 时出错

我想使用 ASMifierClassVisitor 工具来获取创建类的 asm 代码,但是当我使用它时出现错误

我使用了代码

这里有什么问题?

0 投票
5 回答
3907 浏览

java - java反汇编重组

假设我想要一个 java 类文件,反汇编它,调整 java 字节码输出,然后重新组装它。

我需要重命名常量池表中的符号。我也无权访问源代码,使用反编译器似乎有点矫枉过正。我不想优化任何东西——java 在这方面做得很好。

有没有...一种简单的方法来做到这一点?我找到了几种用于拆卸或重新组装的工具,但两者都没有。或者没有成对的工具似乎使用相同的格式来表示文本中的字节码。

0 投票
2 回答
529 浏览

java - 类中字段的字节码增强

是否可以通过在读取或写入类字段时执行代码的字节码增强向类添加“钩子”?例如,每当为字段分配新值时,我想自动设置一个“脏”标志。

如果是这样,哪些库最适合实现此功能?

0 投票
2 回答
541 浏览

java - 字节码操作(如果有的话)有什么危险?

字节码增强似乎是一种非常有趣的 Java 技术,但它有点“黑魔法”的感觉。使用它是否有任何缺点(除了将功能添加到源代码中不明显的类的事实)?

它是否会导致安全性、序列化等问题?

0 投票
2 回答
2627 浏览

java - 字节码操作以拦截设置字段的值

使用类似ASMor的库cglib,有没有办法在设置类字段的值时向类添加字节码指令以执行代码?

例如,假设我有这个类:

假设一段代码包含这一行:

person.name = "Joe";

我希望截获这条指令,以便将dirty标志设置为true. 我知道这对于 setter 方法是可能的person.setName (“Joe”)——因为类方法可以通过字节码操作来修改,但我想对字段做同样的事情。

这可能吗,如果可以,怎么做?

编辑

我想避免修改访问类的代码部分,我正在寻找一种方法将拦截代码保留为Person类的一部分。是否有用于字段访问的伪方法,类似于 Python 类中的属性?