摩托罗拉mpkg安装签名方法研究

第一步 :从*.desktop文件中复制出EzXApp-Exec-RSA-SHA1=和EzXApp-Certificate-1-1=到文件中。

EzXApp-Exec-RSA-SHA1=hNCobrJtS7wSZkgoyjS1bysl8kO9VCwvzr+O6oYIhioqneB2AK3FQWjEqawzGAinTOqiFecnqb+nNz0MBuBGPM4a+gXMe6fagI1w4Ym7zInZtEQ/aSh7LUkBgxJuZ2FVTC/HlDO3InbWBa92LZpMasQ/pPqH26X86N07CQwKbIh8TyjsTq0wa80Swck4YXzkLM88qP+LhmG2FxwwqKipmITa8oEs/AsoGpdWY/fG8a2xky9UZaFJzMsTF+aliOUyQQIH1uh0nvlBiZO+ZVWSvPym/b9PHn9ey18kv7RvDd3VGT9kw6onMic5Q5jii+NZBifFiWI0oNL1BevHCkflFg==

新建一个文件cipher.pem,将=后面的内容保存到cipher.pem中,注意2048位的文件大小是344个字节。

EzXApp-    Certificate-1-1=MIIEATCCAumgAwIBAgICBqYwDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEVMBMGA1UEBxMMTGliZXJ0eXZpbGxlMRUwEwYDVQQKEwxNb3Rvcm9sYSBJbmMxFzAVBgNVBAsTDk1vYmlsZSBEZXZpY2VzMS0wKwYDVQQDEyRNYW51ZmFjdHVyZXIgRG9tYWluIEV6WCBOYXRpdmUgMTYyLTEwHhcNMDUxMjE0MTgyMzEzWhcNMjAxMjE0MTgyMzEzWjCBkjELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRUwEwYDVQQHEwxMaWJlcnR5dmlsbGUxFTATBgNVBAoTDE1vdG9yb2xhIEluYzEXMBUGA1UECxMOTW9iaWxlIERldmljZXMxKTAnBgNVBAMTIE1hbnVmYWN0dXJlciBTaWduaW5nIEtleSAxNjItMS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuuAFb5l78bKyhhV6WV3/STJr7XAsQ6Fxk2bLgy76qiNMZMPvvHbIMGVhCwCrthg0RtZiedPEe4MlmqQQV8KRhf6MhrAk+sAOY4o0isssHLsMXutrsEn+Tmnm32o2ray9I3NiomCIOEkYPudnvHNvfh7OF3I3b3Oh+E3NqlfFGv4UIjrW+thnpsVpiYGkK3g3MPJL/ht3lLEpRpUdJ7O1F/KBwIoSNv8uTVD7zLgyw2snC+zRK9n6QTarghKHyF2t7KlkxWMkgKGIY8L7O/g3b7L7X7DQWM00VJqpjQxSBk7JcjfAUVLMauuCApq2JfYUYNpqj9CqfgCPSxvTBFFhrQIDAQABo1swWTAfBgNVHSMEGDAWgBROm0HXerS1GcTClfBCBKsfv8FfTTARBglghkgBhvhCAQEEBAMCBBAwDgYDVR0PAQH/BAQDAgXgMBMGA1UdJQQMMAoGCCsGAQUFBwMDMA0GCSqGSIb3DQEBBQUAA4IBAQAWCmlhqVnhmoHug9bdW/wvWU/s/mv19CZuTMinuWIWCdSJ/+8muv+nrdIcRqynyDO2QrI5r6XAsJ+AYyXWBd7yM2Vq5k6I1iWzu9OAIMZpRFJmVp8Bd8Ab3gTGM6TcsxhQV7rythz+EH8h/Il1y8bxWufTjItXv2Zbonvjy9h1Gdxg/ie0be4AHGBUuDr6F6b+AbN3BcDVR1FH99nmUC551z+CPNyS60xuSyQVqXDJgim1V12//Drjw+Cb8UZr//pLanslqinl/OP+B0RiBXntDfKsLyqR8+c0kL8IC0TWHDIqz48TLFajUcJTURpj/iSHMna1sANpiSO8vFTU4X59

