文章预览
该题为正常ctf题与恶意脚本相结合的题目,cha为常规的re题目,clickme为恶意样本,在cha中拿到信息,然后根据clickme的逻辑解密。 cha的核心为比较经过换表base64然后与自己xor之后与内存中的32字节相比较 求解思路: 1.DFS爆破,因为前面的字节会影响后面的状态 2.利用前面的数据求和信息,筛选唯一解 爆破脚本: convert_table = b'APet8BQfu9CRgv+DShw/ETixFUjyGVkzHWl0IXm1JYn2KZo3Lap4Mbq5Ncr6Ods7' encrypted_flag = [ 0xD9 , 0x40 , 0x6F , 0xCA , 0x3D , 0x8F , 0x53 , 0xB1 , 0x8B , 0x34 , 0x92 , 0x8E , 0xF7 , 0x19 , 0x94 , 0x61 , 0x68 , 0x71 , 0x55 , 0xB6 , 0xCE , 0x5B , 0x71 , 0x1A , 0x79 , 0x42 , 0x9D , 0x02 , 0x93 , 0x38 , 0xAD , 0x1F , 0xD3 , 0x24 , 0x48 , 0xFF , 0x21 , 0xA2 , 0x24 , 0xBE , 0x95 , 0x3A , 0xC1 , 0xD2 ] def convert ( flag,index ): group = (index // 4 ) * 3 if index % 4 == 0 : return convert_table[f
………………………………