本文整理了Java中soot.options.Options.src_prec()
方法的一些代码示例,展示了Options.src_prec()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Options.src_prec()
方法的具体详情如下:
包路径:soot.options.Options
类名称:Options
方法名:src_prec
暂无
代码示例来源:origin: Sable/soot
public String defaultClassPath() {
// If we have an apk file on the process dir and do not have a src-prec
// option
// that loads APK files, we give a warning
if (Options.v().src_prec() != Options.src_prec_apk) {
for (String entry : Options.v().process_dir()) {
if (entry.toLowerCase().endsWith(".apk")) {
System.err.println("APK file on process dir, but chosen src-prec does not support loading APKs");
break;
}
}
}
if (Options.v().src_prec() == Options.src_prec_apk) {
return defaultAndroidClassPath();
} else {
return defaultJavaClassPath();
}
}
代码示例来源:origin: Sable/soot
protected void setupClassProviders() {
classProviders = new LinkedList<ClassProvider>();
ClassProvider classFileClassProvider = Options.v().coffi() ? new CoffiClassProvider() : new AsmClassProvider();
switch (Options.v().src_prec()) {
case Options.src_prec_class:
classProviders.add(classFileClassProvider);
代码示例来源:origin: Sable/soot
protected void initializeProgram() {
if (Options.v().src_prec() != Options.src_prec_apk_c_j) {
program = new Program();
program.state().reset();
program.initBytecodeReader(new BytecodeParser());
program.initJavaParser(new JavaParser() {
@Override
public CompilationUnit parse(InputStream is, String fileName) throws IOException, beaver.Parser.Exception {
return new JastAddJavaParser().parse(is, fileName);
}
});
program.options().initOptions();
program.options().addKeyValueOption("-classpath");
program.options().setValueForOption(Scene.v().getSootClassPath(), "-classpath");
if (Options.v().src_prec() == Options.src_prec_java) {
program.setSrcPrec(Program.SRC_PREC_JAVA);
} else if (Options.v().src_prec() == Options.src_prec_class) {
program.setSrcPrec(Program.SRC_PREC_CLASS);
} else if (Options.v().src_prec() == Options.src_prec_only_class) {
program.setSrcPrec(Program.SRC_PREC_CLASS);
}
program.initPaths();
}
}
代码示例来源:origin: Sable/soot
private void runPacksNormally() {
if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()) {
LineNumberAdder lineNumAdder = LineNumberAdder.v();
lineNumAdder.internalTransform("", null);
代码示例来源:origin: Sable/soot
private void runPacksForOneClassAtATime() {
if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()) {
LineNumberAdder lineNumAdder = LineNumberAdder.v();
lineNumAdder.internalTransform("", null);
代码示例来源:origin: ibinti/bugvm
public void runPacks() {
if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()){
LineNumberAdder lineNumAdder = LineNumberAdder.v();
lineNumAdder.internalTransform("", null);
}
retrieveAllBodies();
if (Options.v().interactive_mode()){
if (InteractionHandler.v().getInteractionListener() == null){
G.v().out.println("Cannot run in interactive mode. No listeners available. Continuing in regular mode.");
Options.v().set_interactive_mode(false);
}
else {
G.v().out.println("Running in interactive mode.");
}
}
runBodyPacks();
handleInnerClasses();
}
代码示例来源:origin: com.bugvm/bugvm-soot
public void runPacks() {
if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()){
LineNumberAdder lineNumAdder = LineNumberAdder.v();
lineNumAdder.internalTransform("", null);
}
retrieveAllBodies();
if (Options.v().interactive_mode()){
if (InteractionHandler.v().getInteractionListener() == null){
G.v().out.println("Cannot run in interactive mode. No listeners available. Continuing in regular mode.");
Options.v().set_interactive_mode(false);
}
else {
G.v().out.println("Running in interactive mode.");
}
}
runBodyPacks();
handleInnerClasses();
}
代码示例来源:origin: secure-software-engineering/FlowDroid
if (!(Options.v().src_prec() == Options.src_prec_apk && method.getDeclaringClass().isLibraryClass()
&& SystemClassHandler.isClassInSystemPackage(method.getDeclaringClass().getName())))
return false;
代码示例来源:origin: secure-software-engineering/FlowDroid
private void fixExceptions(SootMethod caller, Unit callSite, Set<SootClass> doneSet) {
ThrowAnalysis ta = Options.v().src_prec() == Options.src_prec_apk ? DalvikThrowAnalysis.v()
: UnitThrowAnalysis.v();
ThrowableSet throwSet = ta.mightThrow(callSite);
内容来源于网络,如有侵权,请联系作者删除!