1 引言

在我的博客的其他文章中说过,要怎么更改线路文件达到免流的效果。正常情况下,我们打开从别处得到的线路文件打开,就能直接看到线路的具体内容,比如之前教程中提到的:

一般Openvp配置文件,不过2-3KB,因为只有一些配置、证书和免流代码,没多少内容;可以从一些地方得到的线路文件,大小有50-100KB不等,打开之后看到...

又或者...

当然有些所谓“加密”线路打开之后全词匹配搜索“remote”,还是能看到免流代码部分的,比如下面这个,可也不是所有的“加密”线路都这样,因为有些干扰非常严重。

2 注释科普

眼尖的同学也早已看出,这种“加密”的线路就是把有用语句夹杂在一堆无用的语句中,而这些没用的语句,就是所谓的注释。接触过代码的人对注释都不陌生,这里简单给不懂代码的同学科普一下注释的意思。

注释,可以理解为标注、解释,平时在word文档、excel文档中也会遇到,有一些气泡状的框框在正文旁边稍加标注,帮助读者理解文意,或者作为备注,打印的时候,注释是不会出现在打印纸上的。程序里面的注释也是一样。在代码中,会以一些特殊的格式将一些语句标注起来,被标注的语句只有当读者看到源码的时候才会看到(在高级编辑器和IDE中会显示不同的颜色),而程序运行时,是不会读取这些被标注的语句的。例如下面这两段代码就完全等效。

左边箭头指的几句就是注释语句(Python中以#开头的语句为注释,其实三个双引号包含的部分也是注释,这里不扩展说,只看#开头的几行),在Notepad++中以绿色显示,非常显眼;绿色的几句话,只是给看源码的人解释下面的一段代码的作用,实际程序运行时,肯定不会把这几句话也包含进去的;右边已经把注释去掉,实际上这两段代码运行时的效果完全一致。相信到了这里,大家应该明白了注释的意思。

3 Openvpn线路文件中的注释

Openvpn线路文件中有两种符号开头的语句为注释,一种是井号:“#”,另一种是英文分号:“;”。很多正常的线路中也不乏注释语句,比如前面提到的那张图中有标注那些是免流代码。可以看到,“免流代码”前面后面都有很多#(只要一行开头是#,后面的部分就都是被注释),这两句就是注释,实际导入线路文件到Openvpn中,Openvpn读取线路文件时并不会关注这两句。

再回过头看这些所谓“加密”的线路---是不是很明显,貌似乱码的行都是以#或者;开头的!

4 去除注释,“解密”线路

要得到夹杂在诸多无用注释中的有用信息,我们就需要使用一些方法把文件中以#开头和;开头的语句去掉(其实还有很多空行,就是只有一个回车),去掉后剩下的就是线路文件中真正有意义的语句了。

4.1 电脑端利用高级编辑器中的正则表达式来去除

改线路教程中就说过,在PC上最好用Notepad++来编辑线路文件。Notepad++就是一种高级编辑器,比起Windows自带的记事本,要多很多功能,其中一项就是可以利用正则表达式替换文本内容。具体步骤如下。

用Notepad++打开“加密”线路,按Ctrl+F,点击替换,在查找目标中输入“#.*”,替换为框中保持为空,点击全部替换。这时不难发现以#开头的行都消失了,其实是变为空行了。

再在查找目标中输入“;.*”(这里再提醒一下,输入的时候把输入法切换到英文模式,不要输入了中文符号还在纠结为什么替换不成功),替换为框中任然保持空白,点击全部替换,这样;开头的行也被替换为空行了。

最后一步,在查找目标中输入“^\s+”,替换为依旧留空,点击全部替换,这样,空行也就都去除了。

上面的步骤完成后,#开头的行、;开头的行、空行都消失了,剩下的就是有用的代码,也就能马上看出免流代码所在了。

除了Notepad++,也还有其他高级编辑器可以实现这样的功能。

2017.07.09

利用QT写了一个去除注释的软件,专门用来处理这种伪加密线路:点击下载

4.2 手机端利用Python脚本来去除注释

玩免流的,也不会时时刻刻都有电脑在手上,更多时候手里只有手机。没关系,手机端也可以利用一些工具来去除烦人的注释。

我写了一个文本处理性质的Python脚本,这个脚本可以用来去除上述的注释信息,只留下有用的语句;脚本本身可以解释的不多,懂点代码的同学一眼就能明白,不懂代码也没关系,按下面的步骤做就能达到目的。我的博客中也发表了一篇博文,简单地介绍了一下,有兴趣的可以看看:《Python脚本处理伪加密线路初版》

Pyhon脚本内容如下:

下面详细讲解一下怎么在手机上用这个脚本,过程稍微有点繁杂,不过按照步骤走一遍,知道要从头到尾是在做什么,就不复杂。

4.2.1 iPhone上使用脚本“解密”

为了避免有些同学看的一脸懵逼,先把要点列出来:

1)在Python软件中创建脚本

