HackPack CTF
BF means best friend, right?
这个先放上代码!
--[----->+<]>----[-<+>]+[--------->++<]>[-<+>]--[----->+<]>-----[-<+>]+[----->+++<]>++[-<+>]+[------->++<]>[-<+>]++[------>+<]>++[-<+>]--[----->+<]>----[-<+>]+[------->++<]>--[-<+>]--[----->+<]>-----[-<+>]+[--------->++<]>+[-<+>]--------[-->+++<]>[-<+>]
然后上链接
https://fatiherikli.github.io/brainfuck-visualizer/
这个运行时间是有点长的,所以我们可以找个脚本来运行,最后会出来几个数字,将其ASCLL码转换一下就可以了!
再加上flag{}就可以了!
Function Pointer Fun
这道题挺有意思的!此时我们可以进行一波分析!
先ida打开(再此之前需要EP探测一波)
所以我们就进入里面进行一波判断!
此时我们想的是先爆破!
但是太慢了,所以我又想本地爆破,但是还是一直报错,所以我换了一种思路!
#res = (seed[2] | seed[3]) & (*seed | seed[1]);
for i in range(48,127):
if(chr(i)):
for j in range(48,127):
if(chr(j)):
for k in range(48,127):
if(chr(k)):
for l in range(48,127):
if(chr(l)):
flag = (k | l) & (i | j)
if flag == 73:
print(f"{chr(i)} {chr(j)} {chr(k)} {chr(l)}")
exit()
然后运行得到一种符合要求的密码!
这样子flag就得到了!
Euler’s Identity
One night, a man named Euler gave you three strings in your dream: MD5:d8d540ae49aadd151b96feb4e0ff124f, SHA1:abb07ca45c9e7719e66e766b958d943f561b8de6, SHA2(SHA1(MD5)):c037c03ee627047a85df540c42d59c6b6028841704a7c706feff584a997fd2a3.
这个就需要解密工具了,或者一些在线网站,但是它们是需要收费的,免费的不容易!
MD5免费链接
https://www.somd5.com/
其它的一些网站要不是解不了密,要不是就要收费!
GaussBot
这里可以找到一些数据!
data = [233, 25, 1, 0, 0, 89, 186, 14, 0, 0,
0, 187, 1, 0, 0, 0, 184, 4, 0, 0,
0, 205, 128, 233, 21, 1, 0, 0, 89, 186,
31, 0, 0, 0, 187, 0, 0, 0, 0, 184,
3, 0, 0, 0, 205, 128, 104, 109, 125, 0,
0, 104, 48, 103, 114, 97, 104, 52, 45, 112,
114, 104, 105, 100, 101, 45, 104, 45, 105, 110,
115, 104, 103, 114, 97, 109, 187, 11, 0, 2,
48, 129, 243, 112, 112, 112, 0, 83, 104, 102,
108, 97, 103, 137, 206, 137, 231, 252, 185, 30,
0, 0, 0, 243, 166, 227, 2, 235, 106, 104,
63, 10, 0, 0, 104, 32, 72, 111, 119, 104,
116, 46, 46, 46, 104, 118, 97, 117, 108, 104,
111, 105, 110, 32, 104, 111, 103, 101, 99, 104,
104, 101, 32, 100, 104, 111, 114, 32, 116, 104,
114, 100, 32, 102, 104, 115, 115, 119, 111, 104,
101, 32, 112, 97, 104, 115, 32, 116, 104, 104,
97, 116, 32, 105, 104, 44, 32, 116, 104, 104,
87, 97, 105, 116, 137, 225, 186, 58, 0, 0,
0, 187, 1, 0, 0, 0, 184, 4, 0, 0,
0, 205, 128, 187, 0, 0, 0, 0, 184, 1,
0, 0, 0, 205, 128, 104, 116, 115, 10, 0,
104, 101, 99, 114, 101, 104, 109, 121, 32, 115,
104, 121, 111, 117, 32, 104, 101, 108, 108, 32,
104, 101, 114, 32, 116, 104, 32, 110, 101, 118,
104, 73, 39, 108, 108, 137, 225, 186, 31, 0,
0, 0, 187, 1, 0, 0, 0, 184, 4, 0,
0, 0, 205, 128, 187, 0, 0, 0, 0, 184,
1, 0, 0, 0, 205, 128, 232, 226, 254, 255,
255, 67, 104, 97, 116, 32, 115, 116, 97, 114,
116, 101, 100, 62, 32, 232, 230, 254, 255, 255,
0]
for i in data:
if 47<i<128 and i!=0 and i!=104:
print(chr(i),end='')
dataer = 'YYm}0gra4prideinsgram0pppSflagj?HowtvauloinogecedortrdfsswoepastatitWait:tsecremysyouellertnevIllCatstarted>'
print(len(dataer))
l = 12
print(l)
while l:
l = l - 1
for j in range(12):
print(dataer[(l*12)+j-2],end='')
我不断的去除垃圾数据,不过还是有一些问题的
YYm}0gra4prideinsgram0pppSflagj?HowtvauloinogecedortrdfsswoepastatitWait:tsecremysyouellertnevIllCatstarted>
在这个可以看到Catstarted>,还有flag,还有经过特殊组合的password和sort,tatit,wait等英文字符,原谅我的English不好!找不到flag!