lab1-3

最终结果:flag{equation}
通过ida可以看到第一个字符是0x66,也就是f,后面的输入的字符都需要加上前一个字符和给定的十六进制进行比较,在gdb中调试的时候也确实是这样,编写python代码的时候发现只有前一部分是对的,后面一部分是错的,进行gdb调试,发现在和0xe6比较时,有两次比较,但是这两次比较是完全一样的,没有读取下一个字符串,所以在编写代码时,就需要删除一个0xe6就可以了


image.png

image.png

image.png

这个截图比较长,后面的就不放了
把特殊的两个模块单独放出来


image.png

这两完全一样,是没有按照规律下去的,这个字符串在此处连续读了两次
python代码:
store=[0x66,0xd2,0xcd,0xc8,0xe2,0xe0,0xd6,0xe6,0xd6,0xd5,0xdd,0xd8,0xdd,0xeb]
x=0
result=""
for i in range(0,14):
    x=store[i]-x
    result+=chr(x)
print(result)

结果:
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。