您好,登錄后才能下訂單哦!
Teamviewer是一款非??岬倪h(yuǎn)程控制系統(tǒng),可以遠(yuǎn)程協(xié)同工作,分為個人版本和商業(yè)版本。個人版本可以基于非商業(yè)目的自由使用,商業(yè)版本需要付費(fèi)(至少一個月49美元)。
Teamviewer會根據(jù)一套算法檢測當(dāng)前是否用于商業(yè)用途,可能根據(jù)在線時(shí)間,是否跨網(wǎng)段遠(yuǎn)程訪問,當(dāng)前操作系統(tǒng)是否為專業(yè)或企業(yè)版,以及其他因素進(jìn)行檢測,具體算法不得而知,不過有時(shí)明明只是個人非盈利目的使用,卻彈出下面的對話框,在1到5分鐘后就會自動斷開,然后就連不上了,觸發(fā)重新運(yùn)行Teamviewer。
其實(shí)解決這個問題也很簡單,Teamviewer是怎么知道哪臺機(jī)器疑似商業(yè)用途的呢?為什么每次運(yùn)行Teamviewer,密碼每次都不一樣,但I(xiàn)D是一樣的呢?
如下圖,這是Teamviewer的主界面。之所以Teamviewer能控制每一個客戶端,是因?yàn)镮D已經(jīng)與本機(jī)綁定。
ID通常與本機(jī)的Mac地址(網(wǎng)卡的地址)以及其他信息有關(guān)(如配置文件中的屬性值),不同操作系統(tǒng)不同。本文將通過Python語言自動修改這個ID,只要ID改變了,即使被識別出了商業(yè)用途,再次啟動,由于ID已經(jīng)改變,就相當(dāng)于重新在一臺全新的機(jī)器上運(yùn)行,再識別出商業(yè)用途,再改變一次ID就可以了。
本文解決Mac版本的Teamviewer的疑似商業(yè)用途問題,Windows版的問題請見本文最后的部分。
本文使用Python 2.7編寫,為什么使用Python 2.7呢,因?yàn)楸疚牡淖x者并不都是Python程序員,Mac OS X默認(rèn)自帶Python 2.7,所以直接就可以運(yùn)行本文提供的腳本。如果讀者機(jī)器上安裝了Python 3.x,請切換到Python 2.7,然后再運(yùn)行本文提供的腳本。建議讀者使用Anaconda,這樣可以很容易地在Python 2.7和Python 3.x之間切換。
其實(shí)更改ID的基本原理就是必須要用root權(quán)限執(zhí)行腳本(在普通用戶狀態(tài)使用sudo切換到root權(quán)限),然后獲取當(dāng)前用戶對應(yīng)的目錄,刪除一些配置文件,然后修改一些配置文件中的ID值。具體的文件和操作直接看后面的代碼吧。
import sys
import os
import glob
import platform
import re
import random
import string
print('''
--------------------------------
修改Teamviewer for Mac的ID
--------------------------------
''')
# 必須是Mac系統(tǒng),否則本腳本無效
if platform.system() != 'Darwin':
print('必須是MAC OS X系統(tǒng).')
sys.exit();
if os.geteuid() != 0:
print('必須用root權(quán)限執(zhí)行腳本.')
sys.exit();
# 如果在root權(quán)限,os.environ['SUDO_USER']返回用戶名,如lining
if os.environ.has_key('SUDO_USER'):
USERNAME = os.environ['SUDO_USER']
if USERNAME == 'root':
print('請通過sudo命令切換到root權(quán)限')
sys.exit();
else:
print('請通過sudo命令切換到root權(quán)限')
sys.exit();
# 下面兩個目錄是要搜索包含teamviewer字樣的文件
HOMEDIRLIB = '/Users/' + USERNAME + '/library/preferences/'
GLOBALLIB = '/library/preferences/'
CONFIGS = []
# 獲取配置文件的完全路徑
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 ('''
為發(fā)現(xiàn)配置文件,沒什么可以刪除的
''')
# 刪除配置文件
else:
print("發(fā)現(xiàn)配置文件:\n")
for file in CONFIGS:
print file
print('''
這些配置文件將被永久刪除
''')
raw_input("請按<Enter>鍵盤刪除文件或按<CTR+C>組合鍵退出程序")
for file in CONFIGS:
try:
os.remove(file) // 刪除文件
except:
print("不能刪除文件,是否權(quán)限不夠?")
sys.exit();
print("搞定!")
# 下面的文件會替換里面的值
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();
# 開始替換上述文件中的值
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
// 產(chǎn)生隨機(jī)數(shù),用于生成隨機(jī)的ID
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)
# 開始依次替換前面文件中的內(nèi)容
for file in TMBINARYES:
try:
idpatch(file,RANDOMPLATFORM,RANDOMSERIAL)
except:
print "錯誤:不能修改: " + file
sys.exit();
print "PlatformDevice: " + RANDOMPLATFORM
print "PlatformSerial: " + RANDOMSERIAL
print('''
ID需要成功
!!! 必須重啟計(jì)算機(jī)才能生效,good luck !!!!
''')
將上面的代碼保存在change_id.py文件中,然后在Python2.7環(huán)境下執(zhí)行如下命令:
sudo python change_id.py
按一下<Enter>鍵,就搞定了,最后重啟一下機(jī)器,會發(fā)現(xiàn)ID改變了?,F(xiàn)在不會有人來打擾你了,盡管用Teamviewer吧。
如果使用Windows,可以按下面步驟搞定。
本文以最新的teamviewer13為例,步驟如下:
step1:
卸載teamviewer13
step2:
刪除下面2個目錄
C:\Program Files (x86)\TeamViewer
C:\Users\Administrator\AppData\Roaming\TeamViewer
step3:
在注冊表中刪除下面的鍵值,如果沒有就不用刪除了。
HKEY_LOCAL_MACHINE\SOFEWARE\Wow6432Node\TeamViewer
HKEY_CURRENT_USERS\Software\TeamViewer
HKEY_LOCAL_MACHINE\SOFTWARE\TeamViewer
step4:
修改電腦網(wǎng)卡的Mac地址,這個有專門的軟件,也可也在硬件設(shè)備中找到網(wǎng)卡進(jìn)行修改,不過有的驅(qū)動不支持修改Mac地址。
step5:
如果成功修改了Mac地址,重新安裝teamviewer13。
這樣ID就變了,如果過段時(shí)間再被誤認(rèn)為商業(yè)用途,重復(fù)這一過程即可。
如果讀者覺得太麻煩,可以關(guān)注“極客起源”公眾號,輸如954720下載經(jīng)過處理的teamviewer版本,包括一個ID自動修改工具。
掃描二維碼關(guān)注“極客起源”公眾號,技術(shù)文章、視頻課程應(yīng)有盡有
《Python從菜鳥到高手》開始連載了
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。