我在Windows下的第一个Shellcode

时间:2022-07-23 11:39:02

纪念我的第一个Shellcode(XP SP3, VC6):

1.获取MessageBoxA(ASCII)的静态地址

我在Windows下的第一个Shellcode

2.编写汇编代码调试,获取对应的机器码(注意字符串由栈顶向栈底生长,push由栈底向栈顶生长):

我在Windows下的第一个Shellcode

3.淹没返回地址,执行对应的弹窗机器码

我在Windows下的第一个Shellcode

ps:即使Windows.h头文件中包含了对应的用户界面接口函数,但是如果编译器没有在代码中检测的到要加载对应库的语句,库是不会加载到对应的内存中的。所以如不是显式调用MessageBox(内联汇编或机器码),要手动加载user32.dll(MessageBox是其导出库)。