OpenVPN Access Server 2.11.x 破解在线人数限制

您所在的位置:网站首页 可道云破解人数限制 OpenVPN Access Server 2.11.x 破解在线人数限制

OpenVPN Access Server 2.11.x 破解在线人数限制

2024-04-29 00:20| 来源: 网络整理| 查看: 265

前言

前阵子就因为setup 普通的openvpn就感到很麻烦,就发现到OpenVPN Access Server 可以很方便的setup,但又限制只可以两个connection

在网上博览群文之后发现流行的爆破补丁都是针对 2.5.0 版本的,直接拿来用肯定是不行的,经过分析发现 OpenVPN Access Server 的作者对盗版这个事情并不是很在意,从 2.5.0 到 2.11.x, 对于授权这款的代码基本是没改过的,所以在结合网络上面其他人的博文搞了一番并且成功了之后,特别在这里记录一下.

过程 环境准备

OpenVPN Access Server 是使用 Python 编写的,需要并且限制了 Python Runtime 的版本,两者必须匹配!

在 OpenVPN Access Server 2.9.0 以前,Python Runtime 的版本是 Python 2.8, 但是在 OpenVPN Access Server 2.9.0 及之后的版本,Python Runtime 的版本变成了 Python 3.x, 并且随着 OpenVPN Access Server 更新迭代,Python Runtime 的版本也需要同步变化。比如 OpenVPN Access Server 2.11.0 已经需要 Python 3.10.x 的版本了.

实操阶段

主要操作的文件是一个名叫 pyovpn-2.0-pyx.x.egg 的文件,以我了解的情况来看,从 2.5.0 到 2.11.x 文件名一直都是这个,只是不同版本里面的内容不一样.

这个文件有点类似 Java 当中的 jar 库文件,也是一个 zip 压缩文件,里面包含了一些 Python 的字节码文件.

破解的原理大概是在 Python 中采用类似 Java 动态代理的技术,将原本读取用户属性的调用返回值拦截,修改用户限制数量再返回.

2.9.0 以下版本破解的目标文件是 /pyovpn/lic/uprop.pyo, 2.9.0 及以上是 /pyovpn/lic/uprop.pyc;

按照网上流行的破解方法,把这个文件解压出来并改名为uprop2.pyo 或 uprop2.pyc, 然后新建一个 uprop.py 文件,内容如下 (注意区分版本):

2.9.0 以下版本内容:

import uprop2 old_figure = None def new_figure(self, licdict): ret = old_figure(self, licdict) ret[‘concurrent_connections’] = 1024 return ret for x in dir(uprop2): if x[:2] == ‘__’: continue if x == ‘UsageProperties’: exec(‘old_figure = uprop2.UsageProperties.figure’) exec(‘uprop2.UsageProperties.figure = new_figure’) exec(‘%s = uprop2.%s’ % (x, x))

2.9.0 及以上版本内容:

from pyovpn.lic import uprop2 old_figure = None def new_figure(self, licdict): ret = old_figure(self, licdict) ret[‘concurrent_connections’] = 1024 return ret for x in dir(uprop2): if x[:2] == ‘__’: continue if x == ‘UsageProperties’: exec(‘old_figure = uprop2.UsageProperties.figure’) exec(‘uprop2.UsageProperties.figure = new_figure’) exec(‘%s = uprop2.%s’ % (x, x))

再将上面的uprop.py 编译为库文件 uprop.pyo 或 uprop.pyc:

# =2.9.0 python3 -O -m compileall uprop.py && mv pycache/uprop.*.pyc uprop.pyc

注意 uprop.*.pyc 文件名会随着 python 版本变化而变化.

现在我们得到了一个改文件名的文件uprop2.pyo 或 uprop2.pyc, 和一个编译出来的 uprop.pyo 或 uprop.pyc;

把这两个文件压缩到pyovpn-2.0-pyx.x.egg 的 /pyovpn/lic/ 目录下,然后去服务器替换目标文件,重启服务就 OK 了.

cd /usr/local/openvpn_as/lib/python & mkdir pojie & cp python/pyovpn-2.0-py3.6.egg ./pojie & cd pojie/ # 改一个文件名,防止后面打包的时候把源文件覆盖了 mv pyovpn-2.0-py3.6.egg pyovpn-2.0-py3.6.egg.bak & unzip pyovpn-2.0-py3.6.egg.bak # 进入到需要修改的目录 cd pyovpn/lic # 复制源文件改名 mv uprop.pyc uprop2.pyc # 新增一个py文件,然后把文件内容复制进去,并保存 vi uprop.py # 退到 pojie 文件夹,进行打包 zip -r pyovpn-2.0-py3.6.egg EGG-INFO/ common/ pyovpn/ # 复制文件到运行目录,覆盖 cp pyovpn-2.0-py3.6.egg /usr/local/openvpn_as/lib/python # 重启服务 systemctl restart openvpnas

pyovpn-2.0-py3.10.egg



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3