• CG-CTF Our 16bit Games


    一.放到xp上面跑,发现是一个图形界面的飞机游戏。。。估计是分数到达多少,然后就可以输出flag。
    在这里插入图片描述
    打开ida,一脸懵逼,主要这玩意16位,我直接静态调试了
    发现很多汇编代码,有点懵逼,在最下方的地方,找到了一个jmp指令,然后是INT 21H ,这句汇编搭配Ah的值,可以有不同的效果和作用,AH为2时是输出。

    在这里插入图片描述
    说明这一大堆的,就是输出flag的语句,通过flag的格式NCTF开头两个字母,可以反推回bl和bh,再通过脚本构造出flag就行了

    
    a=[0x8E,0x9D,0x94,0x98,0xBB,0x89,0xF3,0xEF,0x83,0xEE,0xAD,0x9B,0x9F,0xEC,0x9F,0x9A,0xF0,0xEB,0x9F,0x97,0xF6,0xBC,0xF1,0xE9,0x9F,0xE7,0xA1,0xB3,0xF3,0xA3]
    for i in range(256):
      if chr(i^0x8E)=='N':
        print(i)
    for i in range(256):
      if chr(i^0x9D)=='C':
        print(i)
    bh=192
    bl=222
    flag=""
    for i in range(len(a)):
      if i%2==0:
        tmp=chr(bh^a[i])
      else:
        tmp=chr(bl^a[i])
      flag+=tmp
    print(flag)
    

    在这里插入图片描述

  • 相关阅读:
    作业二
    作业一
    作业十一
    作业十
    作业九
    作业八
    作业七
    作业六
    作业五
    JAVA第三次作业
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12779884.html
Copyright © 2020-2023  润新知