这是一个反调试的题目
先来到主函数
可以浅显的猜测flag目前加密后的样子为
Q\x17SCTF{wud3_0n@,34p}
可以发现下表为0,1,7,8,14,15的位置可能进行了加密,一般猜测为异或。
发现相邻的两个数,
前面一个异或:Q^未知数=N,未知数= 31
后面一个异或:\x17^未知数=S,未知数=68
就得到结果:
NSSCTF{h1d3_0n_h34p}
还有一种方法:
前面不是说这是一个反调试的题目吗
也就是说flag会自动解密
可以仔细观察下面的函数
那我们进行Linux运程调试
发现到一个地方就自动停下来了
切换到相同的位置
在这里下断点,可以看见它会跳到直接结束的地方
所以我们可以改一下这里的标志寄存器,或者直接nop掉,或者取反
这里演示一种方法:
修改完成后,可以直接运行到快结束的时候
然后进行搜索NSSCTF
记住光标要点击内存处,因为它解密后放到内存里了