通过某软件学习简单本地签名检测方法

1.

int checkAPP(Context context) {

    try {

        PackageInfo packageInfo = context.getPackageManager()

                .getPackageInfo(context.getPackageName(),

                        PackageManager.GET_SIGNATURES);

        Signature[] signs = packageInfo.signatures;

        Signature sign = signs[0];

         

        int hashcode = sign.hashCode();

        Log.i(“test”“hashCode : “ + hashcode);

        return hashcode == –82892576 bsp;1 : 0;

    } catch (Exception e) {

        e.printStackTrace();

    }

    return –1;

}

 

一般常用的是签名的java层的验证,还是可以做好native层的验证。

上面的都是简单常用的一些验证,想一想如果是在java层加上反射,将那些函数中的字符串如signature全部反射调用,把方法名字符串全部用一个算法来生成,如反转字符串或者一些其他算法来组合呢span>

Native层的,我们也可以使用上面的方法,还可以将方法多次分割几次,然后每次分割的短方法都做一下验证,虽然最终有个判断,但是如果将判断单独提到一个方法,然后再做几个方法检测这个方法是否是被人修改过的,都是可以加深下逆向难度的~

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年10月18日
下一篇 2015年10月18日

相关推荐