做一些攻防世界的第一页的题。
今日做的题目
elrond32
两个重要函数:sub_8048414() \ sub_8048538()
- sub_8048414:
看main函数里,sub_8048414()的返回值需要是非零的数if才能成立,所以这个函数的第二个参数需要是2、8或者是大于9的数
a = 0
while((7*(a+1)%11) >=0 and (7*(a+1)%11) <=9): # 暂时先把2和8放进去。看print出来的数
print (a)
a = 7*(a+1)%11
print (a)
a : 0,7,1,3,6,5,9,4,2
对应的字符串: isengard
第二个函数:
v2:
解flag:
a = [15,31,4,9,28,18,66,9,12,68,13,7,9,6,45,55,89,30,0,89,15,8,28,35,54,7,85,2,12,8,65,10,20]
a1 = "isengard"
b = ''
for i in range(33):
b += chr(a[i]^ord(a1[i%8]))
print(b)
flag{s0me7hing_S0me7hinG_t0lki3n}
re4-unvm-me
pyc文件,在线反编译
反编译出来的代码:
import md5
md5s = [
0x831DAA3C843BA8B087C895F0ED305CE7L,
0x6722F7A07246C6AF20662B855846C2C8L,
0x5F04850FEC81A27AB5FC98BEFA4EB40CL,
0xECF8DCAC7503E63A6A3667C5FB94F610L,
0xC0FD15AE2C3931BC1E140523AE934722L,
0x569F606FD6DA5D612F10CFB95C0BDE6DL,
0x68CB5A1CF54C078BF0E7E89584C1A4EL,
0xC11E2CD82D1F9FBD7E4D6EE9581FF3BDL,
0x1DF4C637D625313720F45706A48FF20FL,
0x3122EF3A001AAECDB8DD9D843C029E06L,
0xADB778A0F729293E7E0B19B96A4C5A61L,
0x938C747C6A051B3E163EB802A325148EL,
0x38543C5E820DD9403B57BEFF6020596DL]
print 'Can you turn me back to python ? ...'
flag = raw_input('well as you wish.. what is the flag: ')
if len(flag) > 69:
print 'nice try'
exit()
if len(flag) % 5 != 0:
print 'nice try'
exit()
for i in range(0, len(flag), 5):
s = flag[i:i + 5]
if int('0x' + md5.new(s).hexdigest(), 16) != md5s[i / 5]:
print 'nice try'
exit()
continue
print 'Congratz now you have the flag'
md5在线解密:md5在线加解密
ALEXCTF{dv5d4s2vj8nk43s8d8l6m1n5l67ds9v41n52nv37j481h3d28n4b6v3k}
流浪者
再看sub_4017F0函数
解密:
str1 = "KanXueCTF2019JustForhappy"
str2 = "abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ"
v5 = []
for i in range(len(str1)):
for j in range(len(str2)):
if (str1[i] == str2[j]):
v5.append(j)
break
print (v5)
a2 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
str3 = ""
for i in range(len(v5)):
str3 += a2[v5[i]]
print (str3)
v5 = [19, 0, 27, 59, 44, 4, 11, 55, 14, 30, 28, 29, 37, 18, 44, 42, 43, 14, 38, 41, 7, 0, 39, 39, 48]
str3 = j0rXI4bTeustBiIGHeCF70DDM