1.手机漏洞扫描器
android-vts
360leakscan
分析两款手机漏洞扫描器的实现原理
检测原理:
跑不会崩溃的poc,或者check补丁是否完善。
代码实现:
通过线程或者是AsyncTask来执行我们的任务
vts主要检测的类型为:
framework
kernel
system
找到对应的类型,集成特定的类方法在list里add即可。 1
public interface VulnerabilityTest { String getName(); boolean isVulnerable(Context context) throws Exception; } 1234
这里以janus漏洞为例,来添加需要检测的漏洞。
漏洞类型:janus属于zip类型的漏洞,我们定位到system
检测原理:反射调用系统的parsePackage函数,check一个含有漏洞的APK。查看返回结果
@Override public String getCVEorID() { return "janus"; } @Override public boolean isVulnerable(Context context) throws Exception { /* String apkPath = FileUtil.getAssetFile(this, "hacked_v1sign.apk", null, false); Log.i("JanusActivity", "isApk: " + new ZipChecker().check(apkPath)); Object packageParser = PackageUtil.getPackageParser(apkPath); File sourceFile = new File(apkPath); DisplayMetrics metrics = new DisplayMetrics(); metrics.setToDefaults(); if (PackageUtil.parsePackage(packageParser, sourceFile, apkPath, metrics, 256) == null) { return true; //status = "Without Janus bug!"; } else { return false; //status = "With Janus bug!"; }*/ return false; }
1234567891011121314151617181920212223参考:
AsyncTask使用教程:
https://blog.csdn.net/iispring/article/details/50639090