文件无壳 拖入ida
进入到汇编窗口 看到了很明显的花指令
开始写脚本去除花指令
在x86汇编语言中,0xEB
是jmp short
指令的机器码表示,而0xFF
可能是-1
的补码形式。因此,0xEB 0xFF
可以被解释为一个短跳转指令,跳转到当前指令的前面1字节处,实际上是一个无条件的跳转到当前指令的下一条指令,因为0xFF
被解释为-1
。
这段脚本会遍历从start_addr
到end_addr
范围内的字节,检查是否有连续的0xEB 0xFF
字节序列,并将其替换为0x90
。90也就是nop的机械码,以达到去除花指令的目的。
脚本
start = 0x1135
end = 0x3100
for i in range(start,end):
if get_wide_byte(i)==0xEB:
patch_byte(i,0x90)
得到flag
GFCTF{u_are2wordy}