一题纯看汇编的题


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="")
探讨INT21H汇编指令中输入字符串的加密原理,通过右移3位异或左移5位的加密方式,使用Python脚本逆向解密已知加密字符串。
2171

被折叠的 条评论
为什么被折叠?



