CTF-PWN

RoarCTF 2019 黄金六年、polyre

2019-10-16  本文已影响0人  Nevv

黄金6年

解压出一个mp4,然后用ffmpeg获取每一帧图片,找到三个二维码,分别为i、want、play。

mkdir imps && ffmpeg -i ./xx.mp4 -q:v 2 -f image2 ./imps/%07d.jpeg

strings可以看到mp4文件最后有3个base64字符串,拼接在一起解码后得到一个rar文件,解压密码为iwantplayctf

flag:roarctf{CTF-from-RuMen-to-RuYuan}

Polere

使用工具去除扁平化控制流混淆

#include <stdlib.h>
#include <stdio.h>


int main(int argc , char* argv[])
{   
    long long test= 0x6161616161616161;
    int i;
    for(i=0;i<64;i++){
     if(test >=0){
      printf(">0 0x%lx\n", test);
      test=test<<1;
     } else{
      printf("<0 0x%lx\n", test);
      test=test<<1;
      printf("<0_1 0x%lx\n", test);
      test=test^0xb0004b7679fa26b3;
      printf("<0_2 0x%lx\n", test);
     }
     printf("0x%lx\n", test);
    }
   printf("%p 0x%lx\n", &test, test);
}
// 0xa0caec43d66f53ef
test = 0xbc8ff26d43536296

for i in range(64):
 # if (test >> 63) ==  0: # zhengshu
 if test % 2 == 0:
  print "dayu0   " + hex(test)
  test /= 2;
 else:
  print "xiaoyu0  " + hex(test)
  test = (1 << 64) + test
  test ^= 0xB0004B7679FA26B3
  test /= 2;

print struct.pack("q",test)
上一篇 下一篇

猜你喜欢

热点阅读