当前位置: 首页>>代码示例>>Java>>正文


Java DecompilerContext类代码示例

本文整理汇总了Java中com.strobel.decompiler.DecompilerContext的典型用法代码示例。如果您正苦于以下问题:Java DecompilerContext类的具体用法?Java DecompilerContext怎么用?Java DecompilerContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DecompilerContext类属于com.strobel.decompiler包,在下文中一共展示了DecompilerContext类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getSourceTree

import com.strobel.decompiler.DecompilerContext; //导入依赖的package包/类
public CompilationUnit getSourceTree(String className) {
	
	// we don't know if this class name is obfuscated or deobfuscated
	// we need to tell the decompiler the deobfuscated name so it doesn't get freaked out
	// the decompiler only sees classes after deobfuscation, so we need to load it by the deobfuscated name if there is one
	
	// first, assume class name is deobf
	String deobfClassName = className;
	
	// if it wasn't actually deobf, then we can find a mapping for it and get the deobf name
	ClassMapping classMapping = m_mappings.getClassByObf(className);
	if (classMapping != null && classMapping.getDeobfName() != null) {
		deobfClassName = classMapping.getDeobfName();
	}
	
	// set the type loader
	TranslatingTypeLoader loader = new TranslatingTypeLoader(
		m_jar,
		m_jarIndex,
		getTranslator(TranslationDirection.Obfuscating),
		getTranslator(TranslationDirection.Deobfuscating)
	); 
	m_settings.setTypeLoader(loader);

	// see if procyon can find the type
	TypeReference type = new MetadataSystem(loader).lookupType(deobfClassName);
	if (type == null) {
		throw new Error(String.format("Unable to find type: %s (deobf: %s)\nTried class names: %s",
			className, deobfClassName, loader.getClassNamesToTry(deobfClassName)
		));
	}
	TypeDefinition resolvedType = type.resolve();
	
	// decompile it!
	DecompilerContext context = new DecompilerContext();
	context.setCurrentType(resolvedType);
	context.setSettings(m_settings);
	AstBuilder builder = new AstBuilder(context);
	builder.addType(resolvedType);
	builder.runTransformations(null);
	return builder.getCompilationUnit();
}
 
开发者ID:cccssw,项目名称:enigma-vk,代码行数:43,代码来源:Deobfuscator.java

示例2: getSourceTree

import com.strobel.decompiler.DecompilerContext; //导入依赖的package包/类
public CompilationUnit getSourceTree(String className) {

        // we don't know if this class name is obfuscated or deobfuscated
        // we need to tell the decompiler the deobfuscated name so it doesn't get freaked out
        // the decompiler only sees classes after deobfuscation, so we need to load it by the deobfuscated name if there is one

        // first, assume class name is deobf
        String deobfClassName = className;

        // if it wasn't actually deobf, then we can find a mapping for it and get the deobf name
        ClassMapping classMapping = this.mappings.getClassByObf(className);
        if (classMapping != null && classMapping.getDeobfName() != null) {
            deobfClassName = classMapping.getDeobfName();
        }

        // set the type loader
        TranslatingTypeLoader loader = new TranslatingTypeLoader(
                this.jar,
                this.jarIndex,
                getTranslator(TranslationDirection.Obfuscating),
                getTranslator(TranslationDirection.Deobfuscating)
        );
        this.settings.setTypeLoader(loader);

        // see if procyon can find the type
        TypeReference type = new MetadataSystem(loader).lookupType(deobfClassName);
        if (type == null) {
            throw new Error(String.format("Unable to find type: %s (deobf: %s)\nTried class names: %s",
                    className, deobfClassName, loader.getClassNamesToTry(deobfClassName)
            ));
        }
        TypeDefinition resolvedType = type.resolve();

        // decompile it!
        DecompilerContext context = new DecompilerContext();
        context.setCurrentType(resolvedType);
        context.setSettings(this.settings);
        AstBuilder builder = new AstBuilder(context);
        builder.addType(resolvedType);
        builder.runTransformations(null);
        return builder.getCompilationUnit();
    }
 
开发者ID:OpenModLoader,项目名称:Enigma,代码行数:43,代码来源:Deobfuscator.java

示例3: getSourceTree

import com.strobel.decompiler.DecompilerContext; //导入依赖的package包/类
public CompilationUnit getSourceTree(String className)
{
	
	// we don't know if this class name is obfuscated or deobfuscated
	// we need to tell the decompiler the deobfuscated name so it doesn't
	// get freaked out
	// the decompiler only sees classes after deobfuscation, so we need to
	// load it by the deobfuscated name if there is one
	
	// first, assume class name is deobf
	String deobfClassName = className;
	
	// if it wasn't actually deobf, then we can find a mapping for it and
	// get the deobf name
	ClassMapping classMapping = m_mappings.getClassByObf(className);
	if(classMapping != null && classMapping.getDeobfName() != null)
		deobfClassName = classMapping.getDeobfName();
	
	// set the type loader
	TranslatingTypeLoader loader =
		new TranslatingTypeLoader(m_jar, m_jarIndex,
			getTranslator(TranslationDirection.Obfuscating),
			getTranslator(TranslationDirection.Deobfuscating));
	m_settings.setTypeLoader(loader);
	
	// see if procyon can find the type
	TypeReference type =
		new MetadataSystem(loader).lookupType(deobfClassName);
	if(type == null)
		throw new Error(String.format(
			"Unable to find type: %s (deobf: %s)\nTried class names: %s",
			className, deobfClassName,
			loader.getClassNamesToTry(deobfClassName)));
	TypeDefinition resolvedType = type.resolve();
	
	// decompile it!
	DecompilerContext context = new DecompilerContext();
	context.setCurrentType(resolvedType);
	context.setSettings(m_settings);
	AstBuilder builder = new AstBuilder(context);
	builder.addType(resolvedType);
	builder.runTransformations(null);
	return builder.getCompilationUnit();
}
 
开发者ID:Wurst-Imperium,项目名称:Wurst-Enigma,代码行数:45,代码来源:Deobfuscator.java


注:本文中的com.strobel.decompiler.DecompilerContext类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。