ctf Wiener tricky

这题题目是wiener Tricky,这是维纳滤波??

没学过,,懵x

给了publickey,于是想先找出n,e

然后求出d

然后,真是为难我的小电脑了,yafu拆解,一开始几分钟,然后,20分钟,然后2个半小时,

这些我都让他跑完了!!

然后给我显示20小时。。。

断了yafu

老老实实看那个代码

然后看出来他是可以直接求出d,有d就直接算就好了

然后需要openssl 解析出n ,e;都非常大

把n,e带入,可以求出d,特别快!!!

(提一下,直接在他那个test里写,就是这个)

就这种感觉:

得到d。

然后向上次那样,直接算就好了

代码:

import rsa
from rsa import transform
def FastMod(c,d,n):
    res = 1
    t = c
    while d:
        if d & 1:
            res = (res * t) % n
        t = (t * t) % n
        d>>=1
    return res


e = 355949428044394011416525580640727209012115496460578082591540362115366141425837528189633616844162877584613018030741854275756897461200378167436571547815767157785675778909581575938939615940299471388870845995538439614911452236868092605005352109203362643524505566443025399407973408444593940143560487529347856187923
n = 949603686045205715277174628136022115711156979860824039383799385101249348289935491073325953355239683776503155414384435860534465117430864566291387794089216559280434116213181181405857171075971236007710276483079389558212315153404594351264107147803340895025164316798193753138427414374746336511224920322316865644907
d = 28616787893962875870396586430679270222323477959831994257138015460199396633187
c = open('flag.enc','rb').read()
c = transform.bytes2int(c)
m = FastMod(c,d,n)
m = transform.int2bytes(m)
print(m)

比较坑的是!!

解出来后,看不出来flag!

在一堆乱码的最后》???!!!《

本来以为啥都没有,还要解码的。。

原文地址:https://www.cnblogs.com/gudygudy/p/10609552.html