1

这可能被认为是一个奇怪的问题,但我正在尝试从我提供的输入中找出一种使程序崩溃的方法。就像一个无限循环或分段错误。

该程序非常标准。它使用 get_line 从文本文件中读取行,然后计算它们的长度。

我的问题基本上是:有谁知道放入 txt 文件的任何技巧会导致程序在读取文本行时以某种方式崩溃?

如果没有看到代码的所有细节,这无用,我深表歉意。我不知道如何去问这样的问题。

4

3 回答 3

4

假设代码是天真的编写的,您可以执行以下操作:

  1. 创建一个文本文件,其中的行数大于您在 get_line 中使用的缓冲区。

  2. 更改文件的权限并删除从中读取的能力。

  3. 在从中读取文件的过程中删除文件。

  4. 将数据放入 ASCII 字符范围之外的文件中,以查看程序如何反应。例如,让它从二进制可执行文件而不是文本文件中读取。

  5. 在读取文件时向程序发送 SIGINT、SIGHUP。

  6. 让你的猫躺在键盘上。

最后,如果您想弄清楚程序崩溃的原因,请使用调试器而不是随机猜测。

于 2012-04-23T06:16:20.867 回答
0

它取决于您使用的操作系统和终端以及程序如何处理您的输入。在少数情况下,输入或足够长的输入会导致程序崩溃。

于 2012-04-23T07:47:46.363 回答
0

首先你必须是一个有经验的程序员。其次,您必须了解操作系统和机器是如何工作的(选择码、堆栈等)。然后,您可能会阅读有关漏洞利用和 shellcode 的信息。

于 2012-04-23T07:28:28.067 回答