本文整理汇总了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();
}
示例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();
}
示例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();
}