垃圾代码一堆

来源:互联网 发布:柴静为什么被禁播 知乎 编辑:程序博客网 时间:2024/04/29 22:19
#coding=GB18030import httplib, urllibfrom hashlib import sha1, md5from rsaEncrypt import gen_key, rsa_encrypt, gen_randomimport socketimport repatt1 = re.compile('sip:(\d+)@')patt2 = re.compile('user-id="(\d+)"')patt_nonce = re.compile('nonce="([0-9A-Z]+)"')patt_key = re.compile('key="([0-9A-Z]+)"')uid_ip = "uid.fetion.com.cn"content_patt = "/ssiportal/SSIAppSignInV4.aspx?mobileno=%s&domains=fetion.com.cn&v4digest-type=1&v4digest=%s\r\nUser-Agent: IIC2.0/pc 4.5.0900\r\nHost: uid.fetion.com.cn\r\nCache-Control: private\r\nConnection: Keep-Alive\r\n"def sha1hex(inputTxt):m = sha1()m.update(inputTxt)return m.hexdigest()def sha1bin(inputTxt):m = sha1()m.update(inputTxt)return m.digest()def get_mac_hash():from uuid import getnode as get_macfrom struct import packfrom binascii import b2a_hexmac = get_mac()return sha1hex(b2a_hex(pack('!q',mac))).upper()def get_login_IDs(phoneNum, password):passwd = sha1hex('fetion.com.cn:%s'%password)usrID = 0content = content_patt%(phoneNum, passwd)conn = httplib.HTTPSConnection(uid_ip)conn.request("GET", content)response = conn.getresponse()if(200 == response.status):data = response.read()conn.close()find_sip = patt1.findall(data)find_usrid = patt2.findall(data)if(find_sip):fetionID = find_sip[0] #fetionIDif(find_usrid):usrID = int(find_usrid[0]) #userIDreturn fetionID, usrIDdef login(fetionID, usrID, password):usrIDT = ''.join([chr((usrID>>(i*8))&0xFF) for i in range(4)])passwdb = sha1bin('fetion.com.cn:%s'%password)midT = sha1bin(usrIDT + passwdb)#CMC = "221.176.31.48" CUC = "115.181.16.75" -- fetion server for chinaMobile & UnicomCTC = '58.68.229.75'    # The remote host - China Telecom fetion serverPORT = 8080             # The same port as used by the servers = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((CTC, PORT))login_packet_1 = open('logon.dat','rb').read()%gen_random()s.send(login_packet_1)data = s.recv(2048)# get login challenge wordsnonce = patt_nonce.findall(data)[0]keyTxt = patt_key.findall(data)[0]miwen = ''.join([nonce, midT, gen_random()])key = gen_key(keyTxt)resp = rsa_encrypt(key , miwen)login_packet_2 = open('logon2.dat','rb').read()%(resp)s.send(login_packet_2) data = s.recv(2048)print dataif(data.find('200 OK')>=0):print 'Login success!'return True, selse:print 'Login failed!'return Noneif '__main__'==__name__ :password = '?????'fetionID, usrID = get_login_IDs('???????????', password)r , s = login(fetionID, usrID, password)sms = 'こんにちは'.decode('gb18030').encode('utf8')if(r):sms_content = open('sendsms.dat','rb').read()%(len(sms), sms)s.send(sms_content)print s.recv(2048)s.close()

原创粉丝点击