asysbang

 找回密码
 立即注册
查看: 8133|回复: 0
打印 上一主题 下一主题

签名相关分析

[复制链接]

513

主题

2

好友

6404

积分

管理员

Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

最佳新人 活跃会员 热心会员 推广达人 宣传达人 灌水之王 突出贡献 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2013-5-24 16:11:09 |只看该作者 |倒序浏览
转载请注明: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";















回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|aSys-帮 ( 京ICP备13033689号 )

GMT+8, 2024-10-5 16:32 , Processed in 0.066979 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部