有没有什么方法可以像这样替换调用
Socket s = new Socket(Proxy.NO_PROXY);使用
Socket s = new Socket();使用BCEL是因为我不知道怎么做。我知道这会涉及到更改InstructionList,但我不知道如何扫描它,也不知道要查找哪些操作码。
发布于 2012-06-02 03:36:43
如果您使用AspectJ或类似的高级工具,您可能会获得更短的学习曲线。
对于低级字节码修改,不学习Java操作码是不可能成功的。JVM Specification是一个很好的起点。此外,BCEL没有很好的文档记录,如果您可以灵活地选择低级,我建议您使用ASM框架。下面是关于使用ASM的implementing simple bytecode transformation的相应教程。它基于较旧的ASM版本,但其思想仍然是相同的。
https://stackoverflow.com/questions/10855990
复制相似问题