这里,我们将编写一个非常简单的shellcode,它的功能是得到一个命令行。我们将从该shellcode的C程序源码开始,逐步构造并提取shellcode。
该shellcode的C程序源码为:
为了避免链接干扰,静态编译该shellcode,命令为:
下面使用gdb调试并分析一下shellcode程序:
根据程序反汇编得到的代码分析,在call指令执行之前,函数堆栈的使用情况如下图所示:

我们用gdb调试运行shellcode,看我们上面的分析是否完全正确。
这里,我们将编写一个非常简单的shellcode,它的功能是得到一个命令行。我们将从该shellcode的C程序源码开始,逐步构造并提取shellcode。
该shellcode的C程序源码为:
为了避免链接干扰,静态编译该shellcode,命令为:
下面使用gdb调试并分析一下shellcode程序:
根据程序反汇编得到的代码分析,在call指令执行之前,函数堆栈的使用情况如下图所示:

我们用gdb调试运行shellcode,看我们上面的分析是否完全正确。