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


Java ProcessManifest.getEntryPointClasses方法代码示例

本文整理汇总了Java中soot.jimple.infoflow.android.manifest.ProcessManifest.getEntryPointClasses方法的典型用法代码示例。如果您正苦于以下问题:Java ProcessManifest.getEntryPointClasses方法的具体用法?Java ProcessManifest.getEntryPointClasses怎么用?Java ProcessManifest.getEntryPointClasses使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在soot.jimple.infoflow.android.manifest.ProcessManifest的用法示例。


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

示例1: internalTransform

import soot.jimple.infoflow.android.manifest.ProcessManifest; //导入方法依赖的package包/类
@Override
protected void internalTransform(String phaseName, Map<String, String> options) 
{
	try
	{	
		ProcessManifest processMan = new ProcessManifest(apkFileLocation);
		Set<String> entrypoints = processMan.getEntryPointClasses();
		
		SootMethod mainMethod = generateMain(entrypoints);
		
		System.out.println(mainMethod.retrieveActiveBody());
	}
	catch (Exception ex)
	{
		ex.printStackTrace();
	}
}
 
开发者ID:serval-snt-uni-lu,项目名称:DroidRA,代码行数:18,代码来源:DummyMainGenerator.java

示例2: generateDummyMain

import soot.jimple.infoflow.android.manifest.ProcessManifest; //导入方法依赖的package包/类
public static SootMethod generateDummyMain(String apkFileLocation)
{
	SootMethod mainMethod = null;
	
	try
	{	
		ProcessManifest processMan = new ProcessManifest(apkFileLocation);
		Set<String> entrypoints = processMan.getEntryPointClasses();
		
		DummyMainGenerator dmGenerator = new DummyMainGenerator(apkFileLocation);
		
		mainMethod = dmGenerator.generateMain(entrypoints);
		
		System.out.println(mainMethod.retrieveActiveBody());
	}
	catch (Exception ex)
	{
		ex.printStackTrace();
	}
	
	return mainMethod;
}
 
开发者ID:serval-snt-uni-lu,项目名称:DroidRA,代码行数:23,代码来源:DummyMainGenerator.java

示例3: initializePePInAllPossibleClasses

import soot.jimple.infoflow.android.manifest.ProcessManifest; //导入方法依赖的package包/类
/**
 * This is a kind of hack and includes much more instrumentation which is necessary;
 * But it is still sound ;-).
 * @param apkFileLocation: apk file path
 */
public static void initializePePInAllPossibleClasses(String apkFileLocation){
	try {
		ProcessManifest manifest = new ProcessManifest(apkFileLocation);		
		Set<String> entryClasses = manifest.getEntryPointClasses();
		 
		for(String entryClass : entryClasses){
			SootClass sc = Scene.v().getSootClass(entryClass);
			
			List<SootClass> allSuperClasses = Scene.v().getActiveHierarchy().getSuperclassesOf(sc);
		 	for(SootClass subclass : allSuperClasses)
		 		if(subclass.getName().equals("android.content.Context")){
		 			initializePeP(sc);
		 			break;
		 		}
		}
	}
	catch (IOException | XmlPullParserException ex) {
		System.err.println("Could not read Android manifest file: " + ex.getMessage());
		throw new RuntimeException(ex);
	}
}
 
开发者ID:secure-software-engineering,项目名称:DroidForce,代码行数:27,代码来源:Util.java

示例4: SetupApplicationJIT

