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!


posted @ 2021-04-21 20:38  望权栈  阅读(18)  评论(0编辑  收藏  举报  来源