CG-CTF Our 16bit wars

一题纯看汇编的题
在这里插入图片描述
在这里插入图片描述
INT 21H, ah为0A时,是输入字符串到缓冲区DS:DX,DX+1地址存放着字符串长度
在这里插入图片描述
说明了长度为35
在这里插入图片描述
这里加密是右移3位异或左移5位,
在这里插入图片描述
告诉了我们加密后的字符串是什么,写个脚本逆向回去就好了。

a=[
  0xC9, 0x68, 0x8A, 0xC8, 0x6F, 0x07, 0x06, 0x0F, 0x07, 0xC6, 
  0xEB, 0x86, 0x6E, 0x6E, 0x66, 0xAD, 0x4C, 0x8D, 0xAC, 0xEB, 
  0x26, 0x6E, 0xEB, 0xCC, 0xAE, 0xCD, 0x8C, 0x86, 0xAD, 0x66, 
  0xCD, 0x8E, 0x86, 0x8D, 0xAF, 0x00
]
flag=""
for i in range(len(a)):
  for  j in range(256):
    if ((j>>3)^(j<<5))&0xff==a[i]:
      print(chr(j),end="")

posted @ 2020-04-10 14:54  YenKoc  阅读(176)  评论(0编辑  收藏  举报