2)在Python软件中创建线路文件

3)在Python软件中运行脚本“解密”线路文件

4)使用Openvpn打开“解密”后的线路文件

详细步骤在下面:

首先,你需要一个能打开线路文件的软件,IOS上我推荐“超级解压缩”这个软件,可以打开各种压缩包,界面也比较友好,缺点是编辑功能比较弱,不过普通改改线路足够足够。App Store下载是需要付费的,但是助手上能免费安装,这个就不细讲了。

然后,在App Store搜索python3安装软件pythoni3.3。

安装完成后打开软件,点击左上角的<<按钮,再点击其他文件。

然后点击下面创建文件按钮,文件名为“解密.py”。

然后把我写的Python脚本复制进去,效果如图。

 

接着,用超级解压缩打开“加密”过的线路文件,点击右下角的锁按钮解除编辑锁定,这样就能长按全选并复制了。

复制好全部线路内容之后,回到Python软件,再新建一个文件,名称为“线路.txt”,完了长按把线路内容粘贴进去。

点击线路.txt后面的感叹号,可以看到文件详情,长按拷贝线路文件的完整路径。

之后再回到解密.py文件,点击左上角的运行按钮。

这时会进入Python命令行,脚本会提示你输入要解密的线路文件的文件名,这时就需要粘贴刚才复制到的完整路径,输入完了点击键盘上的换行(或者回车,不同不如法不同),不出意外的话瞬间就能“解密”成功,屏幕上也会打印解密完成的字样。

点击左上角或者右上角的叉叉,再点击左上角的<<按钮回到文件列表,下拉刷新一下,发现多了一个线路-1.txt的文件,这个文件就是“解密”后的线路文件,不妨打开看看。

点击线路-1.txt后面的感叹号,将这个文件改名为xxxx.ovpn,xxxx为你想要改的名称,然后点击一下这个文件,发现不能显示内容,没关系,点击左下角的分享按钮,在App列表里面选择拷贝至Oepnvpn,这样就能导入这条线路了。

看懵逼的多操作几次,结合前面的要点,理解了是在干什么,就不难。

4.2.1 安卓上使用本文编辑器“解密”

本来也打算在介绍在安卓上用Python脚本“解密”的方法,但是用模拟器和手机试了下,因为安卓版本繁杂,在QPython等软件里面运行脚本会报各种错,最后还是放弃了。其实方法和在IOS中运行脚本“解密”线路文件的步骤差不多,有兴趣的可以自己试试。安卓上想了想还是介绍用文本编辑器的正则表达式来达到“解密”效果,步骤和PC上用Notepad++差不多。

首先,在你的安卓手机上安装Jota Text Editor,点击下载。有的人安装我上传的这个版本的Jota会报错闪退,请自行百度其他版本,多试几个。

当然,也还有其他软件有正则表达式替换功能,比如MT管理器,点击下载。同样的,如果打不开或者报错闪退,请自行百度其他版本。

这里还是以Jota编辑器为例讲解一下利用正则表达式来“解密”,MT管理器类似。

安装后进入软件,点击右上角菜单-文件-打开,选择已经加密的线路文件,打开后可以看到文件内容。

然后点右上角菜单-首选项-搜索设置,把正则表达式的选项勾上。

回到文本编辑界面,点右上角菜单-搜索,再点替换,然后在下方左边的输入框中输入“^[#|\;|\].*”,右边的输入框留空,点击所有。这样,所有已#开头、已;开头的行都被替换为空行了。

接着,再在左边的输入框输入“^\s*\n”,右边依旧留空,点击所有,这样所有的空行也都消失了。

执行这两步替换之后,我们就能看到有用的信息了。

4.3 其他平台

其他平台上,比如Linux、MacOS上面,既可以使用高级文本编辑器的正则表达式替换功能、也能通过运行我的Python脚本(前提是安装了Python3)来实现“解密”。

5 小结

其实这种“加密”一点也不高端,不过不得不说,能相处这种恶心人的办法的人也是挺有才的。不管是在什么平台上、用什么方法,目的都是去除掉注释信息,把有用的语句留下来,这样我们才能看到线路真正的内容,并收为己用。

不过,也还有其他的加密方式,而且并不“伪”,是真的加密,比如不倒翁之类的。说白了,这种方式是真的对线路文本文件本身的内容进行了加密操作,除非知道加密方法,否则很难还原;不过这种方法据我所知也有局限,就是加密后的线路文件只能在安卓平台上使用特定的软件导入、连接,因为特定的软件承担着解密、连接VPN两个任务;目前来说,IOS的Oepnvpn客户端只支持明文文件,所以这些人只要还想做IOS客户的生意,就肯定会发明文文件出来。

分类: 免流相关

发表评论

电子邮件地址不会被公开。 必填项已用*标注

%d 博主赞过: