【转载】s2、s2r链接解析

摘要

原文链接:s2、s2r解析过程

本文主要目的是想介绍 s2://xxx 及 s2r://xxx 这种链接是怎么生成的与及如何手动解析成对应的ip、端口、密码、加密方式等。下面详细介绍链接解析过程。

编码方式

s2://… 及 s2r://… 这样的链接都是经过 url_safe Base64 编码生成的,就是先通过标准的 Base64 编码,然后再把编码内容中的 + 和 / 分别替换为 – 和 _ 这两个字符,而解码的时候要进行反向替换。

s2链接

在 Base64 编码之前,s2链接的格式是这样的:

s2://method:password@server:port

也就是说,一般我们见到的链接就是 s2://Base64编码字段 ,其中 method:password@server:port 这部分被进行了 Base64 编码 。

所以,假设有这样的一个 s2 链接:

s2://Y2hhY2hhMjA6ZG91Yi5pby9zc3poZngvKmRvdWIuYmlkL3NzemhmeC8qMjk4N0A2NC4xMzcuMjI5LjE1NDoyOTg3

那么以下的这部分字符串就是经过 Base64 编码生成的:

Y2hhY2hhMjA6ZG91Yi5pby9zc3poZngvKmRvdWIuYmlkL3NzemhmeC8qMjk4N0A2NC4xMzcuMjI5LjE1NDoyOTg3

那么如何解码? 在解码前,如果字符串中有包含 – 和 _ 的字符,要先分别替换为 + 和 / , 然后再通过 base64_decode 解码就行了。

网上有很多 base64 编码解码工具,以这个为例 base64编码/base64解码

因为上面的那个字符串没有 – 和 _ 这两种字符,所以复制整段字符串到文本框:

解码前


然后点击base64解码即可:

解码后


上面的字符串,解析出来就是(相对应的就是加密方法、密码、ip、端口):

chacha20:doub.io/sszhfx/*doub.bid/sszhfx/*2987@64.137.229.154:2987

即:

method:chacha20
password:doub.io/sszhfx/*doub.bid/sszhfx/*2987
server:64.137.229.154
port:2987

s2r链接

在 Base64 编码之前,ssr 链接的格式是这样的:

s2r://server:port:protocol:method:obfs:password_base64/?params_base64

上面的链接的不同之处在于 password_base64 和 params_base64 。

顾名思义,password_base64 就是密码被 base64编码 后的字符串,而 params_base64 则是协议参数、混淆参数、备注及Group对应的参数值被 base64编码 后拼接而成的字符串。

即 params_base64为这些字段的拼接:

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

那么,假设现在有这样一个 s2r 链接:

s2r://NjQuMTM3LjIwMS4yNDY6Mjk4NzphdXRoX3NoYTFfdjQ6Y2hhY2hhMjA6dGxzMS4yX3RpY2tldF9hdXRoOlpHOTFZaTVwYnk5emMzcG9abmd2S21SdmRXSXVZbWxrTDNOemVtaG1lQzhxTWprNE53Lz9yZW1hcmtzPTVweXM2TFNtNVktMzVwMmw2SWVxT21SdmRXSXVhVzh2YzNONmFHWjRMLW1Wbk9XRGotV2ZuLVdRalRwa2IzVmlMbUpwWkM5emMzcG9abmd2

那么该部分就是被 base64 编码生成的:

NjQuMTM3LjIwMS4yNDY6Mjk4NzphdXRoX3NoYTFfdjQ6Y2hhY2hhMjA6dGxzMS4yX3RpY2tldF9hdXRoOlpHOTFZaTVwYnk5emMzcG9abmd2S21SdmRXSXVZbWxrTDNOemVtaG1lQzhxTWprNE53Lz9yZW1hcmtzPTVweXM2TFNtNVktMzVwMmw2SWVxT21SdmRXSXVhVzh2YzNONmFHWjRMLW1Wbk9XRGotV2ZuLVdRalRwa2IzVmlMbUpwWkM5emMzcG9abmd2

首先检查字符该字符串是否包 – 和 _ 的字符,上面的字符串没有包含这两个字符,那么把所有内容复制到文本框进行解码:

解码前


解码后:

解码后


解码后的字符串如下:

64.137.201.246:2987:auth_sha1_v4:chacha20:tls1.2_ticket_auth:ZG91Yi5pby9zc3poZngvKmRvdWIuYmlkL3NzemhmeC8qMjk4Nw/?remarks=5pys6LSm5Y-35p2l6IeqOmRvdWIuaW8vc3N6aGZ4L-mVnOWDj-Wfn-WQjTpkb3ViLmJpZC9zc3poZngv

然后再把最后 password_base64/?params_base64 这些字符串提出来分别解码:

ZG91Yi5pby9zc3poZngvKmRvdWIuYmlkL3NzemhmeC8qMjk4Nw/?remarks=5pys6LSm5Y-35p2l6IeqOmRvdWIuaW8vc3N6aGZ4L-mVnOWDj-Wfn-WQjTpkb3ViLmJpZC9zc3poZngv

解码 password_base64 :

ZG91Yi5pby9zc3poZngvKmRvdWIuYmlkL3NzemhmeC8qMjk4Nw

解码后


然后解码 params_base64,因为该字段只包含 remarks ,说明其余参数都为空 ,base64_remarks 字符串如下:

5pys6LSm5Y-35p2l6IeqOmRvdWIuaW8vc3N6aGZ4L-mVnOWDj-Wfn-WQjTpkb3ViLmJpZC9zc3poZngv

上面的字符串包含 – ,所以在解码前要把 – 这个字符通通替换为 + 字符,替换后:

5pys6LSm5Y+35p2l6IeqOmRvdWIuaW8vc3N6aGZ4L+mVnOWDj+Wfn+WQjTpkb3ViLmJpZC9zc3poZngv

然后对该字符串进行解码:

解码后


至此,s2r链接解析完成。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值