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="")