我编写了一个模糊程序,通过创建一个子进程在易受攻击的C应用程序上造成缓冲区溢出。
CASE #2 (Size = 24):
IN: AjsdfFjSueFmVnJiSkOpOjHk
OUT: -11IN象征传递给scanf的值
OUT表示返回值。
脆弱方案:
#include <stdio.h>
#include <stdlib.h>
#define N 16 /* buffer size */
int main(void) {
char name[N]; /* buffer */
/* prompt user for name */
printf("What's your name? ");
scanf("%s", name);
printf("Hi there, %s!\n", name); /* greet the user */
return EXIT_SUCCESS;
}使用上面生成的有效载荷手动运行此易受攻击的程序,它返回:
Segmentation Fault
现在,要正确打印错误原因,我想将int return value映射到枚举->,如Segmentation Fault = -11
然而,在我的研究中,我找不到任何关于这些错误代码是如何被映射的信息,即使是我的示例-11 = Segmentation fault。
发布于 2018-05-14 06:59:37
我找到了解决办法:
Popen.returncode 子程序返回由轮询()和wait()设置的代码(并间接返回code ())。None值表示进程尚未结束。 负值-N表示该子节点被信号N(仅为Unix)终止。
-> Unix信号
希望这对其他人也有帮助。
https://stackoverflow.com/questions/50324593
复制相似问题