第一关
密文
这是给出的密文
begin 777 portal.binM(R!796QC;VUE#0H-"B,C($ME>0T*#0I24T$@4'5B;&EC($ME>3H@*$XL(#7!T960@=VET:"!T:&4@*BI24T$@4'5B;&EC($MEM>2HJ+@T*#0I@8&`-"D-/3D-!5"A$14-265!4*#$Y-S,W,BDN=&]3=')I;F>= 1 b = (b*b) % m return resultdef primeTest(n): q = n - 1 k = 0 while q % 2 == 0: k += 1; q /= 2 a = random.randint(2, n-2); if fastExpMod(a, q, n) == 1: return "inconclusive" for j in range(0, k): if fastExpMod(a, (2**j)*q, n) == n - 1: return "inconclusive" return "composite"def findPrime(halfkeyLength): while True: n = random.randint(0, 1=//80*Y./YOI$*@LU"J-Z@UFUWL/%]Q!_EKD0\[2%L*[SR45;._(;/'.L+0%WL5XR$WL,4GXQ9G(:[@&;1Y'0Z"0*P940A,:9M$W&7+NJ+YL#DXZ9WD,MN=IKT1-(7(,%MN[*!#TA?04GTUO7L#1+!+=,0``")$>@7M0Y!TN``&[`Y`$``##!+%.L<1G^P(`````!%E:`end
分析
同样解密,发现是个二进制文件,发现文件头是个fd377a58
,然后我们用python的magic模块来分析下文件是什么类型的。
import magic#读入data=open(bin_file).read()#获取类型magic.from_buffer(data)#lzma
返回的是lzma
,我们直接用7Z解压,发现一个文本文件。
79955ff7576a0f5a167b3ccb506bed3a d46b6f8c1ea3b812c2bba0edc0e63c85 | Roman Hitman================================================================H4sIAAAAAAACA1WPT0+DQBDF7/spRgTttbRsZRPZ1d1Fwg0OBYKEhWqMlwZBqjaFz+7Win8ylzeT95u8F8Otj4UkjIrCcxCKYzCmA0KqAMvFYFMRYA6SwTVZ4RykvvmU3GEu9GZTB7DWoXQJvdqi6gRJTKULPVkwai+XBKjvLTDforqAeTsObWMlnS1x0XPm7XEYMO4k0a6fgcBU6N/g2GGUFj3jni2T6HDouiiH6N0c758eSxWlOXzxAwt+TF3nedr0z5bOdSv4YITChYkMA3ac+TfPKDuJ71xABGTZlKuuFIxq87CBF1XqUapMs0wjl5iTVQhtc2a1b80Rmrqs9+scmsGcvZ4nhkp/dfVH18c0n2XEkwVzAQAA
那,很明显下面的又是一个base64加密,我们解密
import base64str='H4sIAAAAAAACA1WPT0+DQBDF7/spRgTttbRsZRPZ1d1Fwg0OBYKEhWqMlwZBqjaF\z+7Win8ylzeT95u8F8Otj4UkjIrCcxCKYzCmA0KqAMvFYFMRYA6SwTVZ4RykvvmU\3GEu9GZTB7DWoXQJvdqi6gRJTKULPVkwai+XBKjvLTDforqAeTsObWMlnS1x0XPm\7XEYMO4k0a6fgcBU6N/g2GGUFj3jni2T6HDouiiH6N0c758eSxWlOXzxAwt+TF3n\edr0z5bOdSv4YITChYkMA3ac+TfPKDuJ71xABGTZlKuuFIxq87CBF1XqUapMs0wj\l5iTVQhtc2a1b80Rmrqs9+scmsGcvZ4nhkp/dfVH18c0n2XEkwVzAQAA'base64.b64decode(str)
打开发现还是个二进制文件。。。。我去!!!
重复以上步骤,返回的是zip
,我们继续用7z解压,发现终于有点正常了,但是好像还是乱码!
def caesar_decode(data, num=47): res = '' for x in data: if x in (' ', '\n'): tmp = x elif 32 <= (ord(x) + num) <= 126: tmp = chr(ord(x) + num) else: tmp = chr(ord(x) - num) res += tmp return res
明文
## Questions1. The answer to life, the universe, and everything? Google 之2. The tenth Fibonacci number? Google 之3. `CONCAT(Date.FromKeyword("GFW sensive day").Format("MMDD", "ISO-8601"), Date.Now.Format("DDmm", , "ISO-8601"))`# Join USQQ Group:* Group number is **CONCAT(D321 O1454 B10101110)*** Verify CAPTCHA is `CONCAT('K', ANSWER(Q1), ANSWER(Q2), ANSWER(Q3))`
算群号
十进制的321,八进制的1454,二进制的10101110进行组合得到结果:321812174
算答案
第一个谷歌一下是42
第二个谷歌一下或者def fib(n): if n == 0: return 0 if n <= 2: return 1 return fib(n - 1) + fib(n - 2)
是55
第三个GFW sensive day是1989年6月4日,然后今天的日期拼接天
和分
。得到答案K42550604xxxx
结语
历经千辛万苦,终于算完了。进群之后发现剩女总是有原因的,跋扈刁蛮,还要照片啥的,于是就退了。
哎,我本以为能碰见知己来着。