总的来说要做的就是从https://github.com/Bill0412/ss-link-decoder上面把那个.py文件下载下来,然后运行那个文件来解析链接。
以下面这个ss链接为例,
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpyVkJ6WVJIZ3ZRTzc=@某ip地址:33333/?outline=1
先把后面那个后缀/?outline=1去掉(/?后面部分其实是无用的注释),变成
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpyVkJ6WVJIZ3ZRTzc=@某ip地址:33333
然后运行
$ git clone https://github.com/Bill0412/ss-link-decoder.git $ cd ss-link-decoder $ python ssdecode.py ss://Y2hhY2iiyjAtaWV56AF203s984TpyVkJ6Wa5TZ3z8Tzc=@某ip地址:12320
运行结果如下:
上面花括号里面的东西分别是你需要的服务器IP地址、端口号、密码和加密方式从加密链接中解密出来的明文。可以尝试一下,解析出来的信息跟直接导入信息得到的结果是一样的。
听说你上不了github啦?
特释放py文件源码如下, 请保存:
# -*- coding: utf-8 -*-
import base64
import json
import sys
def base64decode(s):
# transtab = str.maketrans('-_', '+/')
# s = s.translate(transtab)
if len(s) % 4 != 0:
s = s + (4 - len(s) % 4)*'='
return base64.urlsafe_b64decode(s.encode())
def decode_ss(ss):
code_base64 = ss[5:ss.find('@')]
method_pwd = base64decode(code_base64)
method_b, pwd_b = method_pwd.split(b':', 1)
server = ss[ss.find('@')+1:ss.rfind(':')]
if ss.find('#') == -1:
port = ss[ss.rfind(':')+1:]
else:
port = ss[ss.rfind(':')+1:ss.find('#')]
ss_conf = {'server': server, 'server_port': int(port),
'password': pwd_b.decode(), 'method': method_b.decode()}
print(json.dumps(ss_conf, indent=4))
pwd_base64 = base64.urlsafe_b64encode(pwd_b)
ssr = [server, port, 'origin', method_b.decode(), 'plain',
pwd_base64.decode()]
ssrlink = ':'.join(ssr) + '/?obfsparam=&protoparam=&remarks='
ssrlink_base64 = base64.urlsafe_b64encode(ssrlink.encode())
ssrlink_output = 'ssr://' + ssrlink_base64.decode()
print(ssrlink_output)
def decode_ssr(ssr):
first_b = base64decode(ssr[6:])
ssr_conf = {'server': '', 'server_port': ''}
print(first_b.decode())
def main(s):
is_ss = s.find('ss://')
is_ssr = s.find('ssr://')
if is_ss != -1:
ss = s[is_ss:].strip()
decode_ss(ss)
elif is_ssr != -1:
ssr = s[is_ssr:].strip()
decode_ssr(ssr)
else:
print('链接格式不正确!')
if __name__ == '__main__':
if len(sys.argv) != 2:
print('参数不正确!')
else:
main(sys.argv[1])
2 楼 IP 114.254.***.129 的嘉宾 说道 : 很久前
3 楼 IP 222.128.***.254 的嘉宾 说道 : 很久前