OpenVPN Access Server 2.11.x 破解在线人数限制 (附加下载破解版pyovpn-2.0-py3.10.egg)

后记:
由于 2.9.x 以上版本由于使用了 Python3 编写,生成的库文件格式已变化,本补丁无法处理,本补丁目前最高支持 2.8.8 版本!
实测支持 2.5.x 至 2.11.x 版本.

前言

前阵子就因为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.pyo2.9.0 及以上是 /pyovpn/lic/uprop.pyc;

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

2.9.0 以下版本内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 及以上版本内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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:

1
2
3
4
# <2.9.0
python2 -O -m compileall uprop.py
# >=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 了.

下载pyovpn-2.0-py3.10.egg

如果你不想搞上面的那么多步骤,我这里附上已经处理好的 pyovpn-2.0-py3.10.egg 提供下载

实测支持: Ubuntu 22.04 x86


Comments

One response to “OpenVPN Access Server 2.11.x 破解在线人数限制 (附加下载破解版pyovpn-2.0-py3.10.egg)”

  1. 2.13.0版本VPN pyovpn-2.0-py3.10.egg 破解不生效

Leave a Reply

Your email address will not be published. Required fields are marked *