BUUCTF-----signin

本文介绍了一种RSA加密的解密过程,通过IDA分析程序调用的__gmpz_init_set_str函数和65537的E值,确定了加密方式。博主利用已知的公钥N和E,以及加密后的密文,通过网站分解N并编写gmpy2脚本求解私钥d,最终成功解密并验证了结果。
摘要由CSDN通过智能技术生成

1.拿到文件,查壳

收集信息,无壳,64位程序

2.拖入ida中

 

程序调用了 __gmpz_init_set_str 函数,这是一个 GNU 高精度算法库,在以前的RSA加密中见过很多次,加上65537这个比较敏感的数据,就基本确定了这是道RSA加密

可以从程序的本身得知

公钥N=103461035900816914121390101299049044413950405173712170434161686539878160984549

E=65537

加密后的密文为:ad939ff59f6e70bcbfad406f2494993757eee98b91bc244184a377520d06fc35

利用网站对N进行分解,分解出p,q

直接上rsa解密脚本

import gmpy2
import binascii
p = 282164587459512124844245113950593348271
q = 366669102002966856876605669837014229419
e = 65537
c = 0xad939ff59f6e70bcbfad406f2494993757eee98b91bc244184a377520d06fc35
n = p * q
d = gmpy2.invert(e, (p-1) * (q-1))
m = gmpy2.powmod(c, d, n)
print(binascii.unhexlify(hex(m)[2:]).decode(encoding="utf-8"))

 最后得到

带到网站进行验证

 

正确!!!!! 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓风.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值