文章26
标签0
分类4

攻防世界re-hackme

首先在第二十六行可以判断出,我们需要输入的字符数量为22个

1.png

2.png

然后经过10次随机校验判断我们输入的字符串,大致算法流程就是:
如果验证的是第一位字符v11就循环1次,如果是第二位v11就循环2次,一共验证10次,然后和验证的字符进行一个异或,
最后取到前8位。

str = [0x5F, 0xF2, 0x5E, 0x8B, 0x4E, 0x0E, 0xA3, 0xAA, 0xC7, 0x93,0x81, 0x3D, 0x5F, 0x74, 0xA3, 0x09, 0x91, 0x2B, 0x49, 0x28,0x93, 0x67]
flag = ''
for i in range(22):
    key = 0
    num1 = 0
    num2 = i+1
    while num1< num2:
        num1 +=1
        key = key * 0x6D01788D + 0x3039
    flag += chr((key^str[i])&0xff)
print(flag)

    0 评论

    ">