public static void injectAccessTransformer(File file, String atName, LaunchClassLoader loader) throws IOException { if (!AlchemyEngine.isRuntimeDeobfuscationEnabled() || file == null) return; String at = null; try (JarFile jar = new JarFile(file)) { ZipEntry entry = jar.getEntry("META-INF/" + atName); if (entry != null) at = Tool.read(jar.getInputStream(entry)); } if (at != null) { List<IClassTransformer> transformers = $(loader, "transformers"); for (IClassTransformer t : transformers) if (t instanceof AccessTransformer) { AccessTransformer transformer = (AccessTransformer) t; $(transformer, "processATFile", CharSource.wrap(at)); break; } } }