问题标签 [bcel]
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.
java - BCEL 传递“this”参数
我有
并且在 MainClass(.class 文件)中有aMethod
如何使用 Apache BCEL 做到这一点?非常感谢!
java - 如何从java中的字节偏移量获取源代码的行号?
我正在操作一个 .class 文件。我正在使用InstrutionHandle包来一次获取一个说明。我通过getPosition()方法获得了指令的字节偏移量,我可以从字节偏移量中获取源行号吗?
java - Java BCEL 注入/替换出错
背景:我正在注入 Minecraft Launcher 以获取小程序(我已经完成了),但现在我希望通过我的类加载器加载 Minecraft 的文件。我找到了 GameUpdater.java(Minecraft 的游戏更新程序,也是客户端小程序的调度程序)的方法,并且在该方法下有一个名为“createApplet”的方法。
GameUpdater.java:
好的,很简单,将 classLoader.loadClass 替换为您自己的静态加载方法。所以,我尝试在我的类加载器中,这是我的转换代码:
然而,我倒在了我的脸上。这是更新后的 gameupdater.class(如您在上面看到的,我将其转储)
这是 GameUpdater 中 createApplet 方法的字节码图片
现在,我不知道该怎么做。如果有人能指出我正确的方向,那就太棒了!同时,我将继续尝试并阅读 bcel 文档。
如果您对更多代码等有任何疑问,请告诉我。
java - VerifyError:堆栈大小太大(这是什么意思?)
我对 Java 字节码还很陌生。我正在使用 BCEL 生成字节码,但是当我尝试使用生成的代码时收到一条错误消息。(事后看来,ObjectWeb ASM 似乎比 BCEL 更先进、更常用。)
这是错误消息:
这是方法:
据我了解,局部变量表是正确的,因为它与输入参数匹配。我没有添加“this”变量,因为该方法是静态的。
如果我没记错的话, lconst_0 将一个长值 0 加载到堆栈上,然后 lreturn 使用该值并返回它。
我究竟做错了什么?这里有足够的信息可以告诉吗?
谢谢!
java - 使用 BCEL 跟踪 java 字节码中的每条指令
我正在使用 BCEL 生成字节码,我只想在输入类的静态方法中的每一行之前打印出 (println)。我尝试使用 BCEL 进行检测,但会导致不同形式的错误。它说
有时,如果我在任何指令上放置一些静态方法调用,它就会开始工作,有时它不会。任何帮助将非常感激...
更新:我修好了。这与 BCEL 库无关,它是 JDK 版本(1.7),它没有验证我的检测类。因此,如果有人遇到此类问题,请使用 JDK 1.6 或使用 JVM 选项“-XX:-UseSplitVerifier”。
干杯
java - 当对象状态改变时调用方法
我提供了一个注释@validateName
,任何人都可以将其包含在他们的代码中。假设有人编码
然后他们可以调用NameValidator.validate(personObject)
或一些类似的方法来验证该字段。
我想确保名称字段始终处于有效状态,即我想validate()
在带注释的变量更改时自动调用该方法(无论它在类内部还是外部更改)。
我愿意编写一个挂钩到 Eclipse 并在编译阶段被调用的插件。请提供一些我可以开始寻找解决方案的指示。
(我想我必须实现某种 AOP 或者应该使用 BCEL 或其他东西修改字节码。我不确定,因为我没有尝试过两者。)
java - 使用 bcel 将内部类移动到另一个外部类
我想将内部类从外部类移动到另一个外部类。是否可以使用bcel来做到这一点?例如:
将转换为:
和
谢谢。
java - 我在哪里可以找到 BCEL 6.0 以及如何修改它添加补丁?
我用于我的项目 BCEL-5.2,几个月后我意识到它不包含局部变量类型表的类。我看到它存在于 BCEL-6.0 中,并且我还发现了一个可以应用的补丁。
我在哪里可以找到这个库的源代码?
有人知道添加补丁后如何获取库吗?
java - 如何使用 BCEL 更改静态字段的值?
例如,我想使用 BCEL 重置静态字段
到myValue = 2
. 无法使用其他字节码库,例如 ASM。