VulnDroidNative.smali
.class public Lcom/baidu/droidsploit/VulnDroidNative;
.super Ljava/lang/Object;
.source "VulnDroidNative.java"
# static fields
.field public static volatile sIsInitFail:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 14
const/4 v0, 0x1
sput-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 5
.prologue
.line 16
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 17
sget-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z
if-eqz v0, :cond_a
.line 18
invoke-static {p1}, Lcom/baidu/droidsploit/VulnDroidNative;->a(Ljava/lang/String;)V
.line 20
:cond_a
sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "vuln engine sIsInitFail : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
sget-boolean v2, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcom/baidu/security/f/m;->b(Ljava/lang/String;Ljava/lang/String;)V
.line 21
return-void
.end method
.method private static a(Ljava/lang/String;)V
.registers 5
.prologue
const/4 v3, 0x1
.line 24
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-lt v0, v1, :cond_f
.line 25
sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;
const-string v1, "VulnDroidNative initVulnDroidNative > 21, return "
invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 56
:cond_e
:goto_e
return-void
.line 29
:cond_f
:try_start_f
sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;
const-string v1, " load VulnDroidNative so from lib "
invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 30
const-string v0, "cork"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
.line 31
const/4 v0, 0x0
sput-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z
.line 32
sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;
const-string v1, " load VulnDroidNative so from lib success "
invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
:try_end_25
.catch Ljava/lang/Throwable; {:try_start_f .. :try_end_25} :catch_26
goto :goto_e
.line 33
:catch_26
move-exception v0
.line 35
:try_start_27
sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, " load VulnDroidNative from lib fail, load from path : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 37
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_8c
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_8c
.line 38
invoke-static {p0}, Ljava/lang/System;->load(Ljava/lang/String;)V
.line 39
sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "VulnDroidNative so load from files success, path : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " , cache path : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 41
invoke-static {}, Lcom/baidu/security/b/b;->a()Lcom/baidu/security/b/b;
move-result-object v2
invoke-virtual {v2}, Lcom/baidu/security/b/b;->b()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 39
invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
.line 42
const/4 v0, 0x0
sput-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z
:try_end_80
.catch Ljava/lang/Throwable; {:try_start_27 .. :try_end_80} :catch_90
.line 52
:cond_80
:goto_80
sget-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z
if-eqz v0, :cond_e
.line 53
sget-object v0, Lcom/baidu/security/engine/c/a/a;->b:Ljava/lang/String;
const-string v1, "VulnDroidNative so load fail finally "
invoke-static {v0, v1}, Lcom/baidu/security/f/m;->c(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_e
.line 44
:cond_8c
const/4 v0, 0x1
:try_start_8d
sput-boolean v0, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z
:try_end_8f
.catch Ljava/lang/Throwable; {:try_start_8d .. :try_end_8f} :catch_90
goto :goto_80
.line 46
:catch_90
move-exception v0
.line 47
sput-boolean v3, Lcom/baidu/droidsploit/VulnDroidNative;->sIsInitFail:Z
.line 48
sget-boolean v1, Lcom/baidu/security/engine/c/a/a;->c:Z
if-eqz v1, :cond_80
.line 49
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
goto :goto_80
.end method
# virtual methods
.method public native vulnScanApk(Ljava/lang/String;)Ljava/lang/String;
.end method
.method public native vulnScanOsFix()I
.end method
.method public native vulnVersion()Ljava/lang/String;
.end method