Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.
# p = 217873395548207236847876059475581824463 # q = 185617189161086060278518214521453878483 # c = 6170206647205994850964798055359827998224330552323068751708721001188295410644 # e = 65537
p,q都给了,白给
exp:
1 2 3 4 5 6 7 8 9 10 11 12
from Crypto.Util.number import * import gmpy2
p = 217873395548207236847876059475581824463 q = 185617189161086060278518214521453878483 c = 6170206647205994850964798055359827998224330552323068751708721001188295410644 e = 65537
d = gmpy2.invert(e,(p-1)*(q-1)) m = pow(c,d,p*q) print(long_to_bytes(m)) #flag{Y0ung_meiyou_xiaojj}
what_is_m
1 2 3 4 5 6 7
from Crypto.Util.number import bytes_to_long from secret import flag
m = bytes_to_long(flag) print("m =",m)
# m = 7130439814057451234816276827985624426378225444820448794672983850703174510423869748080084641434692304059989810437801952820137016591528446065914779069356815372089481476999952029232464963781245
更加白给,转字节就行了
exp:
1 2 3 4
from Crypto.Util.number import * m = 7130439814057451234816276827985624426378225444820448794672983850703174510423869748080084641434692304059989810437801952820137016591528446065914779069356815372089481476999952029232464963781245 print(long_to_bytes(m)) #flag{Th3r3_ar3_53vEraL_a1terNAtIvEs_7o_tHe_1ON9_T0_6YteS_1UNCti0N_dCGb796e3dSB}
c = "050f000a7e407151537802540b747176075178027552756d0256726262627c" cc = [] for i inbytes.fromhex(c): cc.append(i) print(cc)
flag = '' for i inrange(len(cc)): mm = 47 + (cc[i] ^ 50) if mm > 126: mm -= 94 flag += chr(mm) else: flag += chr(mm) print(flag) #flag{Cr42y_7hursd4y_v1v0_5o!!!}
猜了很久最后知道,大写字母后移21位因为E–>Z,小写字母不动,数字前移5位,因为Qook at you–>Look at you
exp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import base64
c = "EmxhE8tERKAfYAZ6S636dIWuEK46ZK4yRBdNdK4uRKd4" m = "" for i inrange(len(c)): if c[i].isupper(): mm = 65 + (ord(c[i]) - 65 + 21) % 26 m += chr(mm) if c[i].isdigit(): mm = ord('0') + ((ord(c[i]) - ord('0') -5) % 10) m += chr(mm) if c[i].islower(): m += c[i] flag = base64.b64decode(m.encode()) print(flag) #flag{Y0U_MU57_5t4nd_uP_r1gHt_n0W}
c = 'nhuo[M`7mc7uhc$7midgbTf`7`$7%#ubf7 ci5Y' flag = "" for i in c: m = (ord(i) + 0x0A) ^ 0x1E flag += chr(m) print(flag) #flag{It_is_als0_impor@nt_t0_13arn_4sm!}
flag = "" for i in c: bin_i = bin(i)[2:].zfill(8) mhigh = bin_i[-4:] mlow = bin_i[-8:-4] m = int(mhigh + mlow,2) flag += chr(m) print(flag) #flag{Try_t0_s0lv3_the_binary_pr0bl3m}
flag = "" for i inrange(len(data1)): line1 = data1[i] line2 = data2[i] for a,b inzip(line1,line2): if a != b: flag += b print(flag) #flag{4ebf327905288fca947a}
ezmisc
一大串二进制的值,发现长度是841,因为841 = 29*29,所以想到二维码
网上找了个二进制生成二维码的脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14
from PIL import Image MAX = 29 pic = Image.new("RGB",(MAX, MAX)) str = "1111111011111111011000111111110000010011000101010001000001101110100011000110010010111011011101011010000100010101110110111010000111111000001011101100000100011101111010010000011111111010101010101010111111100000000000000111111100000000001011101000111010100100010010011000000101101111100010001110110010101001111010001110011101001001001100100010001000100110001001100010101001110100011010000110100110000001101111000001100111111000100101011111000110010000011111111111000111010110001110100100110011010011000011010000110011100100111011001110011010100110100111101101000110001001110101010010100100110001111101111111100010000000011110011010110001000011111110010000000001101010111100000101110100010101000100101011101011000001110011111111110111010010101001010000110100101110101111111011010001100011000001000111101111001001101011111110010100011110111100111" i=0 for y inrange (0,MAX): for x inrange (0,MAX): if(str[i] == '1'): pic.putpixel([x,y],(0, 0, 0)) else: pic.putpixel([x,y],(255,255,255)) i = i+1 pic.show() pic.save("flag.png")
for i in itertools.product(['0','1'],repeat=20): c = ''.join(i) m = "" for a,b inzip(c,cipher): if b == '_': m += '_' else: if a == '0': m += b.lower() if a == '1': m += b.upper() hash_m = hashlib.md5(m.encode()).hexdigest() if hash_m == hash: print("flag{" + m + "}") break #flag{Png_AnD_md5_so_GReAt}
n1 = 114107341297408283801468814470303963122122556489590451040619457052827864984505912502462030175984161431709841571908269123131659496812467145870607611968843929870716066046232009282431653653484798819370087696248364531531706249180822839879862098012984590503284615395588919199545142177727328844260380842155437987767067800740569616584597507776426572206990858918111272636507821551592564540694671795374831548677720629329358177802890287837056940407030212276399942462042866947423728888561392653713356355778914658317507319575084393752755452971007289968044006561357799908892371839922838486713582082980752194204224263283004373 c = 28535916699190273475273097091422420145718978597126134891571109006456944397344856577421369324831702083810238921719657496747722337086131545474384253288151783029981352196506749672783866527948391034258269669654392993063423671431837882584570973320095601407578443348352802850496429240170710269529489900871208384711844617081275862971410246759090936379744946527813691945129059991795202769186014306943707223831130752782380563227353615164053563120572722464543812139164048342504963081408349934180883607554389607335607410546630525512019818062185681153477671373000186961748278118124044645584490544698827467815360888525822167 primes = [10436802938040427139,12712357180113548549,11502613740816749197,10270880245559150279,13498192768855092449,17075632607344331131,10100522426677320149,10635881647150245973,15622487550947237203,11777892065426651999,10040612110882504553,13428970346605599557,9261040693807289549,16651625235320957803,10126802520926958821,14198042938738648387,16946507762934111301,9723861249937499279,15774106340553595249,16340211116882594287,13618885037077024279,9356350172425710359,11718181938374860349,16880270107514803247,9281508366366115669,15616762946597906161,10986943768724409089,17088379813205887661,11964584391817142269,14147604789494386003,10621161426185076191,10203735303764112277] phi = 1 for i in primes: phi *= i-1
d = gmpy2.invert(65537,phi) m = pow(c,d,n1) flag1 = bytes.fromhex(hex(m)[2:])
n = 226515252384227990547287743140613580056836242860947832749754689048997071950972581790210817523352001702907675581567498443649554801433663166425134375454937126656357069687274036935331269594383360450823787099121079436459236734336130768046337169817940540921822023269188752420603975467384377614321048859304185067329741055517464271746238143742661897809442359331215501438861121047081117632626097939097519866099140569819965948998542652908170134545593659233229897003698175558888336706474178958535138595687148003367152624421106553412886263257022809480187410133186189435436294593588009551451899398811758511878324326255293307347560753524372663257044426744744426759970254203341706284024734042826158828749144322843934985927079504722440497388146240627249465363931951790326885478025237643 c = 52409805591744226507807531465616894934028463651864630447934395956954575834603756391651746535033902964658694070544877880970130028487381287088425209448038533705903737694267359561133766799228825599943891152463160326583722749586721691729062524310148743637505134465210906856660867852927837112666513674858029892207902196213784902541173835447263733760225682942461048573387925463479672527491229113710629340960375692432470493054415657845868577650170648157402682163577152288432313996310562452677399267755695644659367792066311336521698894993982901657735586844358679888210537898629281625526455444811591386493005341435516094660429968084363084301878446471676122069724608083578102382181382107225473535696274374370868301830807644939881080301668756603163431000745972823980427048672732291 e = 65537
n能分解成p的5次方
exp:
1 2 3 4 5 6 7 8 9 10 11 12 13
from Crypto.Util.number import * import gmpy2
n = 226515252384227990547287743140613580056836242860947832749754689048997071950972581790210817523352001702907675581567498443649554801433663166425134375454937126656357069687274036935331269594383360450823787099121079436459236734336130768046337169817940540921822023269188752420603975467384377614321048859304185067329741055517464271746238143742661897809442359331215501438861121047081117632626097939097519866099140569819965948998542652908170134545593659233229897003698175558888336706474178958535138595687148003367152624421106553412886263257022809480187410133186189435436294593588009551451899398811758511878324326255293307347560753524372663257044426744744426759970254203341706284024734042826158828749144322843934985927079504722440497388146240627249465363931951790326885478025237643 c = 52409805591744226507807531465616894934028463651864630447934395956954575834603756391651746535033902964658694070544877880970130028487381287088425209448038533705903737694267359561133766799228825599943891152463160326583722749586721691729062524310148743637505134465210906856660867852927837112666513674858029892207902196213784902541173835447263733760225682942461048573387925463479672527491229113710629340960375692432470493054415657845868577650170648157402682163577152288432313996310562452677399267755695644659367792066311336521698894993982901657735586844358679888210537898629281625526455444811591386493005341435516094660429968084363084301878446471676122069724608083578102382181382107225473535696274374370868301830807644939881080301668756603163431000745972823980427048672732291 e = 65537
p = 11776588228599764849559519654482976956833367474471407292255776713760090338489966385328569279135095351660161277221351884258247731394014018172166064062551483 phi = p**4 * (p-1) d = gmpy2.invert(e,phi) m = pow(c,d,n) print(long_to_bytes(m)) #flag{1f95f530f85b940db810fc917607ee22}
XOR
1 2 3 4
n = 20810298530643139779725379335557687960281905096107101411585220918672653323875234344540342801651123667553812866458790076971583539529404583369246005781146655852295475940942005806084842620601383912513102861245275690036363402134681262533947475193408594967684453091957401932685922178406769578067946779033282889429596341714417295489842047781388337010440309434639274398589029236213499110100040841426995862849012466514170374143655264739023758914247116354182164550612494432327931655944868705959874670536031052370968354394583880324756639698871918124498442308334232127034553164826483441746719644515097123067550594588348951855987 c = 15294238831055894095745317706739204020319929545635634316996804750424242996533741450795483290384329104330090410419090776738963732127756947425265305276394058773237118310164375814515488333015347737716139073947021972607133348357843542310589577847859875065651579863803460777883480006078771792286205582765870786584904810922437581419555823588531402681156158991972023042592179567351862630979979989132957073962160946903567157184627177910380657091234027709595863061642453096671316307805667922247180282486325569430449985678954185611299166777141304330040782500340791721548519463552822293017606441987565074653579432972931432057376 e = 65537 p⊕q = 66138689143868607947630785415331461127626263390302506173955100963855136134289233949354345883327245336547595357625259526618623795152771487180400409991587378085305813144661971099363267511657121911410275002816755637490837422852032755234403225128695875574749525003296342076268760708900752562579555935703659615570
gift = 66138689143868607947630785415331461127626263390302506173955100963855136134289233949354345883327245336547595357625259526618623795152771487180400409991587378085305813144661971099363267511657121911410275002816755637490837422852032755234403225128695875574749525003296342076268760708900752562579555935703659615570 N = 20810298530643139779725379335557687960281905096107101411585220918672653323875234344540342801651123667553812866458790076971583539529404583369246005781146655852295475940942005806084842620601383912513102861245275690036363402134681262533947475193408594967684453091957401932685922178406769578067946779033282889429596341714417295489842047781388337010440309434639274398589029236213499110100040841426995862849012466514170374143655264739023758914247116354182164550612494432327931655944868705959874670536031052370968354394583880324756639698871918124498442308334232127034553164826483441746719644515097123067550594588348951855987
p = 121707024037268877853347577606022680727723421754483145354598542291389059730952536897407296725631390435306824149329251450428520017032068370905491236371588783551854860933656246846861645834009102275363106544337746297119821339365287420703692873394398852690091625453178968493127766149991473384937200789954598163517 q = 170986832479534233007906048950464510414382588164533889416767650420928742690929190093999799507883047422413122991286355305384227808800633111611572663168246588357071419165779511128259447564377245832827901688451015954867004306626552500789867499455455629032408110167560346510245108938981288797349665759162752876911 c = 15294238831055894095745317706739204020319929545635634316996804750424242996533741450795483290384329104330090410419090776738963732127756947425265305276394058773237118310164375814515488333015347737716139073947021972607133348357843542310589577847859875065651579863803460777883480006078771792286205582765870786584904810922437581419555823588531402681156158991972023042592179567351862630979979989132957073962160946903567157184627177910380657091234027709595863061642453096671316307805667922247180282486325569430449985678954185611299166777141304330040782500340791721548519463552822293017606441987565074653579432972931432057376 e = 65537 phi = (p-1)*(q-1)
d = gmpy2.invert(e,phi) m = pow(c,d,N) print(bytes.fromhex(hex(m)[2:])) #flag{7428fbd7-639b-11ee-b51b-64d69af3cb76}
from Crypto.Util.number import * from random import * p = getPrime(128) seed = randint(2, p - 1)
classprng: n = p a,b = [randint(2, p - 1) for _ inrange(2)] def__init__(self,seed): self.state = seed defnext(self): self.state = (self.state * self.a + self.b) % self.n return self.state
defmain(): gen = prng(seed) s = [seed] s.append(gen.next()) s.append(gen.next()) s.append(gen.next()) s.append(gen.next()) s.append(gen.next()) s.append(gen.next()) f = open("output.txt",'w') json.dump(s,f) f.close() flag = "flag{"+str(gen.next())+"}" return flag main()
output = [288530505749272642500730917886204398531, 63547143998110685331032679758907988154, 15151206512028268617888756820805603406, 268092204209244869520724955865278855216, 261067075335188593563542448889694952077, 138067838531633886698552659065694918861, 201319433320428898153580935653793106657] t = [] for i inrange(1,len(output)): t.append(output[i]-output[i-1])
T = [] for i inrange(1,len(t)-1): T.append(t[i+1]*t[i-1] - t[i]**2)
m = [] for i inrange(len(T)-1): mm = gmpy2.gcd(T[i],T[i+1]) if isPrime(mm): m.append(int(mm)) else: for i inrange(1,100): if isPrime(mm // i): mm = mm // i m.append(int(mm)) break print(m)
for i in m: if isPrime(i): a = gmpy2.invert(t[0],i) * t[1] % i b = output[1] - a*output[0] % i a_ = gmpy2.invert(a,i)
seed = output[0] print("seed =",seed) for j inrange(7): seed = (a * seed + b) % i flag = "flag{"+str(seed)+"}" print(flag) #flag{302184756857257140159769321021979097116}
flag = "flag{" table = [chr(i) for i inrange(32,128)]
for i in product(table,repeat=3): m = "".join(i) hash = hashlib.md5(m.encode()).hexdigest() ifhash == c[0]: flag += m print(flag) for i in product(table,repeat=2): m = "".join(i) hash = hashlib.sha256(m.encode()).hexdigest() ifhash == c[1]: flag += m print(flag) for i in product(table,repeat=2): m = "".join(i) hash = hashlib.sha512(m.encode()).hexdigest() ifhash == c[2]: flag += m print(flag) for i in product(table,repeat=2): m = "".join(i) hash = hashlib.sha256(m.encode()).hexdigest() ifhash == c[3]: flag += m print(flag) for i in product(table,repeat=2): m = "".join(i) hash = hashlib.sha256(m.encode()).hexdigest() ifhash == c[4]: flag += m print(flag) for i in product(table,repeat=2): m = "".join(i) hash = hashlib.sha224(m.encode()).hexdigest() ifhash == c[5]: flag += m print(flag) for i in product(table,repeat=2): m = "".join(i) hash = hashlib.sha224(m.encode()).hexdigest() ifhash == c[6]: flag += m print(flag) for i in product(table,repeat=2): m = "".join(i) hash = hashlib.sha224(m.encode()).hexdigest() ifhash == c[7]: flag += m print(flag) for i in product(table,repeat=3): m = "".join(i) hash = hashlib.sha1(m.encode()).hexdigest() ifhash == c[8]: flag += m print(flag) for i in product(table,repeat=3): m = "".join(i) hash = hashlib.sha1(m.encode()).hexdigest() ifhash == c[9]: flag += m print(flag) for i in product(table,repeat=2): m = "".join(i) hash = hashlib.sha512(m.encode()).hexdigest() ifhash == c[10]: flag += m print(flag) for i in product(table,repeat=3): m = "".join(i) hash = hashlib.sha1(m.encode()).hexdigest() ifhash == c[11]: flag += m print(flag) for i in product(table,repeat=2): m = "".join(i) hash = hashlib.sha256(m.encode()).hexdigest() ifhash == c[12]: flag += m print(flag) for i in product(table,repeat=3): m = "".join(i) hash = hashlib.md5(m.encode()).hexdigest() ifhash == c[13]: flag += m print(flag) for i in product(table,repeat=2): m = "".join(i) hash = hashlib.sha256(m.encode()).hexdigest() ifhash == c[14]: flag += m print(flag) for i in product(table,repeat=3): m = "".join(i) hash = hashlib.sha1(m.encode()).hexdigest() ifhash == c[15]: flag += m print(flag) for i in product(table,repeat=2): m = "".join(i) hash = hashlib.sha224(m.encode()).hexdigest() ifhash == c[16]: flag += m print(flag) for i in product(table,repeat=3): m = "".join(i) hash = hashlib.md5(m.encode()).hexdigest() ifhash == c[17]: flag += m flag += "}" print(flag) #flag{YOU'vE_c0m3_To_UNDerS7anD_Ha5H_GDIbgdF3EocT}
s = "==AeAF3M-tzO-giQ-AUQosDQ9tGK7MDPuhC47tDNB5Tb8Yn4sdW4" s = s.replace("t",'0').replace("4","c").replace("-","+") c = base64.b64decode(s[::-1]) m = "" for i in c: mm = (i - 3) ^ 8 m += (chr(mm)) print(m) #flag{1b36920e-c180-b250-6537-30238f5}
with zipfile.ZipFile(zip_file_path, 'r') as zip_file: for item in zip_file.infolist(): if item.is_dir(): folder_name = item.filename.replace("/","") print(folder_name[::-1]) folder_names.append(folder_name)
from Crypto.Util.number import bytes_to_long ,getPrime from random import randint from secret import flag , p, A, B classLCG: def__init__(self, seed, multiplier, increment, modulus): self.state = seed self.multiplier = multiplier self.increment = increment self.modulus = modulus
from Crypto.Util.number import long_to_bytes import gmpy2
e=65537 dp= n= c=
defdp_leak(dp,c,n,e): for i inrange(1,e): t = (dp * e - 1) % i if t == 0: p = (dp * e - 1) // i + 1 if n % p == 0: q = n // p d = gmpy2.invert(e,(p-1)*(q-1)) print(long_to_bytes(pow(c,d,n))) dp_leak(dp,c,n,e) #7U25DUJJ7USYATEN5SREOFFG5NY57FPS77U5DFPY54JEG3NYKWSYA3YD5CXYTTNW53QS====
list = [] for i in table1: ifnot (i in table2): list.append(i)
print(list)
for i inlist: for j inlist: if i != j: for k inlist: if i != k and j != k: for n inlist: if i != n and j != n and k != n: for t inlist: if i != t and j != t and k != t and n != t: for tt inlist: if i != tt and j != tt and k != tt and n != tt and t !=tt: for ttt inlist: if i != ttt and j != ttt and k != ttt and n != ttt and t !=ttt and tt != ttt: for tttt inlist: if i != tttt and j != tttt and k != tttt and n != tttt and t !=tttt and tt != tttt and ttt != tttt: for ttttt inlist: if i != ttttt and j != ttttt and k != ttttt and n != ttttt and t !=ttttt and tt != ttttt and ttt != ttttt and tttt != ttttt: pad1 = '' + i + j + k table2 = pad1 + "EGK" + n + "MAPZ" + t + tt +"3TISLXYHW" + ttt + "B4" + tttt + "R" + ttttt + "6CQV" flag = base64.b32decode(cipher.translate(str.maketrans(table2,table1))) ifb"flag"in flag: print(flag)
#flag{fa48a440-d0ff-0c2a-366243-a46b7e7853}
Classical master
1 2 3 4 5 6 7 8 9 10
import math from secret import s s = s.lower() keyM = [?] l = len(keyM) assert(math.gcd(l,26)==1) for i inrange(len(s)): print(chr((ord(s[i])*l-97+(keyM[i % l]))%26+97),end="")
from Crypto.Util.number import * import random from secret import flag
M = 2**54 k = 6
defgen_prime(M, k): whileTrue: prime = sum([random.getrandbits(16) * M**i for i inrange(k)]) if isPrime(prime) and (prime-1) % 3 == 0: return prime p, q, r = [gen_prime(M, k) for i inrange(3)] N = p * q * r e = 3 m = bytes_to_long(flag) c = pow(m, e, N) print(f'N = {N}') print(f'c = {c}')
""" N = 3298593732762513945346583663585189774036688951059270517149719979434109398447628726951796006700754759352430339647168415338320547665794785951232342902233013221132246450312038122695046634624323814318286314664160113738299465643128504110932989263063331290006313 c = 869489491924953293290699796392271834401780578884556874640489836779925847562085802848542382525324081900560761299059365684697233025590164192409062717942292142906458498707677300694595072310705415037345581289469698221468377159605973403471463296806900975548438 """
e = 3 R.<x> = Zmod(p)[] f = x^e-c f = f.monic() res1 = f.roots()
R.<x> = Zmod(q)[] f = x^e-c f = f.monic() res2 = f.roots()
R.<x> = Zmod(r)[] f = x^e-c f = f.monic() res3 = f.roots()
for i in res1: for j in res2: for k in res3: m = crt([int(i[0]),int(j[0]),int(k[0])],[int(p),int(q),int(r)]) flag = long_to_bytes(int(m)) ifb"flag"in flag: print(flag) break # flag{e1b7d2c2-e265-11eb-b693-98fa9b5bc5fe}
e = 65537 n = c = leak2 = 22334810767801800995021872014176778873829048161801414909315794486047873481911273730826962574216771288781 leak2 = leak2 << 5 for i inrange(2^5): plow = leak2 + i R.<x> = PolynomialRing(Zmod(n)) f = x * 2^350 + plow f = f.monic() roots = f.small_roots(X = 2^162,beta=0.4) if roots: p = int(roots[0]) * 2^350 + plow print(p) q = n // p d = gmpy2.invert(e,(int(p)-1)*(int(q)-1)) m = pow(c,d,n) print(long_to_bytes(int(m))) break # flag{9995eae8acaac286c7b72e50e5258dc3}