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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
| #!/usr/bin/env python
#coding:utf-8 import sys import os import glob import platform import re import random import string
print(''' -------------------------------- TeamViewer ID Changer for MAC OS -------------------------------- ''')
if platform.system() != 'Darwin': print('This script can be run only on MAC OS.') sys.exit();
if os.geteuid() != 0: print('This script must be run form root.') sys.exit();
if os.environ.has_key('SUDO_USER'): USERNAME = os.environ['SUDO_USER'] if USERNAME == 'root': print('Can not find user name. Run this script via sudo from regular user') sys.exit(); else: print('Can not find user name. Run this script via sudo from regular user') sys.exit();
HOMEDIRLIB = '/Users/' + USERNAME + '/library/preferences/' GLOBALLIB = '/library/preferences/'
CONFIGS = []
# Find config files
def listdir_fullpath(d): return [os.path.join(d, f) for f in os.listdir(d)]
for file in listdir_fullpath(HOMEDIRLIB): if 'teamviewer'.lower() in file.lower(): CONFIGS.append(file)
if not CONFIGS: print (''' There is no TemViewer configs found. Maybe you have deleted it manualy or never run TeamViewer after installation. Nothing to delete. ''') # Delete config files else: print("Configs found: ") for file in CONFIGS: print file
print(''' This files will be DELETED permanently. All TeamViewer settings will be lost ''') raw_input("Press Enter to continue or CTR+C to abort...")
for file in CONFIGS: try: os.remove(file) except: print("Cannot delete config files. Permission denied?") sys.exit(); print("Done.")
# Find binaryes
TMBINARYES = [ '/Applications/TeamViewer.app/Contents/MacOS/TeamViewer', '/Applications/TeamViewer.app/Contents/MacOS/TeamViewer_Service', '/Applications/TeamViewer.app/Contents/Helpers/TeamViewer_Desktop', ]
for file in TMBINARYES: if os.path.exists(file): pass else: print("File not found: " + file) print ("Install TeamViewer correctly") sys.exit();
# Patch files
def idpatch(fpath,platf,serial): file = open(fpath, 'r+b') binary = file.read() PlatformPattern = "IOPlatformExpert.{6}" SerialPattern = "IOPlatformSerialNumber%s%s%sUUID"
binary = re.sub(PlatformPattern, platf, binary) binary = re.sub(SerialPattern % (chr(0), "[0-9a-zA-Z]{8,8}", chr(0)), SerialPattern%(chr(0), serial, chr(0)), binary)
file = open(fpath,'wb').write(binary) return True
def random_generator(size=8, chars=string.ascii_uppercase + string.digits): return ''.join(random.choice(chars) for _ in range(size))
RANDOMSERIAL = random_generator() RANDOMPLATFORM = "IOPlatformExpert" + random_generator(6)
for file in TMBINARYES: try: idpatch(file,RANDOMPLATFORM,RANDOMSERIAL) except: print "Error: can not patch file " + file print "Wrong version?" sys.exit();
print "PlatformDevice: " + RANDOMPLATFORM print "PlatformSerial: " + RANDOMSERIAL
print(''' ID changed sucessfully. !!! Restart computer before using TeamViewer !!!! ''')
|