我正在尝试为Java游戏制作一些作弊。一个特定的作弊引起了我的注意。我注意到它加载的类的所有名称都以感叹号开头,因此我决定尝试按名称获取其中一个类。如果你忘记删除它创建的设置文件,那么作弊就会崩溃,所以我得到了其中一个的名字 - "!M"。我决定自己在游戏中注入一个jar文件并尝试该类。我在C和JAR本身创建了一个JAR加载器。我使用Cheat Engine来验证类本身是否已加载到JVM中。我创建了一个简单的JAR,它在注入时调用了这段代码:
try {
Class<?> cheatClass = Class.forName("!M");
showMSGBox(cheatClass.getName());
showMSGBox(cheatClass.getSuperclass().getName());
} catch (Exception ex) {
showMSGBox(ex.toString());
}
showMSGBox(string)只显示一个JOptionPane。当我使用我制作的加载器在游戏中注入JAR时,我被赋予了一个错误,表明没有这样的类。我再次打开了Cheat Engine,看到班级还在那里。任何想法为什么会发生这种情况以及是什么导致它?