新建一个文件msn-certificate-base64.cer,将=后面的内容保存到msn-certificate-base64.cer中,加上文件头-----BEGIN CERTIFICATE-----和尾-----END CERTIFICATE-----就是一个证书。在电脑上可以直接打开该证书看到详细信息。

最简单的验证方法:

openssl base64 -d -in cipher.pem -A > msn.sig
openssl x509 -in certificate-base64.cer -inform PEM -pubkey  -noout > public.pem
openssl dgst -verify public.pem -sha1 -signature msn.sig msn

第二步 :用openssl导出公钥

 DER格式 :openssl x509 -in msn-certificate-der.cer -inform der -pubkey  -noout > public.pem
 PEM格式 :openssl x509 -in msn-certificate-base64.cer -inform PEM -pubkey  -noout > public.pem  

第三步 :用openssl函数解密

openssl base64 -d -in cipher.pem -A > sha1.sig

  rsa程序是我编译的一个专门用来解密mpkg加密的工具,执行我编译的rsa程序就可以解密出签名和sha-1的hash值,并进行校验。

扩展:

第四步 :校验 参数分别是公钥 前面导出的签名 原程序

$ openssl dgst -sha1 -verify public.pem -signature sha1.sig msn
Verified OK

第五步 :获取新的签名和解密的签名是否一致。

 sha1sum msn > msn-sha1.txt

第六步 :从公钥中获取模(M)和指数(E):

 openssl rsa -in public.pem -pubin -modulus -noout

 openssl rsa -pubin -inform PEM -text -noout < public.pem

  MPKG加密的原理其实就是首先用sha1sum获取文件的hash值,然后用RSA私钥加密,加密后的签名文件再用base64编码后保存在.desktop文件中的EzXApp-Exec-RSA-SHA1=,而解密的公钥就保存在EzXApp-Certificate-1-1=证书中,导出该文件,并加上文件头-----BEGIN CERTIFICATE-----和尾-----END CERTIFICATE-----就是一个证书。在电脑上可以直接打开该证书看到详细信息。而在系统当中还保存着一个证书,是该证书的上一级证书,用来验证该证书的有效性,但不是根证书,保存位置在手机上的/ezx_user/download/appwrite/cmsec/.policy_certmgt_domain.txt中的162-1,如果不存在,则去/usr/securesetup/cmsec/.policy_certmgt_domain.txt查找,也就是说我们可以修改第一个路径中的文件,该文件首先通过环境变量查找,然后是第一个路径,第二个路径。这样我们可以内置或者修改根证书提供了方便。

--------------------------------------------------------------------------------------------

cipher.pem  : 是加密后的密文,也就是*.desktop中的EzXApp-Exec-RSA-SHA1=内容。

cipher.sig     :    是密文解码后的16进制签名经过RSA加密

padding.sig  :   是RSA解密后的密文16进制填充

msn-Certificate-base64.cer : 是导出的证书,也就是*.desktop中的EzXApp-Certificate-1-1=内容。

public.pem  :   是从证书中导出的公钥

rsa              :    我编写的用来解密的程序

msn             :   是原程序或者文本

sha1.txt        :   是原程序的sha1值

流程如下 :

*.desktop -> cipher.pem -> cipher.sig -> padding.sig ->sha1.txt

*.desktop -> msn-Certificate-base64.cer -> public.pem

---------------------------------------------------------------------------------------------
名字              SHA1                                                                       签名文件

信安易卫士 :34ED0AD4902EA07C33A3B88D221A0055DEE95B2F   MCleaner

MSN         : F844792C2C63321D195C97086021018CF9C284BA    msn

随身黄页    : 4AD9393AB7A313D7A46AF989B368D17A1DB13B79  ctyp

摩托笔书    : CAAB80572774A29018C650D562AE255E0C72428A    contest

万花筒       :  A71E13FED46F2E4DD1188D4ADB9AB755A68F1C11  wonhot

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值