mirror of
https://github.com/github/codeql.git
synced 2025-12-24 12:46:34 +01:00
Added sample java file for qhelp to render correctly.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package poc.sample.classloader;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
public class BadClassLoader extends Application {
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
for (PackageInfo p : getPackageManager().getInstalledPackages(0)) {
|
||||
try {
|
||||
if (p.packageName.startsWith("some.package.")) {
|
||||
Context appContext = createPackageContext(p.packageName,
|
||||
CONTEXT_INCLUDE_CODE | CONTEXT_IGNORE_SECURITY);
|
||||
ClassLoader classLoader = appContext.getClassLoader();
|
||||
Object result = classLoader.loadClass("some.package.SomeClass")
|
||||
.getMethod("someMethod")
|
||||
.invoke(null);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e("Class loading failed", e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package poc.sample.classloader;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.util.Log;
|
||||
|
||||
public class GoodClassLoader extends Application {
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
PackageManager pm = getPackageManager();
|
||||
for (PackageInfo p : pm.getInstalledPackages(0)) {
|
||||
try {
|
||||
if (p.packageName.startsWith("some.package.") &&
|
||||
(pm.checkSignatures(p.packageName, getApplicationContext().getPackageName()) == PackageManager.SIGNATURE_MATCH)
|
||||
) {
|
||||
Context appContext = createPackageContext(p.packageName,
|
||||
CONTEXT_INCLUDE_CODE | CONTEXT_IGNORE_SECURITY);
|
||||
ClassLoader classLoader = appContext.getClassLoader();
|
||||
Object result = classLoader.loadClass("some.package.SomeClass")
|
||||
.getMethod("someMethod")
|
||||
.invoke(null);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e("Class loading failed", e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user