Список названий всех подгруженных классов в майнкрафт.

Версия Minecraft
1.7.10
API
Forge
Кароче я могу получать названия всех классов модов которые на клиенте в папке mods, а если кто шарит, как по удобному чекать названия всех подгруженных класов в майнкрафт.
(Или если знаете то посоветуйте статьи как чекать изменения в классах майнкрафта или модов, что-то в таком духе.)
Сгодится всё что связано с этой темой и на светлой стороне силы.
 
Решение
Java:
FilenameFilter jarFilter = (dir, name) -> name.endsWith(".jar");
        File[] mods = new File("./mods/").listFiles(jarFilter);
        for (File file : Objects.requireNonNull(mods)) {
            try {
                JarFile jarFile = new JarFile(file);
                List<JarEntry> classes = jarFile.stream().filter(e -> e.getName().endsWith(".class"))
                        .collect(Collectors.toList());
                for (JarEntry classFile : classes) {
                    System.out.println(classFile.getName());
                }
            }catch(IOException e) {
                e.printStackTrace();
            }
        }
219
12
119
ClassChecker:
                    Field field;
                    try {
                        field = ClassLoader.class.getDeclaredField("classes");
                        field.setAccessible(true);
                        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
                        Vector<Class> classes = (Vector<Class>) field.get(classLoader);

                        for (Class cls : classes) {
                            java.net.URL location = cls.getResource('/' + cls.getName().replace('.', '/') + ".class");
                            System.out.println(cls.getName());
                        }
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Java:
FilenameFilter jarFilter = (dir, name) -> name.endsWith(".jar");
        File[] mods = new File("./mods/").listFiles(jarFilter);
        for (File file : Objects.requireNonNull(mods)) {
            try {
                JarFile jarFile = new JarFile(file);
                List<JarEntry> classes = jarFile.stream().filter(e -> e.getName().endsWith(".class"))
                        .collect(Collectors.toList());
                for (JarEntry classFile : classes) {
                    System.out.println(classFile.getName());
                }
            }catch(IOException e) {
                e.printStackTrace();
            }
        }
 
1,074
72
372
Кароче я могу получать названия всех классов модов которые на клиенте в папке mods, а если кто шарит, как по удобному чекать названия всех подгруженных класов в майнкрафт.
Папка mods - код анализа файлов дали выше.
Если хочется знать список загруженных классов - регаешь свой ничего не делающий трансформер или к LaunchClassLoader обратись, там есть поле с кешем уже загруженных классов.

Заинжекченные классы читов так не найти, ни достать их исходник. Любой инжектор напрямую вызывает ClassLoader#defineClass
 
Последнее редактирование:
То есть какое-то руководство или инфа о том как детектить непонятные классы или чето в этом духе? Ну например этот ClassLoader#defineClass детектить можно как-то?
 
Сверху