程序为arm64设备的裸程序(ELF),本来想尝试QIling框架模拟运行官方案例github,奈何技术有限。欢迎大佬指导
已知:
RSA公钥(PEM)和某次通讯中请求的数字签名内容(主要内容)和签名数据(base64),该程序执行验签并成功。
求:
签名内容原文及其组成形式,并能成功验签openssl dgst -sha256 -verify pub.pem -signature sig.bin sig.txt
请给出正确的sig.txt
附上部分IDA核心伪代码及程序:
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
0x10001=65537是RSA常见的公钥指数e,所以跟它再一块的另外256字节多半就是公钥模数n
计算 sig^e mod n即可得到明文,一般签名的明文是哈希值,所以验签实际就是比较解密得到的哈希值和实际数据计算的哈希值是否一样
根据固件中,sha256明文填充如下,其中data[8]= 'N'是试出来的,因为'Y'不对
如下图可以看到验签成功
你原附件里面的pub.pem貌似格式有问题,我用固件中的n和e重新生成了一个
最终你要的openssl验签效果
烧板侠 0x10001=65537是RSA常见的公钥指数e,所以跟它再一块的另外256字节多半就是公钥模数n计算 sig^e mod n即可得到明文,一般签名的明文是哈希值,所以验签实际就是比较解密得到的哈希 ...
wx_刀刀 大佬厉害,貌似我的公钥没有64字节一换行,为啥固定是N呢,这个应该是去安全启动的flag,另外Rand在这个程序里固定为0,全是bug。能找着原因吗