BUUCTF逆向SignInWP

 

打开idaf5之后发现代码逻辑很简单,就是一个输入然后进入sub_96a对输入进行处理,进行可以很容易分析出来就是把输入处理成0-f的十六进制数字 

__gmpz_init_set_str, __gmpz_powm然后就发现了俩个不认识的函数,但是__gmpz_init_set_str这个函数猜也猜的出大概的意思,然后通过百度发现官网文档 ​​​​​​​​​​​​​​

void mpz_powm (mpz_t rop, const mpz_t base, const mpz_t exp, const mpz_t mod) [Function]
Set rop to base^exp mod mod.然后题目整个就很明朗了,就是一个rsa加密(不懂具体可以百度一下)

然后利用软件yafu或者在线站factordb.com分解大数

 然后就可以用gmp2库和libnum写脚本解密了 

import libnum
from gmpy2 import *
e = 65537
C = 0xad939ff59f6e70bcbfad406f2494993757eee98b91bc244184a377520d06fc35
N = 103461035900816914121390101299049044413950405173712170434161686539878160984549
p= 282164587459512124844245113950593348271
q=366669102002966856876605669837014229419
a = (p-1) * (q-1)
d = invert(e,a)

M = pow(C,d,N)
flag=libnum.n2s(int(M))
print(flag)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值