使用Python解决Teamviewer被误认为商业用途的问题

Teamviewer是一款非常酷的远程控制系统,可以远程协同工作,分为个人版本和商业版本。个人版本可以基于非商业目的自由使用,商业版本需要付费(至少一个月49美元)。

Teamviewer会根据一套算法检测当前是否用于商业用途,可能根据在线时间,是否跨网段远程访问,当前操作系统是否为专业或企业版,以及其他因素进行检测,具体算法不得而知,不过有时明明只是个人非盈利目的使用,却弹出下面的对话框,在1到5分钟后就会自动断开,然后就连不上了,触发重新运行Teamviewer。

其实解决这个问题也很简单,Teamviewer是怎么知道哪台机器疑似商业用途的呢?为什么每次运行Teamviewer,密码每次都不一样,但ID是一样的呢?

如下图,这是Teamviewer的主界面。之所以Teamviewer能控制每一个客户端,是因为ID已经与本机绑定。

ID通常与本机的Mac地址(网卡的地址)以及其他信息有关(如配置文件中的属性值),不同操作系统不同。本文将通过Python语言自动修改这个ID,只要ID改变了,即使被识别出了商业用途,再次启动,由于ID已经改变,就相当于重新在一台全新的机器上运行,再识别出商业用途,再改变一次ID就可以了。

本文解决Mac版本的Teamviewer的疑似商业用途问题,Windows版的问题请见本文最后的部分。

本文使用Python 2.7编写,为什么使用Python 2.7呢,因为本文的读者并不都是Python程序员,Mac OS X默认自带Python 2.7,所以直接就可以运行本文提供的脚本。如果读者机器上安装了Python 3.x,请切换到Python 2.7,然后再运行本文提供的脚本。建议读者使用Anaconda,这样可以很容易地在Python 2.7和Python 3.x之间切换。

其实更改ID的基本原理就是必须要用root权限执行脚本(在普通用户状态使用sudo切换到root权限),然后获取当前用户对应的目录,删除一些配置文件,然后修改一些配置文件中的ID值。具体的文件和操作直接看后面的代码吧。

import sys
import os
import glob
import platform
import re
import random
import string

print(‘‘‘
--------------------------------
修改Teamviewer for Mac的ID
--------------------------------
‘‘‘)
#  必须是Mac系统,否则本脚本无效
if platform.system() != ‘Darwin‘:
    print(‘必须是MAC OS X系统.‘)
    sys.exit();

if os.geteuid() != 0:
    print(‘必须用root权限执行脚本.‘)
    sys.exit();
#  如果在root权限,os.environ[‘SUDO_USER‘]返回用户名,如lining
if os.environ.has_key(‘SUDO_USER‘):
    USERNAME = os.environ[‘SUDO_USER‘]
    if USERNAME == ‘root‘:
       print(‘请通过sudo命令切换到root权限‘)
       sys.exit();
else:
    print(‘请通过sudo命令切换到root权限‘)
    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 (‘‘‘
为发现配置文件,没什么可以删除的
‘‘‘)
# 删除配置文件
else:
    print("发现配置文件:\n")
    for file in CONFIGS:
        print file

    print(‘‘‘
这些配置文件将被永久删除
‘‘‘)
    raw_input("请按<Enter>键盘删除文件或按<CTR+C>组合键退出程序")

    for file in CONFIGS:
        try:
            os.remove(file)    //  删除文件
        except:
            print("不能删除文件,是否权限不够?")
            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
//  参数随机数,用于生成随机的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)

#  开始依次替换前面文件中的内容
for file in TMBINARYES:
        try:
            idpatch(file,RANDOMPLATFORM,RANDOMSERIAL)
        except:
            print "错误:不能修改: " + file
            sys.exit();

print "PlatformDevice: " + RANDOMPLATFORM
print "PlatformSerial: " + RANDOMSERIAL

print(‘‘‘
ID需要成功
!!! 必须重启计算机才能生效,good luck !!!!
‘‘‘)

将上面的代码保存在change_id.py文件中,然后在Python2.7环境下执行如下命令:

sudo python change_id.py

按一下<Enter>键,就搞定了,最后重启一下机器,会发现ID改变了。现在不会有人来打扰你了,尽管用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:

修改电脑网卡的Mac地址,这个有专门的软件,也可也在硬件设备中找到网卡进行修改,不过有的驱动不支持修改Mac地址。

step5:

如果成功修改了Mac地址,重新安装teamviewer13。

这样ID就变了,如果过段时间再被误认为商业用途,重复这一过程即可。

如果读者觉得太麻烦,就直接用下面的版本好了。

链接: https://pan.baidu.com/s/1rKJfeHQOg1U8b7pL417yHQ 提取码: vcva

原文地址:http://blog.51cto.com/androidguy/2294119

时间: 2024-07-30 13:38:46

使用Python解决Teamviewer被误认为商业用途的问题的相关文章

