繁体   English   中英

C - 用户输入崩溃的程序

[英]C - crashing program with user input

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

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

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

如果没有看到代码的所有细节,这是没用的,我道歉。 我不知道怎么去问这样的问题。

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

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

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

  3. 从中读取文件时删除文件。

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

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

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

对于结局..如果你想弄清楚你的程序崩溃的原因请使用调试器而不是随机猜测。

首先,你必须是一位经验丰富的程序员。 其次,您必须清楚操作系统和机器的工作原理(选择代码,堆栈等)。 然后你可以阅读有关漏洞利用和shellcode的内容。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM