(原)android安全防护

1、代码检测,检测debuggable状态是否被修改过,检测签名是否一致

        

   //安全监测,防止反编译

public void securityCheckCode(){

// 如果程序android:debuggable="false"是否被修改过,强制关闭应用

if ((this.getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE) != 0) {

android.os.Process.killProcess(android.os.Process.myPid());

}

// 防止重新编译,检测签名是否一致

try {

扫描二维码关注公众号,回复: 296841 查看本文章

PackageInfo packageInfo = context.getPackageManager()

.getPackageInfo(context.getPackageName(),

PackageManager.GET_SIGNATURES);

Signature[] signs = packageInfo.signatures;

Signature sign = signs[0];

int hashcode = sign.hashCode();

//签名hash值

if(hashcode!=-1555711042){

android.os.Process.killProcess(android.os.Process.myPid());

}

} catch (NameNotFoundException e) {

Log.e(TAG, e.toString());

}

}

2.禁用日志

在proguard.cfg中配置

删除-dontoptimize 配置

-assumenosideeffects class android.util.Log {

    public static boolean isLoggable(java.lang.String, int);

    public static int v(...);

    public static int i(...);

    public static int w(...);

    public static int d(...);

    public static int e(...);

}

3、代码混编

   在proguard.cfg中配置

猜你喜欢

转载自lishuaishuai.iteye.com/blog/2302306