203月

python解析SSR链接

引进

我置信那翻墙的小同伴都听说过这件事。 Shadowsocks吧。笔者运用Shadowsocks的时分,通常公众补充SS或SSR用环连接。,这些关系相貌像如此。

ss://YWVzLTI1Ni1nY206a2lyaXRvQDIxMC44OS4xODEuMTY3OjkxOTE=#123

ssr://aGs3LjI1Nmh0MTY4LmNvbTo1MDYzNDpvcmlnaW46YWVzLTI1Ni1jZmI6cGxhaW46TXpZeFZsQk9kR1Z6ZERFeU13Lz9vYmZzcGFyYW09JnByb3RvcGFyYW09JnJlbWFya3M9U0VzeCZncm91cD01NldlNVotZg

又Shadowsocks MAC客户端不克不及连续的运用这些关系。,但是人工操作输出侍者。、port、密码电文、编密码办法及对立的事物决定因素,这让我很不安。。

客户端拨给的场地鼻子

乍开端书房Python,变得流行根本符号。,据我看来整枝法一下我的手。,因而据我看来运用Python来汇编第一剖析的SSR用环连接。,so,开端吧。。

SS/SSR 关系剖析

率先笔者得确信SS/SSR用环连接由什么结合和表示保留或保存时用到何种地步的编码尝试了前述的那现象的。

SS关系

在 Base64 编码前,SS关系的体式执意如此。

SS://办法:密码电文@侍者:接口

也执意说,笔者通常记录的关系是 Ss://Base64编码实地的 ,在监狱里 办法:密码电文@侍者:接口 这拆移是停止的。 Base64 编码 。

这么SS关系就在下面。,笔者只需求

YWVzLTI1Ni1nY206a2lyaXRvQDIxMC44OS4xODEuMTY3OjkxOTE=#123

经过Base64解码,必然要能承受办法:密码电文@侍者:接口明文使成形。

因而试试Python。 Base64解码看

(''YWVzLTI1Ni1nY206a2lyaXRvQDIxMC44OS4xODEuMTY3OjkxOTE=#123'')

承受产生

B'AES-256GCM:Kiito @

你可以记录产生和办法:密码电文@侍者:接口使成形是平等地的。,又独自地二元系被解码。。用utf-8你可以承受第一字母行,倘若你编码它。。

(''YWVzLTI1Ni1nY206a2lyaXRvQDIxMC44OS4xODEuMTY3OjkxOTE=#123'').decode(''utf-8'')

与办法。、password、侍者和接口零件停止解析。。

SSR用环连接

在 Base64 编码前,ssr 关系的体式执意如此。

ssr://server:port:protocol:method:obfs:password_base64/?帕拉姆_base64

过去的关系的分别依赖 password_base64 和 帕拉姆_base64 ,望文生义,password_base64 这是密码电文。 base64编码 后串,而 帕拉姆_base64 则是协定决定因素、污迹决定因素、凡例和组对应的决定因素值为 base64编码 拼接后外形的字母行。

即 PARAMSKBASE64拆分这些实地的。

obfsparam=obfsparam_base64&protoparam=protoparam_base64&remarks=remarks_base64&group=group_base64

温柔的拿下面的SSR用环连接,运用Base64解码来检查产生。

(''aGs3LjI1Nmh0MTY4LmNvbTo1MDYzNDpvcmlnaW46YWVzLTI1Ni1jZmI6cGxhaW46TXpZeFZsQk9kR1Z6ZERFeU13Lz9vYmZzcGFyYW09JnByb3RvcGFyYW09JnJlbWFya3M9U0VzeCZncm91cD01NldlNVotZg'').decode(''utf-8'')

产生是失常的的。,怎样回事,不要按普通的纸片对策。。不生气,让笔者先看一眼报纸有什么不合错误。

Traceback (大部分) recent call 期末考试)
  File "", line 1, in 
  File "/usr/local/Cellar/python/", line 87, in b64decode
    return binascii.a2b_base64(s)
binascii.Error: Incorrect padding

看不懂,但我能预测来。,失常的必然要是Incorrect padding理由的,因而找谷歌问我产生了是什么。。

谷歌说大蟒蛇 BASE64解码时期,编码字母行的大量必然的是4的多个的。,倘若无,4的多个的需求他日添加。=

soga,产生宣布是基本的的。=啊,带我,试着使后退加某个。=赶集。原始字母行然后,添加2。=后,奇观产生了。

(''aGs3LjI1Nmh0MTY4LmNvbTo1MDYzNDpvcmlnaW46YWVzLTI1Ni1jZmI6cGxhaW46TXpZeFZsQk9kR1Z6ZERFeU13Lz9vYmZzcGFyYW09JnByb3RvcGFyYW09JnJlbWFya3M9U0VzeCZncm91cD01NldlNVotZg=='').decode(''utf-8'')

产生

''''

惊不惊喜?承受的产生和前面说的SSR用环连接的结合是划一的。接下来是对每个拆移停止解析。,笔者需求注重的是,password帕拉姆拆移还需求用Base64解码。。

MzYxVlBOdGVzdDEyMw/?obfsparam=&protoparam=&remarks=SEsx&group=56We5Z-f''

使协调从前的SSR体式。,/?先前的那是password拆移,前面的帕拉姆拆移。

password解码,前面要注重。=

(''MzYxVlBOdGVzdDEyMw=='').decode(''utf-8'')

产生

''361VPNtest123''

帕拉姆 remarks 解码

(‘SSEX’)译码(UTF—8)

产生

HK1

帕拉姆 group 解码

(‘56WE5Z-F’)译码(UTF 8)

在这场合又错了。,正是无奈何。,怎样又出问题了?!

Traceback (大部分) recent call 期末考试)
  File "", line 1, in 
  File "/usr/local/Cellar/python/", line 87, in b64decode
    return binascii.a2b_base64(s)
binascii.Error: Incorrect padding

诶,我填错了吗?=他日我会持续填写。=,但这次没有轻易。,举起多得数不清的=它不起作用。,怎样办?

不受惩罚可做。,心细看一眼。,解码后的字母行与原始字母行轻微地不一样。,此字母行容纳-,这显然是第一特别的特点。,无论刚过去的-解码落空的动机是什么?让笔者多问问谷歌吧。。自然,Base64也有URL有价证券信号。,让笔者看一眼无论有第一无URL有价证券的解码办法。

()

我用这种办法来替代本来的解码办法。

(‘56WE5Z-F’)译码(UTF 8)

事实上,这是完完全全地的产生。,忻忻得意

发表评论

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