[英]Segmentation Fault in C while using crypt function
我剛開始使用CI進行編程,試圖制作一個簡單的密碼破解程序,但是當我嘗試運行它時,我得到了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;
}
我想問題是,如果您從文件中讀出可能的密碼,則末尾會有換行符。 據我了解,crypt()函數只能處理可能導致返回NULL指針的[a-zA-Z0-9./](crypt 手冊頁 )集。 然后,此NULL指針會導致strcmp()函數內部出現分段錯誤。 因此,請嘗試在每個輸入行的末尾刪除該換行符。 希望這行得通
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.