摩托罗拉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.sigopenssl x509 -in certificate-base64.cer -inform PEM -pubkey-noout > public.pemopenssl 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 msnVerified 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
随身黄页 : 4AD9393AB7A313D7A46AF989B368D17A1DB13B79ctyp
摩托笔书 : CAAB80572774A29018C650D562AE255E0C72428A contest
万花筒 :A71E13FED46F2E4DD1188D4ADB9AB755A68F1C11wonhot————————————————
页:
[1]