• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java DecompilerContext类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java ClassReader类代码示例发布时间:2022-05-15
下一篇:
Java TheatreDetailLiteVo类代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap