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


Java ProcessManifest.getPackageName方法代码示例

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


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

示例1: extractApkInfo

import soot.jimple.infoflow.android.manifest.ProcessManifest; //导入方法依赖的package包/类
public static void extractApkInfo(String apkPath)
{
	GlobalRef.apkPath = apkPath;
	
	try 
	{
		ProcessManifest manifest = new ProcessManifest(apkPath);
		
		GlobalRef.pkgName = manifest.getPackageName();
		GlobalRef.apkVersionCode = manifest.getVersionCode();
		GlobalRef.apkVersionName = manifest.getVersionName();
		GlobalRef.apkMinSdkVersion = manifest.getMinSdkVersion();
		GlobalRef.apkPermissions = manifest.getPermissions();
	} 
	catch (Exception e) 
	{
		e.printStackTrace();
	}
}
 
开发者ID:serval-snt-uni-lu,项目名称:DroidRA,代码行数:20,代码来源:DroidRAUtils.java

示例2: main

import soot.jimple.infoflow.android.manifest.ProcessManifest; //导入方法依赖的package包/类
public static void main(String[] args) 
{
	DB.setJdbcPath("res/jdbc.xml");

	String apkPath = args[0];
	
	try 
	{
		ProcessManifest processMan = new ProcessManifest(apkPath);
		String pkgName = processMan.getPackageName();
		
		buildLinks(pkgName);
	} 
	catch (Exception e) 
	{
		e.printStackTrace();
	}
	
}
 
开发者ID:lilicoding,项目名称:soot-infoflow-android-iccta,代码行数:20,代码来源:ICCLinker.java

示例3: 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

示例4: initializeHooking

import soot.jimple.infoflow.android.manifest.ProcessManifest; //导入方法依赖的package包/类
private void initializeHooking(ProcessManifest manifest) {						
	String applicationName = manifest.getApplicationName();
	//case 1
	if(applicationName != null) {
		if(applicationName.startsWith(".")) {
			String packageName = manifest.getPackageName();
			if(packageName == null)
				throw new RuntimeException("There is a problem with the package name");
			applicationName = packageName + applicationName;
		}
		SootClass applicationSootClass = Scene.v().getSootClass(applicationName);
		if(applicationSootClass != null) {				
			String attachMethodName = String.format("<%s: void attachBaseContext(android.content.Context)>", applicationName);
			SootMethod attachMethod = Scene.v().grabMethod(attachMethodName);	
			//case 1
			if(attachMethod != null) {
				Body body = attachMethod.getActiveBody();
				Local contextParam = body.getParameterLocal(0);
				
				List<Unit> unitsToInstrument = new ArrayList<Unit>();										
				String hookingHelperApplicationClassAttachMethodName = String.format("<%s: void initializeHooking(android.content.Context)>", UtilInstrumenter.HOOKER_CLASS);
				SootMethod hookingHelperApplicationClassAttachMethod = Scene.v().getMethod(hookingHelperApplicationClassAttachMethodName);
				if(hookingHelperApplicationClassAttachMethod == null)
					throw new RuntimeException("this should not happen");					
				SootMethodRef ref = hookingHelperApplicationClassAttachMethod.makeRef();					
				InvokeExpr invExpr = Jimple.v().newStaticInvokeExpr(ref, contextParam);
				unitsToInstrument.add(Jimple.v().newInvokeStmt(invExpr));
				
				
				Unit instrumentAfterUnit = null;
				for(Unit unit : body.getUnits()) {
					if(unit instanceof InvokeStmt) {
						InvokeStmt invStmt = (InvokeStmt)unit;
						if(invStmt.getInvokeExpr().getMethod().getSubSignature().equals("void attachBaseContext(android.content.Context)")) {
							instrumentAfterUnit = unit;
							break;
						}
					}
				}
				
				if(instrumentAfterUnit == null)
					throw new RuntimeException("this should not happen");
				body.getUnits().insertAfter(unitsToInstrument, instrumentAfterUnit);								
			}
			//case 2
			else {
				attachMethodName = String.format("<%s: void attachBaseContext(android.content.Context)>", UtilInstrumenter.HELPER_APPLICATION_FOR_HOOKING);	
				attachMethod = Scene.v().grabMethod(attachMethodName);
				if(attachMethod == null)
					throw new RuntimeException("this should not happen");
				
				List<Type> params = new ArrayList<Type>();
				SootClass contextClass = Scene.v().getSootClass("android.content.Context");
				params.add(contextClass.getType());
				SootMethod newAttachMethod = new SootMethod("attachBaseContext", params, VoidType.v());
				newAttachMethod.setModifiers(soot.Modifier.PROTECTED);
				newAttachMethod.setActiveBody(attachMethod.getActiveBody());
				applicationSootClass.addMethod(newAttachMethod);
			}
			
			//there is no need for our Application class
			Scene.v().getSootClass(UtilInstrumenter.HELPER_APPLICATION_FOR_HOOKING).setLibraryClass();
		}
		else {
			throw new RuntimeException("There is a problem with the Application class!");
		}
	}
	//case 3
	else{
		//there is no need for any instrumentation since the Application class is set to application-class.
	}
}
 
开发者ID:srasthofer,项目名称:FuzzDroid,代码行数:73,代码来源:Instrumenter.java

示例5: main

import soot.jimple.infoflow.android.manifest.ProcessManifest; //导入方法依赖的package包/类
public static void main(final String[] args)
{
	apkPath = args[0];
	androidJars =args[1];
	System.out.println("[IccTA]" + apkPath + ", " + androidJars);
	
	parseConfig();
	
	try
	{
		DB.setJdbcPath("res/jdbc.xml");
		
		ProcessManifest processMan = new ProcessManifest(apkPath);
		Test.appPackageName = processMan.getPackageName();
		
		System.out.println("[IccTA]" + "ICC Provider is " + iccProviderStr);
		
		if (iccProviderStr.equals("ic3"))
		{
			ICCLinker.buildLinks(Test.appPackageName);
		}
		
		if (apkPath.contains(APK_COMBINER))
		{
			if (apkPath.contains("/"))
			{
				int startPos = apkPath.lastIndexOf('/');
				String filename = apkPath.substring(startPos+1);
				
				filename = filename.replace(".apk", "");
				
				Test.appPackageNames = filename.split(Test.APK_COMBINER);
			}
		}
		
		AndroidIPCManager ipcManager = new AndroidIPCManager("res/IPCMethods.txt", Test.appPackageName);
		if (Test.appPackageNames != null)
		{
			ipcManager = new AndroidIPCManager("res/IPCMethods.txt", Test.appPackageNames);
		}
		
		ipcManager.setIccProvider(iccProviderStr);
		
		InfoStatistic mostBeginning = new InfoStatistic("Beginning");
		ipcManager.addJimpleUpdater(mostBeginning);
		
		InfoStatistic mostEnding = new InfoStatistic("Ending");
		ipcManager.addPostJimpleUpdater(mostEnding);
		
		SharedPreferencesUpdater sharedPreferencesUpdater = new SharedPreferencesUpdater();
		ipcManager.addJimpleUpdater(sharedPreferencesUpdater);
		
		//JimpleReduceStaticFieldsTransformer jrsf = new JimpleReduceStaticFieldsTransformer();
		//ipcManager.addJimpleUpdater(jrsf);
		
		JimpleIndexNumberTransformer jinTransformer = new JimpleIndexNumberTransformer();
		ipcManager.addJimpleUpdater(jinTransformer);
		
		ApplicationClassSet acs = new ApplicationClassSet();
		ipcManager.addJimpleUpdater(acs);
		
		//ExtraMapping extraMapping = new ExtraMapping(ApplicationClassSet.applicationClasses);
		//ipcManager.addJimpleUpdater(extraMapping);
		
		ExtraExtractor extraExtractor = new ExtraExtractor();
		ipcManager.addJimpleUpdater(extraExtractor);
		
		FlowDroidLauncher.setIPCManager(ipcManager);
		FlowDroidLauncher.main(args);
	}
	catch (Exception ex)
	{
		ex.printStackTrace();
	}
}
 
开发者ID:lilicoding,项目名称:soot-infoflow-android-iccta,代码行数:76,代码来源:Test.java


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