当变量明确存在时,Javassist 没有这样的字段

2023-12-19

我正在尝试使用 javassist 将代码注入到 minecraft 1.8 jar 中。这insertBefore & insertAfter方法工作得很好。但 insert at 方法并没有按预期工作。我收到此错误:https://gist.github.com/czaarek99/dda36426318f331ce6b0 https://gist.github.com/czaarek99/dda36426318f331ce6b0

这是处理注入的代码:

if (className.equals(mappingManager.getMapping(CommonMappings.MINECRAFT_CLASS))) {

    CtClass ctClass = classPool.get(mappingManager.getMapping(CommonMappings.MINECRAFT_CLASS, true)); //returns "bsu"

    CtMethod tickMethod = ctClass.getDeclaredMethod(mappingManager.getMapping(CommonMappings.RUN_TICK_METHOD)); //returns "r"
    tickMethod.insertBefore("EventManager.call(new TickEvent(TickEvent.PRE_UPDATE));");
    tickMethod.insertAfter("EventManager.call(new TickEvent(TickEvent.POST_UPDATE));");

    String varName = mappingManager.getMapping(CommonMappings.KEYBOARD_KEYCODE_VARIABLE); //returns "var1"

    int lineToInsertAt = Integer.valueOf(mappingManager.getMapping(CommonMappings.KEYBOARD_NEXT_LINE)); //returns "1372"
    tickMethod.insertAt(lineToInsertAt, true, "KeyPressEvent keyPressEvent = new KeyPressEvent("+ varName +");EventManager.call(keyPressEvent);");;

    CtMethod runGameMethod = ctClass.getDeclaredMethod(mappingManager.getMapping(CommonMappings.START_GAME_METHOD)); //returns "aj"
    runGameMethod.insertAfter("InjectClient.getInstance().loadModules();");

    byte[] newCode = ctClass.toBytecode(); //line that throws the error
    ctClass.detach();

    return newCode;
} 

我已经评论了它获取映射的行,本质上这些是我的世界混淆的变量和函数名称,因为这就是我将要插入的内容。

Alright, so the logical explanation is that var1 does not exist? That's not true. If we have a look at the code for the obfuscated bsu class we can see this: enter image description here


好吧,我想通了。结果 javassist 不知道是否定义了局部变量并且假设var1是一个领域。我通过创建自己的变量并将其设置为与var1 has.

Source: http://jboss-javassist.github.io/javassist/tutorial/tutorial2.html http://jboss-javassist.github.io/javassist/tutorial/tutorial2.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当变量明确存在时,Javassist 没有这样的字段 的相关文章

随机推荐