【发布时间】:2018-12-23 20:12:08
【问题描述】:
这是我的 Agent.jar 的代码
public class Agent
{
public static void agentmain(String s, Instrumentation instrumentation)
{
try
{
ClassLoader classLoader = null;
for (Class clazz : instrumentation.getAllLoadedClasses())
{
String className = clazz.getName();
if (className.equalsIgnoreCase("ave")) /* Just a class from the running Programm */
{
classLoader = clazz.getClassLoader();
}
}
/* In the Cheat.jar are Classes which im trying to load */
ClassLoader loader = URLClassLoader.newInstance(new URL[]{new URL("C:\\Users\\michi\\Desktop\\Injection\\Cheat.jar")}, classLoader);
Class.forName("de.simplyblack.client.client.module.Category", true, loader);
Class.forName("de.simplyblack.client.client.module.Module", true, loader);
Class.forName("de.simplyblack.client.client.module.ModuleManager", true, loader);
} catch (Throwable t)
{
t.printStackTrace();
}
}
}
我正在用一个额外的程序加载它。
VirtualMachine virtualMachine = VirtualMachine.attach(id);
virtualMachine.loadAgent(new File("C:\\Users\\michi\\Desktop\\Injection\\Client.jar").getAbsolutePath());
virtualMachine.detach();
但这不起作用。
Later I visit an Class, and make an call for the ModuleManager class.
如果我注入它,我会得到一个
Class not found: de.simplyblack.client.client.module.ModuleManager
错误。
您能告诉我如何解决这个问题吗? 这对我有很大帮助! 谢谢。
【问题讨论】:
-
这看起来不像minimal reproducible example。你没有显示如何你试图加载任何东西,或者它是如何不工作的。另外,这与汇编语言有什么关系? (assembly 标签。)这是 java-bytecode-asm 吗?
-
是的,我会修复它。
-
所有相关代码都应该发布在您的问题中,而不是链接中,最好是minimal reproducible example。
-
谢谢,我修好了。
标签: java code-injection agent java-bytecode-asm