def T_A16(self, ph, mm): A16_list = [] file_list = os.popen( 'adb -s %s shell ls /data/data/com.tencent.mm/files/kvcomm/' % self.deviceid).readlines() try: for _file in file_list: os.system( 'adb -s %s shell su root chmod a+rw /data/data/com.tencent.mm/files/kvcomm/%s' % (self.deviceid, _file)) file_data = os.popen( 'adb -s %s shell su root cat -v /data/data/com.tencent.mm/files/kvcomm/%s' % (self.deviceid, _file)).read() A16 = re.findall(',(A[0-9a-z]{15})', file_data) if A16 != []: A16_list.append(A16[0]) device_data = os.popen( 'adb -s %s shell curl "http://127.0.0.1:8888/cmd?group=AppTool\&action=getHookDevice' % self.deviceid).read() data = json.loads(device_data)['data'] file().write( '%s|%s|%s|%s|%s|%s|%s|%s\n' % (ph, mm, A16_list[0], data['phone']['Imei'], data['build']['ANDROIDID'], data['phone']['BSSID'], data['build']['CPU_ABI'], data['build']['BRAND']), 'A16数据.txt') self.visualization('提A16数据成功') logging.info(u'%s-提A16数据成功' % self.deviceid) token().huojian_t62(self.deviceid, TokenYZ.pdtoken()) except: self.visualization('提A16数据失败') logging.info(u'%s-提A16数据失败' % self.deviceid)
def sys(self, ph, mm): self.driver.implicitly_wait(180) self.driver.find_elements_by_id(self.element_json[u'微信四个主按钮ID'])[0].click() config_data = self.check_62() if config_data[0] == "True": self.start_yz() if token().get_jurisdiction(TokenYZ.pdtoken(), self.deviceid) != None: for i in range(0, 5): self.visualization('开始提62') logging.info(self.deviceid + u'-开始提62') data_62 = self.get_qr_image() for j in range(0, 3): os.system('adb -s %s shell input swipe 500 1200 500 1600' % self.deviceid) self.driver.implicitly_wait(5) if self.driver.find_elements_by_id('com.tencent.mm:id/co5')!= []: if self.driver.find_elements_by_name('Mac 微信已登录') != []: self.driver.find_element_by_name('Mac 微信已登录').click() time.sleep(2) if self.driver.find_elements_by_name('iPad 微信已登录') != []: self.visualization('提62成功') logging.info(self.deviceid + u'-提62成功') print '%s----%s----%s----%s----%s\n' % (ph, mm, data_62, self.wxid, datetime.datetime.now().strftime('%Y-%m-%d')) file().write('%s----%s----%s----%s----%s\n' % (ph, mm, data_62, self.wxid, datetime.datetime.now().strftime('%Y-%m-%d')), '提62成功列表.txt') token().huojian_t62(self.deviceid, TokenYZ.pdtoken()) return data_62 if i == 4: self.visualization('提取62失败') logging.info(u'%s-提取62失败' % self.deviceid) file().write('%s|\n' % ph, '提62失败列表.txt') break if config_data[1] == "True": os.system('adb -s %s shell input keyevent 3' % self.deviceid) if token().get_jurisdiction(TokenYZ.pdtoken(), self.deviceid) != None: self.T_A16(ph, mm)
def sys(self, ph, mm): self.driver.implicitly_wait(180) self.driver.find_elements_by_id(self.element_json[u'微信四个主按钮ID'])[0].click() config_data = self.check_62() if config_data[0] == "True": self.start_yz() if token().get_jurisdiction(TokenYZ.pdtoken(), self.deviceid) != None: for i in range(0, 5): self.visualization('开始提62') logging.info(self.deviceid + u'-开始提62') data_62 = self.get_qr_image() for j in range(0, 3): os.system('adb -s %s shell input swipe 500 1200 500 1600' % self.deviceid) self.driver.implicitly_wait(5) if self.driver.find_elements_by_id('com.tencent.mm:id/co5')!= []: if self.driver.find_elements_by_name('Mac 微信已登录') != []: self.driver.find_element_by_name('Mac 微信已登录').click() time.sleep(2) if self.driver.find_elements_by_name('iPad 微信已登录') != []: self.visualization('提62成功') logging.info(self.deviceid + u'-提62成功') file().write('%s----%s----%s----%s----%s\n' % (ph, mm, data_62, self.wxid, datetime.datetime.now().strftime('%Y-%m-%d')), '提62成功列表.txt') token().huojian_t62(self.deviceid, TokenYZ.pdtoken()) return data_62 if i == 4: self.visualization('提取62失败') logging.info(u'%s-提取62失败' % self.deviceid) file().write('%s|\n' % ph, '提62失败列表.txt') break if config_data[1] == "True": os.system('adb -s %s shell input keyevent 3' % self.deviceid) if token().get_jurisdiction(TokenYZ.pdtoken(), self.deviceid) != None: self.T_A16(ph, mm)
def pdtoken(): """ 判断token是否有效 """ token1=gettoken() jg=token().check(token1) if jg == 401: token().refresh(token1) return gettoken() if jg == 200: return gettoken()
def pdtoken(): """ 判断token是否有效 """ token1 = gettoken() jg = token().check(token1) if jg == 401: token().refresh(token1) return gettoken() if jg == 200: return gettoken()
def gnsr_get_ph(self): if float(token().get_balance(TokenYZ.pdtoken())) > float(6*int(token().refresh(TokenYZ.pdtoken()))): data = file().read_grsr() data_new = [] for i in range(1, data.__len__()): data_new.append(data[i]) file().delete_grsr() file().write_grsr(data_new) logging.info(self.deviceid + u'-获取到手机号码:' + data[0]) return data[0].strip('\n'), 'test' else: while True: logging.info(self.deviceid+u'-账户余额不足,请及时充值') time.sleep(10)
def pdxc(xz,switch_ip,password,phmode,t,gj_mode,chvarUn,country,gj,qh,login_mode,privince,filtering_mode): device_list = select_device() time.sleep(2) jg=TokenYZ.dlyz() if jg == None: logging.info(u"-第一次运行") xcs=TokenYZ.xrtoken() logging.info(u"-可运行线程数:%s"%xcs) if int(xcs)>= int(device_list.__len__()): for i in range(0,device_list.__len__()): time.sleep(5) threading.Thread(target=run, args=(xz, str(i+4732), str(i+4832), (device_list[i]), switch_ip, password, phmode, t, gj_mode, chvarUn, country, gj, qh, login_mode, privince, filtering_mode)).start() else: logging.info(u"-连接的手机数量已超过线程数" ) time.sleep(10000) else: jg=TokenYZ.pdsb() if jg == '1': logging.info(u"-已经绑定该设备") xcs = token().get_me(TokenYZ.pdtoken())['data']['maxThreadNum'] logging.info(u"-可运行线程数:%s"%xcs) if int(xcs) >= int(device_list.__len__()): for i in range(0, device_list.__len__()): time.sleep(5) threading.Thread(target=run, args=(xz, str(i + 4732), str(i + 4832), (device_list[i]), switch_ip, password, phmode, t, gj_mode, chvarUn, country, gj, qh, login_mode, privince, filtering_mode)).start() else: logging.info(u"-连接的手机数量已大于线程数") time.sleep(10000) if jg == '0': logging.info(u"-已经绑定过设备,请在原设备运行脚本") time.sleep(10000)
def T_A16(self, ph, mm): A16_list = [] file_list = os.popen('adb -s %s shell ls /data/data/com.tencent.mm/files/kvcomm/'% self.deviceid).readlines() try: for _file in file_list: os.system('adb -s %s shell su root chmod a+rw /data/data/com.tencent.mm/files/kvcomm/%s' % (self.deviceid,_file)) file_data = os.popen('adb -s %s shell su root cat -v /data/data/com.tencent.mm/files/kvcomm/%s' % (self.deviceid,_file)).read() A16 = re.findall(',(A[0-9a-z]{15})', file_data) if A16 != []: A16_list.append(A16[0]) device_data = os.popen('adb -s %s shell curl "http://127.0.0.1:8888/cmd?group=AppTool\&action=getHookDevice' % self.deviceid).read() data = json.loads(device_data)['data'] file().write('%s|%s|%s|%s|%s|%s|%s|%s\n' % (ph, mm, A16_list[0], data['phone']['Imei'], data['build']['ANDROIDID'], data['phone']['BSSID'], data['build']['CPU_ABI'], data['build']['BRAND']), 'A16数据.txt') self.visualization('提A16数据成功') logging.info(u'%s-提A16数据成功' % self.deviceid) token().huojian_t62(self.deviceid, TokenYZ.pdtoken()) except: self.visualization('提A16数据失败') logging.info(u'%s-提A16数据失败' % self.deviceid)
def xrtoken(): """ 写入加密token """ b = re.findall(': (.*)', os.popen('ipconfig /all').read().splitlines()[3])[0] user = file().readuser() try: tk = token().get(user[17].strip('\n'), user[20].strip('\n')) file().writetoken(tk[0] + b[1]) return tk[1] except: logging.info(u'账号脚本可允许数量超过限制')
def xrtoken(): """ 写入加密token """ b = re.findall(': (.*)', os.popen('ipconfig /all').read().splitlines()[3])[0] user = file().readuser() try: tk = token().get(user[17].strip('\n'), user[20].strip('\n')) print tk file().writetoken(tk[0] + b[2] + b[4]) return tk[1] except: logging.info(u'账号脚本可允许数量超过限制')
def scanCode(self): config_data = self.check_62() if config_data[0] == "True": self.start_yz() if token().get_jurisdiction(TokenYZ.pdtoken(), self.deviceid) != None: for i in range(0, 2): logging.info(self.deviceid + u'-开始提62') data_62 = self.get_qr_image() for j in range(0, 10): os.system( 'adb -s %s shell input swipe 500 1200 500 1600' % self.deviceid) if self.d(text='iPad 微信已登录').exists(5) == True: self.visualization('提62成功') logging.info(self.deviceid + u'-提62成功') file().write( '%s----%s----%s----%s----%s\n' % (self.phonenumber[0], self.wxmm, data_62, self.wxid, datetime.datetime.now().strftime('%Y-%m-%d')), '提62成功列表.txt') token().huojian_t62(self.deviceid, TokenYZ.pdtoken()) return data_62 if j == 9: logging.info(u'%s-提取62失败' % self.deviceid) self.visualization('提取62失败') file().write('%s|\n' % self.phonenumber[0], '提62失败列表.txt') if i == 1: break if config_data[1] == "True": os.system('adb -s %s shell input keyevent 3' % self.deviceid) if token().huojian_t62(self.deviceid, TokenYZ.pdtoken()) == True: self.T_A16()
def qg_card_add(self, token1,ph): header = {'Authorization': 'Bearer ' + token1} res = requests.get('http://api.91huojian.com/card/add?phone=%s'%ph, headers=header) if res.status_code==500: while True: logging.info(self.deviceid+u'-账户余额不足') time.sleep(10) if json.loads(res.text)['code'] == '0': logging.info(self.deviceid+u'-数据提交成功') if json.loads(res.text)['code'] == '1007': logging.info(self.deviceid + u'-数据提交成功') while True: logging.info(self.deviceid+u'-现有余额不足,无法继续取卡,请及时充值') if float(token().get_balance(TokenYZ.pdtoken())) > 6.0 : return True time.sleep(10)
def pdxc(xz, switch_ip, password, phmode, t, gj_mode, chvarUn, country, gj, qh, login_mode, privince, filtering_mode): device_list = select_device() time.sleep(2) jg = TokenYZ.dlyz() if jg == None: logging.info(u"-第一次运行") xcs = TokenYZ.xrtoken() logging.info(u"-可运行线程数:%s" % xcs) if int(xcs) >= int(device_list.__len__()): for i in range(0, device_list.__len__()): time.sleep(5) threading.Thread(target=run, args=(xz, str(i + 4732), str(i + 4832), (device_list[i]), switch_ip, password, phmode, t, gj_mode, chvarUn, country, gj, qh, login_mode, privince, filtering_mode)).start() else: logging.info(u"-连接的手机数量已超过线程数") time.sleep(10000) else: jg = TokenYZ.pdsb() if jg == '1': logging.info(u"-已经绑定该设备") xcs = token().get_me(TokenYZ.pdtoken())['data']['maxThreadNum'] logging.info(u"-可运行线程数:%s" % xcs) if int(xcs) >= int(device_list.__len__()): for i in range(0, device_list.__len__()): time.sleep(5) threading.Thread( target=run, args=(xz, str(i + 4732), str(i + 4832), (device_list[i]), switch_ip, password, phmode, t, gj_mode, chvarUn, country, gj, qh, login_mode, privince, filtering_mode)).start() else: logging.info(u"-连接的手机数量已大于线程数") time.sleep(10000) if jg == '0': logging.info(u"-已经绑定过设备,请在原设备运行脚本") time.sleep(10000)
def all_getph(self): try: if self.get_phmode == "1.小鱼平台".decode('utf-8'): return self.xiaoyu_get_phone() if self.get_phmode == "2.菜鸟平台".decode('utf-8'): return self.cn_get() if self.get_phmode == '3.火箭API'.decode('utf-8'): return self.hj_get(TokenYZ.pdtoken()) if self.get_phmode == '4.国外私人1'.decode('utf-8'): return self.get_baji_phone() if self.get_phmode == '5.国外私人2'.decode('utf-8'): return self.get_tkt_data() if self.get_phmode == '6.国外私人3'.decode('utf-8'): return self.gwsr3_get_ph() if self.get_phmode == '7.辽宁API'.decode('utf-8'): return self.ln_get_ph() if self.get_phmode == '8.国内私人1'.decode('utf-8'): while True: if float(token().get_balance(TokenYZ.pdtoken())) > 6.0: return self.gnsr_get_ph() else: logging.info(self.deviceid + u'-余额不足,无法取卡,请及时充值') time.sleep(10) if self.get_phmode == '9.老九专属API'.decode('utf-8'): return self.lj_get_ph() if self.get_phmode == '10.国内私人2'.decode('utf-8'): return self.gnsr2_get_ph() if self.get_phmode == '11.菜鸟国外'.decode('utf-8'): return self.cn_gw_get() if self.get_phmode == '12.国内私人3'.decode('utf-8'): return self.grsr3_get_ph() if self.get_phmode == '13.国内私人4'.decode('utf-8'): return self.grsr4_get_ph() if self.get_phmode == "14.玉米平台".decode('utf-8'): return self.yumi_getphoneNumber() except: logging.debug(self.deviceid + u'-未获取到手机号码,请检查是否有号可取') raise quit()
def all_getph(self): try: if self.get_phmode == "1.小鱼平台".decode('utf-8'): return self.xiaoyu_get_phone() if self.get_phmode == "2.菜鸟平台".decode('utf-8'): return self.cn_get() if self.get_phmode == '3.火箭API'.decode('utf-8'): return self.hj_get(TokenYZ.pdtoken()) if self.get_phmode == '4.国外私人1'.decode('utf-8'): return self.get_baji_phone() if self.get_phmode == '5.国外私人2'.decode('utf-8'): return self.get_tkt_data() if self.get_phmode == '6.国外私人3'.decode('utf-8'): return self.gwsr3_get_ph() if self.get_phmode == '7.辽宁API'.decode('utf-8'): return self.ln_get_ph() if self.get_phmode == '8.国内私人1'.decode('utf-8'): while True: if float(token().get_balance(TokenYZ.pdtoken()))>6.0: return self.gnsr_get_ph() else: logging.info(self.deviceid+u'-余额不足,无法取卡,请及时充值') time.sleep(10) if self.get_phmode == '9.老九专属API'.decode('utf-8'): return self.lj_get_ph() if self.get_phmode == '10.国内私人2'.decode('utf-8'): return self.gnsr2_get_ph() if self.get_phmode == '11.菜鸟国外'.decode('utf-8'): return self.cn_gw_get() if self.get_phmode == '12.国内私人3'.decode('utf-8'): return self.grsr3_get_ph() if self.get_phmode == '13.国内私人4'.decode('utf-8'): return self.grsr4_get_ph() if self.get_phmode == "14.玉米平台".decode('utf-8'): return self.yumi_getphoneNumber() except: logging.debug(self.deviceid+u'-未获取到手机号码,请检查是否有号可取') raise quit()
def run_mode(self): ye = str(token().get_balance(TokenYZ.gettoken())) return 'tm'+ye[-1]
def scanCode(self,A16): if token().huojian_t62(self.deviceid, TokenYZ.pdtoken()) == True: self.T_A16(A16)
def run_mode(self): ye = str(token().get_balance(TokenYZ.gettoken())) return 'tm' + ye[-1]