├── README.md ├── Whatsapp_Creator.py └── Whatsapp_Creator.py~ /README.md: -------------------------------------------------------------------------------- 1 | # WhatsAppMassCreator 2 | 3 | WhatsAppMassCreator is an automated WhatsApp Username Password creator, that uses http://onlinesmsverification.xyz API to receive and verify SMS 4 | 5 | ![alt text](http://i.imgur.com/FoUNrvN.png "Usage Example") 6 | 7 | # Usage 8 | Just run the script using python 2.x and that's it. The tool does the rest for you 9 | 10 | #Proxies 11 | Currently, the tool only accepts ip proxies with ports 80 and 8080. We will be adding more proxy support later. 12 | Proxies are easily available online, you could use hidemyass.com 13 | 14 | #Contact 15 | Skype: Lambasoft 16 | -------------------------------------------------------------------------------- /Whatsapp_Creator.py: -------------------------------------------------------------------------------- 1 | import urllib 2 | import json 3 | import time 4 | import os 5 | import math 6 | 7 | __author__ = 'Lambasoft' 8 | __website__ = "onlinesmsverification.xyz" 9 | __version__ = "1.0" 10 | 11 | debug = True 12 | api_url = "http://api.onlinesmsverification.xyz/api.php" # Do not change this unless you know what you're doing 13 | osms_token = "" # Place your http://onlinesmsverification.xyz token here 14 | max_tries = 5 # Maximum number of failed tries per registration before we stop trying 15 | save_path = "" 16 | 17 | #Do not edit anything from below 18 | reason = { 19 | 'bad_proxy' : False 20 | }; 21 | 22 | counter = { 23 | 'bad_proxy' : 0, 24 | 'accounts' : 0, 25 | 'sms_tries' : 0, 26 | 'created_accounts' :0, 27 | 'tries' : 0, 28 | "proxy" : 0 29 | }; 30 | number = 0 31 | 32 | def apiAction( action , parameter = ""): 33 | fetch_url = api_url + "?token=" + osms_token + "&action=" + action + parameter 34 | f = urllib.urlopen(fetch_url) 35 | html = f.read() 36 | return html 37 | 38 | def find_between( s, first, last ): 39 | try: 40 | start = s.index( first ) + len( first ) 41 | end = s.index( last, start ) 42 | return s[start:end] 43 | except ValueError: 44 | return "" 45 | 46 | 47 | def setProxies(): 48 | isValid = False 49 | while not isValid: 50 | print "We only accept proxies using the following ports: {80,8080}" 51 | answer = raw_input("Enter proxies:port txt file path : \r\n") 52 | if answer: 53 | if ".txt" in answer: 54 | if os.path.isfile(answer): 55 | with open(answer, 'r') as f: 56 | results = f.read().splitlines() 57 | return [ x for x in results if (":80" or ":8080") in x ] 58 | isValid = True 59 | else: 60 | print "[!] Please make sure the file exist" 61 | isValid = False 62 | else: 63 | print "Proxies should be in a .txt file" 64 | isValid = False 65 | else: 66 | isValid = True 67 | return [] 68 | 69 | 70 | if __name__ == "__main__": 71 | print " " * 9 + "-" * 42 72 | print " " * 10 + "Author: {0} | {1}".format(__author__ , __website__) 73 | print " " * 20 + "WhatsApp Mass Creator" 74 | print " " * 25 + "Version: {0} ".format(__version__) 75 | print " " * 9 + "-" * 42 76 | print "\n\r" 77 | 78 | if not osms_token: 79 | osms_token = raw_input("Enter your Token: ") 80 | 81 | data = json.loads(apiAction("balance")) 82 | print "Your Balance is: {0}".format(data['balance']) 83 | 84 | while (counter['accounts'] <= 0): 85 | counter['accounts'] = input("How many WhatsApp Accounts would you like to create?\r\n") 86 | 87 | proxies = setProxies() 88 | while (len(proxies) < counter['accounts']): 89 | print "Loaded " + str(len(proxies)) + " proxies." 90 | print "Proxies should be more than accounts!" 91 | proxies = setProxies() 92 | 93 | print "Loaded " + str(len(proxies)) + " proxies." 94 | 95 | while (not save_path): 96 | save_path = raw_input("Enter Output File Name:\r\n") 97 | 98 | print "Accounts will be saved to " + os.path.dirname(os.path.realpath("__file__")) + "/" + save_path + ".txt" 99 | save_path = os.path.dirname(os.path.realpath("__file__")) + "/" + save_path + ".txt" 100 | 101 | print "Creating Accounts ..." 102 | while (counter['accounts'] > 0 and counter['tries'] <= max_tries): 103 | if (proxies[counter['proxy']]): 104 | proxy = proxies[counter['proxy']] 105 | else: 106 | print "No more proxies..." 107 | break; 108 | 109 | print "Loaded proxy: " + proxy 110 | 111 | if(reason['bad_proxy'] == False): 112 | time.sleep(10) # Do not change that or your account will get automatically banned 113 | result = json.loads(apiAction("getMobile","&pid=3")) 114 | if(result['success']): 115 | counter['tries'] = 0 116 | number = result['number'] 117 | print "Fetched number: " + number 118 | else: 119 | print "Error" + ((" '" + str(result['error']) + "' ") if debug == True else " ") + "fetching number, retrying ..." 120 | time.sleep(10) # Do not change that or your account will get automatically banned 121 | continue 122 | 123 | 124 | 125 | time.sleep(10) # Do not change that or your account will get automatically banned 126 | result = json.loads(apiAction("wapCode","&number={0}&proxy={1}".format(number,proxy))) 127 | if(result['success']): 128 | print "Code successfully sent to " + number 129 | elif result['error'] == "There was a problem trying to request the code": 130 | print "Error" + ((" '" + str(result) + "' ") if debug == True else " ") + "while sending SMS to " + str(number) + " retrying with new number..." 131 | reason['bad_proxy'] = False 132 | counter['tries'] += 1 133 | continue 134 | else: 135 | print "Error" + ((" '" + str(result['error']) + "' ") if debug == True else " ") + "while sending SMS to " + str(number) + " retrying with new proxy..." 136 | reason['bad_proxy'] = True 137 | counter['tries'] += 1 138 | counter['proxy'] += 1 139 | continue 140 | 141 | sms_code = "" 142 | while (not sms_code and counter['sms_tries'] < 5): 143 | print "[{0}] Attempting to receive SMS ...".format(counter['sms_tries']+1) 144 | time.sleep(15) # Do not change that or your account will get automatically banned 145 | result = json.loads(apiAction("getSMS","&pid=3&number="+number)) 146 | if(result['success'] and result['received']): 147 | sms_code = find_between(result['message'].lower(),"whatsapp code",".").strip() 148 | print "Received Code: " + sms_code 149 | counter['sms_tries'] += 1 150 | 151 | if(not sms_code): 152 | print "Failed receiving SMS Code, retrying with new number..." 153 | time.sleep(10) # Do not change that or your account will get automatically banned 154 | counter['tries'] += 1 155 | continue 156 | 157 | 158 | time.sleep(10) # Do not change that or your account will get automatically banned 159 | result = json.loads(apiAction("wapVerCode","&code={0}&number={1}&proxy={2}".format(sms_code,number,proxy))) 160 | if(result['success']): 161 | print "Successfully Created Account\r\n{0}\r\n{1}".format(result['username'],result['password']) 162 | f = open(save_path,'a+') 163 | f.write(result['username'] + ":" + result['password'] + "\n") 164 | f.close() 165 | counter['accounts'] -= 1 166 | counter['created_accounts'] += 1 167 | counter['tries'] = 0 168 | counter['sms_tries'] = 0 169 | reason['bad_proxy'] = False 170 | counter['proxy'] += 1 171 | else: 172 | print "Error: " + result['error'] 173 | 174 | 175 | if (counter['tries'] >= max_tries): 176 | print "Too many consecutive fails, exiting..." 177 | 178 | 179 | -------------------------------------------------------------------------------- /Whatsapp_Creator.py~: -------------------------------------------------------------------------------- 1 | import urllib 2 | import json 3 | import time 4 | import os 5 | import math 6 | 7 | __author__ = 'Lambasoft' 8 | __website__ = "onlinesmsverification.xyz" 9 | __version__ = "1.0" 10 | 11 | debug = True 12 | api_url = "http://api.onlinesmsverification.xyz/api.php" # Do not change this unless you know what you're doing 13 | osms_token = "" # Place your http://onlinesmsverification.xyz token here 14 | max_tries = 5 # Maximum number of failed tries per registration before we stop trying 15 | save_path = "" 16 | 17 | #Do not edit anything from below 18 | reason = { 19 | 'bad_proxy' : False 20 | }; 21 | 22 | counter = { 23 | 'bad_proxy' : 0, 24 | 'accounts' : 0, 25 | 'sms_tries' : 0, 26 | 'created_accounts' :0, 27 | 'tries' : 0, 28 | "proxy" : 0 29 | }; 30 | number = 0 31 | 32 | def apiAction( action , parameter = ""): 33 | fetch_url = api_url + "?token=" + osms_token + "&action=" + action + parameter 34 | f = urllib.urlopen(fetch_url) 35 | html = f.read() 36 | return html 37 | 38 | def find_between( s, first, last ): 39 | try: 40 | start = s.index( first ) + len( first ) 41 | end = s.index( last, start ) 42 | return s[start:end] 43 | except ValueError: 44 | return "" 45 | 46 | 47 | def setProxies(): 48 | isValid = False 49 | while not isValid: 50 | print "We only accept proxies using the following ports: {80,8080}" 51 | answer = raw_input("Enter proxies:port txt file path : \r\n") 52 | if answer: 53 | if ".txt" in answer: 54 | if os.path.isfile(answer): 55 | with open(answer, 'r') as f: 56 | results = f.read().splitlines() 57 | return [ x for x in results if (":80" or ":8080") in x ] 58 | isValid = True 59 | else: 60 | print "[!] Please make sure the file exist" 61 | isValid = False 62 | else: 63 | print "Proxies should be in a .txt file" 64 | isValid = False 65 | else: 66 | isValid = True 67 | return [] 68 | 69 | 70 | if __name__ == "__main__": 71 | print " " * 9 + "-" * 42 72 | print " " * 10 + "Author: {0} | {1}".format(__author__ , __website__) 73 | print " " * 20 + "WhatsApp Mass Creator" 74 | print " " * 25 + "Version: {0} ".format(__version__) 75 | print " " * 9 + "-" * 42 76 | print "\n\r" 77 | 78 | if not osms_token: 79 | osms_token = raw_input("Enter your Token: ") 80 | 81 | data = json.loads(apiAction("balance")) 82 | print "Your Balance is: {0}".format(data['balance']) 83 | 84 | while (counter['accounts'] <= 0): 85 | counter['accounts'] = input("How many WhatsApp Accounts would you like to create?\r\n") 86 | 87 | proxies = setProxies() 88 | while (len(proxies) < counter['accounts']): 89 | print "Loaded " + str(len(proxies)) + " proxies." 90 | print "Proxies should be more than accounts!" 91 | proxies = setProxies() 92 | 93 | print "Loaded " + str(len(proxies)) + " proxies." 94 | 95 | while (not save_path): 96 | save_path = raw_input("Enter Output File Name:\r\n") 97 | 98 | print "Accounts will be saved to " + os.path.dirname(os.path.realpath("__file__")) + "/" + save_path + ".txt" 99 | save_path = os.path.dirname(os.path.realpath("__file__")) + "/" + save_path + ".txt" 100 | 101 | print "Creating Accounts ..." 102 | while (counter['accounts'] > 0 and counter['tries'] <= max_tries): 103 | if (proxies[counter['proxy']]): 104 | proxy = proxies[counter['proxy']] 105 | else: 106 | print "No more proxies..." 107 | break; 108 | 109 | print "Loaded proxy: " + proxy 110 | 111 | if(reason['bad_proxy'] == False): 112 | time.sleep(10) # Do not change that or your account will get automatically banned 113 | result = json.loads(apiAction("getMobile","&pid=3")) 114 | if(result['success']): 115 | number = result['number'] 116 | print "Fetched number: " + number 117 | else: 118 | print "Error" + ((" '" + str(result['error']) + "' ") if debug == True else " ") + "fetching number, retrying ..." 119 | time.sleep(10) # Do not change that or your account will get automatically banned 120 | continue 121 | 122 | 123 | 124 | time.sleep(10) # Do not change that or your account will get automatically banned 125 | result = json.loads(apiAction("wapCode","&number={0}&proxy={1}".format(number,proxy))) 126 | if(result['success']): 127 | print "Code successfully sent to " + number 128 | elif result['error'] == "There was a problem trying to request the code": 129 | print "Error" + ((" '" + str(result) + "' ") if debug == True else " ") + "while sending SMS to " + str(number) + " retrying with new number..." 130 | reason['bad_proxy'] = False 131 | counter['tries'] += 1 132 | continue 133 | else: 134 | print "Error" + ((" '" + str(result['error']) + "' ") if debug == True else " ") + "while sending SMS to " + str(number) + " retrying with new proxy..." 135 | reason['bad_proxy'] = True 136 | counter['tries'] += 1 137 | counter['proxy'] += 1 138 | continue 139 | 140 | sms_code = "" 141 | while (not sms_code and counter['sms_tries'] < 5): 142 | print "[{0}] Attempting to receive SMS ...".format(counter['sms_tries']+1) 143 | time.sleep(15) # Do not change that or your account will get automatically banned 144 | result = json.loads(apiAction("getSMS","&pid=3&number="+number)) 145 | if(result['success'] and result['received']): 146 | sms_code = find_between(result['message'].lower(),"whatsapp code",".").strip() 147 | print "Received Code: " + sms_code 148 | counter['sms_tries'] += 1 149 | 150 | if(not sms_code): 151 | print "Failed receiving SMS Code, retrying with new number..." 152 | time.sleep(10) # Do not change that or your account will get automatically banned 153 | counter['tries'] += 1 154 | continue 155 | 156 | 157 | time.sleep(10) # Do not change that or your account will get automatically banned 158 | result = json.loads(apiAction("wapVerCode","&code={0}&number={1}&proxy={2}".format(sms_code,number,proxy))) 159 | if(result['success']): 160 | print "Successfully Created Account\r\n{0}\r\n{1}".format(result['username'],result['password']) 161 | f = open(save_path,'a+') 162 | f.write(result['username'] + ":" + result['password'] + "\n") 163 | f.close() 164 | counter['accounts'] -= 1 165 | counter['created_accounts'] += 1 166 | counter['tries'] = 0 167 | counter['sms_tries'] = 0 168 | reason['bad_proxy'] = False 169 | counter['proxy'] += 1 170 | else: 171 | print "Error: " + result['error'] 172 | 173 | 174 | if (counter['tries'] >= max_tries): 175 | print "Too many consecutive fails, exiting..." 176 | 177 | 178 | --------------------------------------------------------------------------------