soot.options.Options.src_prec()方法的使用及代码示例

x33g5p2x  于2022-01-26 转载在 其他  
字(4.2k)|赞(0)|评价(0)|浏览(176)

本文整理了Java中soot.options.Options.src_prec()方法的一些代码示例,展示了Options.src_prec()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Options.src_prec()方法的具体详情如下:
包路径:soot.options.Options
类名称:Options
方法名:src_prec

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);

相关文章