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