shellcode(payload)
shellcode:缓冲区溢出中植入进程的代码,直译就是——可执行的代码。一般是汇编语言写的。
exploit:劫持程序,跳转去执行shellcode(payload)。
在实际漏洞调试时,有缺陷的函数可能包含在动态链接库中。这时候被动态加载后、函数在栈中的地址可能会变化。必须让程序自动定位shellcode起始位置。
定位shellcode

写个程序,内存中搜索定位user32.dll,在它之后寻找ESP的机器码。
或者用ollydbg的插件
选择一个作为esp定位点,7e429353
exitProcess函数入口点7C81CAFA (调用该API,正常退出不会报错)
messageBoxA函数入口点7E4507EA
感谢failwest大大的教程。
后面再学习shellcode的编写,就是用汇编语言写好指令程序,再用ollydbg转成二进制代码。