teamviewer提示商业用途我的处理方法

1.我的是teamviewer12.1,我是用虚机开TV的,比较方便折腾MAC: 2.看到商业用途了,先把teamviewer退干净,包括右下角和任务进程都要结束得透透的! 3.点网卡属性-高级,修改一下MAC地址: 4.运行-regedit-搜索teamviewer,搜索到的出现在左侧的树状区域看到像文件夹似的teamviewer删掉即可,出现在右边栏的不用删: 5.此时再打开teamviewer试试.

TeamViewer 商业用途转非商业版本

如果安装TeamViewer商业用途版本,并且已经提示过期导致无法继续使用,此时可通过卸载TeamViewer.删除相关注册表,文件:修改MAC地址:修改SID:来重新安装非商业用途版本. REM 拷贝到记事本另存为.bat格式执行 可完成清理, @echo off %echo "您的操作,请清除您的TeamViewer设置,WIN7以上的操作版本." REM 清理注册表 reg delete "HKEY_CURRENT_USER\Software\TeamViewer&qu

利用Python实现批量注册网站用户,注意不可用于商业用途哦!

场景目标 现在大多数网站的「用户注册功能」都需要用户正确输入了验证码,才能发起注册的请求,如果想大量注册用户,正确识别验证码变的很关键. 普通的验证码使用 tesserocr,加上训练可以完成,如果想简单一点,可以使用「百度云的文字识别 API」. 今天的目标是使用 selenium + 百度云OCR 批量注册「中知网」一批用户.<pre style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; fon

teamviewer被识别为商业用途

1.卸载teamviewer,在控制面板里或者用360等软件卸载: 2.删除下面2个目录 C:\Program Files (x86)\TeamViewer C:\Users\Administrator\AppData\Roaming\TeamViewer 3.打开“”运行“”输入regedit,打开电脑的注册表,然后找到下面的路径将其删除(有的可能没有): HKEY_LOCAL_MACHINE\SOFEWARE\Wow6432Node\TeamViewer HKEY_CURRENT_USERS

高德API+Python解决租房问题

项目简介:编写Python脚本爬取某租房网站的房源信息,利用高德的 js API 在地图上标出房源地点,划出距离工作地点1小时内可到达的范围,附上公交路径规划功能查看不同路径的用时.项目由ekCit发布在实验楼,完整教程及在线练习地址:高德API+Python解决租房问题,可以直接在教程中下载代码使用demo. 一.介绍 1. 背景 项目来自一段租房血泪史(夸张):事情是这样的,笔者是接着念大四准备考研,而室友是应届毕业在找工作,说白了就是都没有钱,于是打算合租.因为穷所以不可能找有门店的的中介

teamviewer检测为商业版,5分钟之后断开连接

teamviewer检测为商业版,5分钟之后断开连接 其实大多数人都遇到过这种问题:就是我们安装teamviewer选择的是个人版,但现在却提示teamviewer检测为商业版,而且每次连接都只能连接5分钟,导致工作效率大大降低!造成这种情况的原因其实很简单:就是因为我们使用teamviewer的次数太频繁,导致teamviewer被检测为商业版.teamviewer其实主要是识别电脑的Mac地址,我们只需对Mac地址进行修改就好,下面是详细解决办法: 1.彻底删除teamviewer软件: ①

解决teamviewer试用期到期的方法

Teamviewer是一款远程控制软件,使用过程中系统弹出“Teamviewer试用版已到期”的提示, 需要用户购买许可证或延长试用期才能继续使用,解决teamviewer试用期到期问题步骤如下: 出现这种问题,是因为在安装是选择了[公司/商务用途]或者[以上都是]这两个选项中的一个. 解决方法: 1.退出TeamViewer远程软件,卸载软件. 2.按键盘的[win]+[R]组合键打开[运行],输入 %appdata%. 3.在弹出的窗口中,找到并删除TeamViewer文件夹. 4.按键盘的

有关科学计算方面的python解决

在科学计算方面,一般认为matlab是一个超强的东西,此外还有R. 至于某种语言来说,一般都要讲究一些特别的算法,包括但不限于: 矩阵方面的计算 指数计算 对数计算 多项式运算 各类方程求解 总之,只要是数学问题,在python里面,可以使用以下任何一个来解决 NumPy SciPy matplotlib ETS 顺便推荐一本书<用Python做科學計算>.地址是:http://myshare.dscloud.me/scipydoc/(不做超链接,看看能不能发布) 所以,用python解决数学

Python解决中文乱码问题

在Python中内部所有编码都是Unicode,Unicode属于中转码,一般来说,是先把乱码转化为中转码,再转化为我 们需要的编码,转换过程为decode -> unicode -> encode. #coding:utf-8 #-*- coding:utf-8 -*- import sys print sys.getdefaultencoding() print '中国' f = open('Hello.txt') data = f.read() f.close() print data.