nss:1860(第一个关于汇编的题)
这个题我们需要用来观察汇编语言逐个分析吧
首先是将ax清零,然后从数据段中拿出数据,向左偏移4,压入栈中,再清零ax,再从数据段中拿出数据,再向右偏移4,将栈中的数据拿出给bx,ax+bx,再拿ax与 (十六进制的17)23进行异或,最后的数据拿来和额外段的数据比较。(这里注意,只拿了一个数据,并不是全部)4
enc=[0x91, 0x61, 0x01, 0xC1, 0x41, 0xA0, 0x60, 0x41, 0xD1, 0x21, 0x14, 0xC1, 0x41, 0xE2, 0x50, 0xE1, 0xE2, 0x54, 0x20, 0xC1, 0xE2, 0x60, 0x14, 0x30, 0xD1, 0x51, 0xC0, 0x17] flag='' for i in range(len(enc)): enc[i]=enc[i]^0x17 flag+=chr((enc[i]>>4)+(enc[i]<<4)%128) print(flag)
之后就解出来啦