红帽杯2019-XX

输入
取输入的前四个字符
进行XXTEA加密
通过置换box进行置换
3个为一组做循环异或
和明文比较

  key = (__int128 *)operator new(5ui64);
  v6 = *(_QWORD *)&Code;
  key1 = key;
  v8 = 0;
  v9 = key;
  do
  {
    v10 = *((_BYTE *)v9 + (char *)input - (char *)key);
    v11 = 0;
    *(_BYTE *)v9 = v10;                         // key第i位替换成输入值的i位
    v12 = 0i64;
    v13 = -1i64;
    do
...
  enc_tea = xxtea((__int64)input, v3, (unsigned __int8 *)&key1, &Size);

输入值应该是flag{xxxxxxxxxxx}那么xxtea的key应该是flag

posted @ 2022-01-11 07:54  wgf4242  阅读(95)  评论(0编辑  收藏  举报