apk中签名文件探究(*.SF, *.MF,*.RSA)

文章来源:

作者:嘟嘟小灰
链接:https://www.jianshu.com/p/e07da93acf98
来源:简书

1、取一个apk,然后进行不同签名,生成1.apk、2.apk,并提取META-INF里面的文件进行比对

在这里插入图片描述

def calc_sha1(data):
    sha1obj = hashlib.sha1()
    if not isinstance(data, (bytearray, bytes)):
        with open(data, 'rb') as f:
            sha1obj.update(f.read())
    else:
        sha1obj.update(data)
    print(data)
    return sha1obj.digest(), sha1obj.hexdigest()
2、 *.MF文件比对,通过python排序

在这里插入图片描述
发现签名不一样,但里面的文件只要不改变,SHA1-Digest值是一样的,这里的SHA值是文件的hash值做base64
如:classes.dex

在这里插入图片描述

digest     : b'\x036\xdb9v\xed\x98\x9d\x0c\x86\xed\x13\xa0\x9e\x7f\xc3.\x1c\xe7H'
hexdigest  : 0336db3976ed989d0c86ed13a09e7fc32e1ce748
SHA1-Digest: b'AzbbOXbtmJ0Mhu0ToJ5/wy4c50g=\n'
3、 *.SF 与第二点是一样的
3.1 第一个 SHA1-Digest-Manifest是对文件*.MF的SHA后再Base64

在这里插入图片描述

digest     : b's\xfe\x9a\xc6\x94\x9e\xc8\x16\x00XL&\x8d\x08\x8e\x8d3 \xda\xc8'
hexdigest  : 73fe9ac6949ec81600584c268d088e8d3320dac8
SHA1-Digest: b'c/6axpSeyBYAWEwmjQiOjTMg2sg=\n'
3.2 其他的值是每一项的值做SHA后再Base64

如:
在这里插入图片描述

b'Name: classes.dex\r\nSHA1-Digest: AzbbOXbtmJ0Mhu0ToJ5/wy4c50g=\r\n\r\n'
digest     : b'\x0e\x1c\xb4D\xf7G\xd1\x0b\xa1\xc2\x8cT\x14\xee\xe23-\xc01\xc4'
hexdigest  : 0e1cb444f747d10ba1c28c5414eee2332dc031c4
SHA1-Digest: b'Dhy0RPdH0QuhwoxUFO7iMy3AMcQ=\n'
4、*.RSA

这里保存了签名的相关信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值