【问题标题】:Python3 fuzzer get return code namePython3 fuzzer 获取返回代码名称
【发布时间】:2018-05-14 06:55:42
【问题描述】:

我编写了一个模糊器,通过创建一个子进程来导致易受攻击的C 应用程序的缓冲区溢出。

CASE #2 (Size = 24):
       IN: AjsdfFjSueFmVnJiSkOpOjHk 
       OUT: -11

IN 表示传递给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

【问题讨论】:

    标签: python-3.x subprocess error-code


    【解决方案1】:

    我找到了解决办法:

    Popen.returncode

    子返回码,由 poll() 和 wait() 设置(间接由communicate() 设置)。 None 值表示进程没有 还没有结束。

    负值 -N 表示子进程被信号 N 终止(仅适用于 Unix)。

    ->Unix Signals

    希望这对其他人也有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-22
      • 2015-05-09
      • 2016-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多