【发布时间】:2018-03-27 03:48:05
【问题描述】:
我是 C 编程新手。我正在尝试制作一个简单的密码破解程序,但是当我尝试运行它时,我得到了 Segmentation Fault 作为错误。有人可以解决这个问题。提前致谢。
#define _XOPEN_SOURCE
#include<stdio.h>
#include<crypt.h>
#include<unistd.h>
#include<string.h>
int main(int argc, char *argv[])
{
if(argc != 3)
{
printf("Usage: ./craken salt hash\n");
return 0;
}
FILE *fPointer;
fPointer = fopen("wordlist.txt", "r");
char singleLine[150];
while(fgets(singleLine, 150, fPointer) != NULL)
{
if(!strcmp(argv[2], crypt(singleLine, argv[1])))
{
printf("Password found! %s is the password\n", singleLine);
fclose(fPointer);
return 0;
}
}
printf("Not found\n");
fclose(fPointer);
return 0;
}
【问题讨论】:
-
您的代码是在
valgrind还是在调试器中运行的? -
我使用gcc在kali linux中编译运行程序
-
你能把完整的错误粘贴在这里,以便我们得到其他必要的细节吗?
-
您应该检查 fPointer 中的
NULL,并且您可能需要考虑更改您的代码,以便您有一个单一的出口点,因为两个出口点基本相同..跨度>
标签: c segmentation-fault des crypt