)
本人也是在自学过程主要目的也是记录学习过程有些地方做的不太好都是按照自己理解进行讲解的不专业欢迎大家指出问题此处我将文件命名为pwnchecksec pwn 查看一下保护机制可以看到这是一个32-bit的文件NX保护开启将文件拖入ida按F5将汇编代码转换成c语言代码得到双击vuln()进入vuln函数可以看到明显的gets(s)栈溢出需要填充0x184的垃圾数据至return address找到flag函数进入可以看到只要win11,win21,a10xDEADBAAD就可以打印出flag找到win_function1函数进入可以看到这个函数的作用就是让win11找到win_function2函数进入可以看到只要win11,a10xBAAAAAAD就可以让win2等于1总体来看我们只需要覆盖返回地址为win_function1的地址调用win_function1函数让win1等于1然后调用win_funtion2函数改写a1的值为0xBAAAAAAD使得win2等于1最后调用flag函数改写a20xDEADBAAD从而获得flag返回虚拟机nano exp.py 开始写攻击脚本保存退出python3 exp.pycat flag此题完