上个月公司一个项目突然要找第三方进行安全漏洞的检测,于是打包了一个apk文件,发到第三方结构进行了安全检测,这项目我入职前就已经快完成的阶段,我后面基本是维护和小更新.比较坑的是之前的哥们连混淆都没有,更不要说加固了,最后扫出了30多个漏洞,看到检测报告都懵逼了.
自己对混淆和加固之前也只是知道皮毛没有深究,这次修复漏洞踩了不少坑,都是边上网搜资料边踩坑,总算搞定了,写出来防止后人踩坑 ,这里主要讲加固签名的坑,混淆这里不说了(自己对混淆还不熟)
很容易理解,ture是已签名,false是未签名,都为true的话说明v1,v2都成功签名了.
然后把两个md5的值进行比对,如果一致说明你的签名没用错秘钥 - -||
4.手动进行签名操作:
java -jar apksigner.jar sign --ks /Users/xxxx/Desktop/key.jks --ks-key-alias test --ks-pass pass: 123456 --key-pass pass: 123456 --out /Users/xxxx/Desktop/签名后的安装包.apk /Users/xxxx/Desktop/需要进行签名的安装包.apk
上面的命令会执行同时执行v1,v2签名
注意仔细看上的命令行:进了黑色加粗的文字需要替换成实际的信息
说个小插曲,我们的项目找的是一个规模很大的公司进行检测,开始用了网上的免费的加固工具加固拿去检测,别人拿去测试之后全部都脱壳了,说这种免费的加固安全没有保障,要用他们的加固服务可以解决,要收费..呵呵,因为项目比较特殊只能答应了,打包签名了apk,发到他们那边进行了加固后他们把apk发回来让我重新签名,签名后apk用不了,闪退....老板说别人大公司应该不会出现这种小问题,是我的问题.恩,自己也怀疑是我的错. 当天折腾到凌晨才下班,经历了上面的一顿折腾后发现v1,v2都签名了,并且md5值也没问题. 这时就有底气的去质问那家公司,最后发现是他们的加固出问题.
一般来说进行了上面的方法重新签名并且检查md5值没错,应该不会出问题了这时候可以去质疑一下加固方的问题.
github参考链接1
github参考链接2
先写这些记录一下,后面有需要再更新,有什么问题可以在下面留言讨论.
标签:Android