import soot.jimple.infoflow.android.manifest.ProcessManifest; //导入方法依赖的package包/类
public SetupApplicationJIT(String apkFileLocation, String sootCP,
		ISourceSinkDefinitionProvider sourceSinkProvider) {
	this.apkFileLocation = apkFileLocation;
	this.sootCP = sootCP;
	try {
		// Load Android callbacks
		this.androidCallbacks = Activator.getDefault().getAndroidCallbacks();

		// Process manifest
		ProcessManifest processMan = new ProcessManifest(apkFileLocation);
		this.appPackageName = processMan.getPackageName();
		this.entrypoints = processMan.getEntryPointClasses();

		// Parse the resource file
		ARSCFileParser resParser = new ARSCFileParser();
		resParser.parse(apkFileLocation);
		this.resourcePackages = resParser.getPackages();

		// LayoutFileParser
		LayoutFileParser lfp = new LayoutFileParser(this.appPackageName, resParser);
		lfp.parseLayoutFile(apkFileLocation, entrypoints);

		// Create the SourceSinkManager
		Set<SootMethodAndClass> callbacks = new HashSet<>();
		for (Set<SootMethodAndClass> methods : this.callbackMethods.values())
			callbacks.addAll(methods);
		sourceSinkManager = new AccessPathBasedSourceSinkManager(sourceSinkProvider.getSources(),
				sourceSinkProvider.getSinks(), callbacks, LayoutMatchingMode.MatchSensitiveOnly,
				lfp == null ? null : lfp.getUserControlsByID());
		sourceSinkManager.setAppPackageName(this.appPackageName);
		sourceSinkManager.setResourcePackages(this.resourcePackages);
		sourceSinkManager.setEnableCallbackSources(true);
	} catch (IOException | XmlPullParserException e) {
		LOGGER.error("Error initializing " + apkFileLocation);
	}
}
 
开发者ID:secure-software-engineering,项目名称:cheetah,代码行数:37,代码来源:SetupApplicationJIT.java

示例5: getComponents

import soot.jimple.infoflow.android.manifest.ProcessManifest; //导入方法依赖的package包/类
public static Set<String> getComponents(String apkFileLocation)
{
	Set<String> entrypoints = null;
	try
	{	
		ProcessManifest processMan = new ProcessManifest(apkFileLocation);
		entrypoints = processMan.getEntryPointClasses();
	}
	catch (Exception ex)
	{
		ex.printStackTrace();
	}
	
	return entrypoints;
}
 
开发者ID:serval-snt-uni-lu,项目名称:DroidRA,代码行数:16,代码来源:DummyMainGenerator.java

示例6: executeTransformers

import soot.jimple.infoflow.android.manifest.ProcessManifest; //导入方法依赖的package包/类
private void executeTransformers(ProcessManifest manifest) {
		// We first need to retrieve some information from the manifest
		Set<String> constructors = new HashSet<>();
		for (String className : manifest.getEntryPointClasses())
			constructors.add("<" + className + ": void <init>()>");
				
		ConditionTracking conditionTracking = new ConditionTracking();
		CodePositionTracking codePositionTracking = new CodePositionTracking(codePositionManager);
		DynamicCallGraphTracking dynamicCallGraphTracking = new DynamicCallGraphTracking(codePositionManager);
		PathExecutionTransformer pathExecutionTransformer = new PathExecutionTransformer();
		GoalReachedTracking goalReachedTracking = new GoalReachedTracking(config.getAllTargetLocations());
		TimingBombTransformer timingBombs = new TimingBombTransformer();
		DummyMethodHookTransformer dummyMethods = new DummyMethodHookTransformer();
		DynamicValueTransformer dynamicValues = new DynamicValueTransformer(true);
		ClassLoaderTransformer classLoaders = new ClassLoaderTransformer();
		
		for (SootClass sc : Scene.v().getApplicationClasses())
			for (SootMethod sm : sc.getMethods())
				if (sm.isConcrete()) {
					Body body = sm.getActiveBody();
					//todo PAPER-EVAL ONLY
					codePositionTracking.transform(body);					
					if(!FrameworkOptions.evaluationOnly){
//						conditionTracking.transform(body);
//						dynamicCallGraphTracking.transform(body);
					}
//					if (FrameworkOptions.recordPathExecution)
//						pathExecutionTransformer.transform(body);
					goalReachedTracking.transform(body);
					//todo PAPER-EVAL ONLY
					if(!FrameworkOptions.evaluationOnly){
						timingBombs.transform(body);
						dummyMethods.transform(body);
						dynamicValues.transform(body);
					}
					classLoaders.transform(body);
				}
		//todo PAPER-EVAL ONLY
		if(!FrameworkOptions.evaluationOnly)
			new CrashReporterInjection(constructors).transform();
		new GlobalInstanceTransformer().transform();
	}
 
开发者ID:srasthofer,项目名称:FuzzDroid,代码行数:43,代码来源:Instrumenter.java


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