ISCTF2023 RE FloweyRSA WP

64位无壳,但是进去连main函数都没有

这里应该是main的头部

这里是一个jmp的花指令

jnz short labela 跳转到labela是一段没用的代码

所以把它和labela全部NOP

往下翻,又是必然跳转至label1

jz short label1db 0的花指令全部NOP

label3这里也是类似的

回到开头P一下

F5

主函数已经出来了

RSA算法,对字符串每4个字节加密一次

可以得到e=465,n=3162244531

然后做n的因数分解

n因数分解

第一种:在线因式分解网站,例如factordb.com,我们可以利用在线网站快速分解出p,q

第二种:yafu大数分解工具,windows下载地址:

yafu download | SourceForge.net

使用相关命令分解n:

yafu-x64 factor(n) //常规分解n

yafu-x64 “factor(@)” -batchfile 1.txt //把n复制到txt文件中再分解,用于n过长的情况

————————————————

版权声明:本文为CSDN博主「网安福宝」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

[CTF密码学]RSA相关题目解题方法与python脚本总结(附例题)_历届ctf竞赛rsa题目-CSDN博客

gmpy2库安装

cmd中输入pip install --only-binary=:all: gmpy2即可

17行 就是密文与字符串比较,c[]数组就是密文

这里在线分解可得 3162244531=56099*56369即为p、q的值

通过RSA原理写出脚本:

#FloweyRSA WP
import gmpy2
from Crypto.Util.number import *
'''
C密文
753C2EC5, 8D90C736, 81282CB0, 7EECC470, 944E15D3
2C7AC726, 717E8070, 30CBE439, 0B1D95A9C, 6DB667BB
1240463C, 77CBFE64, 11D8BE59
'''
#n=3162244531=56099*56369(在线因数分解)
e = 465
p = 56099
q = 56369
n = 3162244531
d = gmpy2.invert(e,(p-1)*(q-1))
C = [0x753C2EC5, 0x8D90C736, 0x81282CB0, 0x7EECC470, 0x944E15D3,
0x2C7AC726, 0x717E8070, 0x30CBE439, 0x0B1D95A9C, 0x6DB667BB,
0x1240463C, 0x77CBFE64, 0x11D8BE59]
flag=b''
for c in C:
    m=gmpy2.powmod(c,d,n)
    flag+=long_to_bytes(m)
print(flag)
#b'flag{reverse_is_N0T_@lways_jusT_RE_myy_H@bIb1!!!!!!}'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值