本人也是在自学过程,主要目的也是记录学习过程,有些地方做的不太好,都是按照自己理解进行讲解的(不专业),欢迎大家指出问题
此处我将文件命名为pwn
checksec pwn 查看一下保护机制

可以看到这是一个32-bit的文件,什么保护也没看
将文件拖入ida

lea eax,ebp+var_A0 ; call vuln 将ebp+var_A0的值给eax,然后的调用vuln函数,eax作为vuln的参数;
lea eax,ebp+var_A0 ; call eax 执行ebp+var_A0地址里的内容

我们将shellcode输入到a1,后续的call eax执行a1里的内容,也就是执行shellcode
返回虚拟机
nano exp.py

保存退出
python3 exp.py
cat flag

此题完