Shellcode(payload)

shellcode(payload)

shellcode(payload)

shellcode:缓冲区溢出中植入进程的代码,直译就是——可执行的代码。一般是汇编语言写的。

exploit:劫持程序,跳转去执行shellcode(payload)。


在实际漏洞调试时,有缺陷的函数可能包含在动态链接库中。这时候被动态加载后、函数在栈中的地址可能会变化。必须让程序自动定位shellcode起始位置。

定位shellcode





写个程序,内存中搜索定位user32.dll,在它之后寻找ESP的机器码。



或者用ollydbg的插件







选择一个作为esp定位点,7e429353

exitProcess函数入口点7C81CAFA (调用该API,正常退出不会报错)

messageBoxA函数入口点7E4507EA


感谢failwest大大的教程。

后面再学习shellcode的编写,就是用汇编语言写好指令程序,再用ollydbg转成二进制代码。