霍雅
追求源于热爱,极致源于梦想!
解包
我直接用在线的工具反编译pyc了
线下用uncompyle6或者pycdc都行,我的不知道丢哪去了
反编译出来的代码长这样
def check():
a = input('plz input your flag:')
c = [144,163,158,177,121,39,58,58,91,111,25,158,72,53,152,78,171,12,53,105,45,12,12,53,12,171,111,91,53,152,105,45,152,144,39,171,45,91,78,45,158,8]
if len(a) != 42:
print('wrong length')
return 0
b = 179
for i in range(len(a)):
if ord(a[i]) * 33 % b != c[i]:
print('wrong')
return None
print('win')
类似于数学题吧,可以用数学方式求解
si=""
a = [144,163,158,177,121,39,58,58,91,111,25,158,72,53,152,78,171,12,53,105,45,12,12,53,12,171,111,91,53,152,105,45,152,144,39,171,45,91,78,45,158,8]
b = 179
for i in range(len(a)):
s=gmpy2.invert(33,b)
x = (a[i] * s) % b
si+=chr(x)
print(si)
因为我数学不好,所以我觉得不如直接爆省事
a = [144,163,158,177,121,39,58,58,91,111,25,158,72,53,152,78,171,12,53,105,45,12,12,53,12,171,111,91,53,152,105,45,152,144,39,171,45,91,78,45,158,8]
b = 179
flag=""
for i in range(len(a)):
for c in range(32,127):
try:
if c * 33 % b == a[i]:
flag+=chr(c)
except:
continue
print(flag)
后面两题都是零解,一个js,一个pe
不想看了