asysbang

标题: 签名相关分析 [打印本页]

作者: admin    时间: 2013-5-24 16:11
标题: 签名相关分析
转载请注明:www.asysbang.com


发布apk都需要签名

官方连接:http://developer.android.com/tools/publishing/app-signing.html

keytool -genkey -v -keystore my-release-key.keystore -alias bdmobile -keyalg RSA -keysize 2048 -validity 10000

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my.apk bdmobile


红色部分保存一致那么签名之后 会生成BDMOBILE.SF和BDMOBILE.RSA     可以把签名文件和公司关联起来,虽然没实际作用但是很多大公司都做了

蓝色部分可以换成DSA  这样就是DSA加密的

--------------------------------------------------
防止别人修改自己的apk

网上经常有人改apk的资源(改图片或者汉化),那么如何防止别人“动”自己的apk呢?


        try {
            PackageInfo packageInfo = getPackageManager().getPackageInfo("xxx.xxx.xxx", PackageManager.GET_SIGNATURES);
            Signature[] signatures = packageInfo.signatures;
            String charsString = signatures[0].toCharsString();
            //just startwith,  maybe  md5 digest
            if (!charsString.startsWith("308202dd3082029ba00")) {
                // not my apk
            }
        } catch (NameNotFoundException e) {
            e.printStackTrace();
        }

以上思路只在一款设备上测试过,如有问题,欢迎指出


PS:QQ.apk能够判断出被修改签名,然后会弹出“Appid is invalid!”

        不知道他的实现逻辑,有时间分析一下,其中 reg_status.java中有个

         public static String STATIC_KEY = "e75734d01ad9b57f";




















欢迎光临 asysbang (http://asysbang.com/) Powered by Discuz! X2.5