0
点赞
收藏
分享

微信扫一扫

[GWCTF 2019]pyre

玩物励志老乐 2022-02-09 阅读 66

通过这道题学到了许多东西,GNU 高精度算法库,密码学python两个常用的函数库 crypto和 gmpy2,以及python的binascii模块,采用yafu来分解n得到q和p,加深了对于RSA加密的认知。

具体解题过程

首先找到关键部分,这里就是main函数

对sub_56235520096A函数进行分析,发现是将输入的input转换为字符串的16进制进行储存

 接下来__gmpz_init_set_str通过浏览器了解到是GNU的某个函数,对于一个大数进行初始化,这个大数数值就是中间这个参数,最后一个参数为这个数的进制,第一个参数类似于标识符。

关键部分__gmpz_powm函数,通过这个函数了解到原理与RSA加密类似,将RSA的e,n对应,采用yafu来对n分解,得到q和p。

最后通过gmpy2得到明文

 0x73756374667b50776e5f405f68756e647265645f79656172737d

将它转化为ascall码得到flag

suctf{Pwn_@_hundred_years}

举报

相关推荐

0 条评论