0xGame2021-第二周
第二周wp
开始
Crypto calender
把对应星期的对应个数处的日期转换成26字母
唯一的疑惑是上个月的要不要算呢
两种情况都看了下明显还是要算
Crypto 甘道夫指导
属于是直接把flag拍脸上了
先是自己写了代码结果没解出来(不过思路没毛病)
于是在hx大佬的博客copy了代码
然后还有什么好说的吗?!qwq
Crypto CN NO.1
第一步和甘道夫一样
得到一堆数据之后去看中国剩余定理
我觉得我看懂了但我写不出代码
还好有百度,找到一个靠谱的代码解出m
然后我傻逼兮兮地用了long_to_bytes
然后傻逼兮兮地解除了一串傻逼兮兮的b''
然后傻逼兮兮地去问大佬
然后傻逼兮兮地回去看源码
于是傻逼兮兮地发现是不需要long_to_bytes的
然后我个傻逼把m直接输进去就拿到了flag,太感动了
Crypto equation
刚看到属是有点懵逼还试图把他当成二元方程穷举
然而转念一想可以直接转成一元二次,于是开始求解
求根公式大家都会就不多说了,值得一提的是大数开方的过程:
原本想着可以直接在网上找到工具结果徒劳
于是自己写了一个简单的二分法来求解
后面就简单了
下面给出全部代码
from Crypto.Util.number import*
n=29070881194239792091996951889978925941382014143912652099051180726356864627874253433871074540945557832901059397368986887752132387368293534115856317439856278674020249172544170254969581722964815439189193923153143538569697570722682892883715833119831018800307809755476716119498877940372976643887984896270202769953400174650465154562081929385655236671763799202750100671617111134188737867419824202590812810715012905761248366011771140922460758495687990609335246283798319666587556607810715362920356588897534839536328090760646479183981630385352655797077512586248984274942586809055192853137165652980021836350393400722226972173214682414870486118671313615831125468483731370315228221018490375802540137480718023855301133197678369272040639904587501304052499598902095025277338889880188761288755978291922584877284012214040722369535913073849160803191480535554423199283
f=60621372939002882805013403171742702513497103761906173416105267237808058939660623103507107562578292899982406983598531353376182455286670013546227100349077357549728600007647043450275221399764392050101386673092305317243403374044297387013140877452422023988932582637981175099157142550745966095398262645483617394134803358425760304363836495271715083917117462760309379794701105128326283283562670689062898798107181607842722558824651323397
derta=f*f-4*7593*3418*n
low=10**427
high=10**428
while low<high:
middle = (low+high)//2
if middle**2>derta:
high=middle+1
elif middle**2<derta:
low=middle-1
else:
break
print(middle)
q = (f+middle)//(2*7593)
p = n//q
phi=(p-1)*(q-1)
n=p*q
e = 612727
d=inverse(e,phi)
c = 13405898768607126342735152861874194093539776532451433244384161645650269836508906062201506167334232159011891868740650271406237835996628161218737321562453229992581458546595805497890663988648594306162521553204122457714811664274319217780860322512390603037125445210952354328893192808468523528488382843982895741605187846452526607515616950600824405860650300247256006735662126234041492036321309565256770891501248656569219300876982142045338146654538924362916886251375573293825178736718977246173273428119533445771099855795133258743468863921088250518360972413181377979918076452600630250727219803342530280185236070989401584291772241548089037962427020303042524172299264525570830428369115476600559801243917150717055023377557783910959820960663896534192637742955820545654947099142239750945804645899223756651548344312092194839404536587932048211949633546864675949493
m=pow(c,d,n)
print(long_to_bytes(m))
结束
misc ezalpha
开始的时候十分蛋疼的去用steg的那个最低位啥的
几天后幡然醒悟
点了几下下面的箭头
得到flag
misc encode
找到新曰佛解出来一堆即见未来为何不拜头疼几天
给了hint ook
了解之后把所有即见未来为何不拜替换成Ook
解出来
最后VBScript解码就出来了
misc hamburger
这也是让我十分蛋疼的一道题
一开始找了半天和png夹层啥乱七八糟的东西
最后发现用记事本打开就能找到flag?!
感觉这不是像是正解但我还是解出来了