Skip to content

Xerxes-2/MajsoulMax-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

505 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

雀魂 Max-rs

en cn

本项目启发自 MajsoulMax

雀魂解锁全角色、皮肤、装扮等,基于 hudsucker 的中间人攻击方式,支持网页版与电脑 / Android 客户端。

同时支持将雀魂的实时牌局发到 日本麻将助手 mahjong-helper,不支持牌谱分析。

本工具完全免费、开源,如果您为此付费,说明您被骗了!

🤔 为什么重新造轮子

🥰 优点

  • 本项目使用 Rust 语言编写,相比 Python 有更好的性能和更小的体积(Python 版经常因为延迟过高使用体验不佳)
  • 使用了多线程异步处理,提高了性能
  • 原生支持 Windows、Linux、macOS、Android 等多平台,只需下载二进制一键运行
  • 支持 Android 客户端(通过 Termux 和 NekoBox)

🥲 缺点

  • hudsucker 相比 mitmproxy,不支持上游代理,需要借助 Clash
  • 无法动态更新 lq.rs,需要重新编译

🧭 当前雀魂各服版本(实时更新)

CHINESE ENGLISH JAPANESE

📢 用前须知

注意:解锁人物仅在本地有效,别人还是只能看到你原来的角色,发表情也是原来角色的表情。 比如使用新角色发第 3 个表情,实际上其他人看到的是原来角色的第 3 个表情。

Caution

魔改千万条,安全第一条。

使用不规范,账号两行泪。

本项目仅供学习参考交流,请使用者于下载 24 小时内自行删除,不得用于商业用途,否则后果自负。

雀魂官方可能会检测并封号,如产生任何后果与作者无关。

使用本项目则表示你已知悉并同意以上条款。

放铳放铳

✈️Telegram 频道 & 交流群

频道 交流群
频道 https://t.me/Mahjong_Soul 交流 https://t.me/Mahjong_Soul_Chat

可以直接点击图片进入,也可以通过扫码进入。

🥰 当前功能

程序包含两部分:modhelper,可以说是 雀魂 mod_plusmahjong-helper-majsoul-mitmproxy 的融合。

程序默认配置为启用 helper、禁用 mod。如需自定义,请修改 ./liqi_config/settings.json 中的 mod_switchhelper_switch

mod 功能

  • 解锁所有角色与皮肤
  • 解锁所有装扮
  • 解锁所有语音(报菜名)
  • 解锁所有称号
  • 解锁所有加载 CG
  • 解锁所有表情(不推荐开启)
  • 强制启用便捷提示
    • 由于雀魂本身代码限制,王座无法正常启用便捷提示,因此,开启此功能后进入王座对局,左上角会变成 “玉之间”。请注意,这不是 BUG!
  • 支持星标角色
  • 自定义名称
  • 显示玩家所在服务器
  • TODO……

helper 功能

🧐 使用说明 (Windows)

  1. 修改配置
    • 根据程序提示和自身需求修改
    • liqi_config/settings.json 可以设置通用设置,包括 Helper 和 Mod 的开关 ——modSwitchhelperSwitchfalse 为关 true 为开
    • liqi_config/settings.mod.json 可以设置 Mod 专有设置
  2. 启动程序,直接运行可执行文件
  3. 启动游戏,分为网页版和客户端 / Steam 端。需要确保雀魂相关流量会经过本地 majsoul_max_rs 代理(默认监听 127.0.0.1:23410),推荐使用支持规则分流与覆写的代理软件(如 Clash / Surge),具体示例见下文 “代理与分流” 一节。
    • 网页版:通常只需让浏览器通过系统代理或规则分流使用 majsoul_max_rs 节点,无需开启 TUN / 增强模式。
    • 客户端 / Steam 端:同样通过 Clash / Surge 将进程流量分流到 majsoul_max_rs,但需要在代理软件中开启 TUN / 增强模式,否则本地进程流量不会被劫持。
  4. 登录游戏开始享受

macOS 或 Linux 用户,可以参考 Windows 的步骤,步骤 3 有所不同。

如果你想使用 Android 版,默认你已经有足够的技术能力,这里不再赘述,只提几个关键词:TermuxNekoBox,并且只在线路 1 有效。

📦 安装证书

在配置分流规则前,请先在系统中导入并信任 hudsucker.cer 根证书(可从 omjadas/hudsucker 下载),否则 HTTPS 流量可能会因为证书校验失败而无法正常工作。

Windows 用户

  1. 找到名为 hudsucker.cer 的证书文件
  2. 双击该证书文件
  3. 点选 安装证书 按钮
  4. 若出现选项,请选 本地计算机,然后点选下一步
  5. 选择 将所有证书放入下列存储,然后点 浏览...
  6. 选择 受信任的根证书颁发机构,按下确定,再点选下一步与完成
  7. 若系统要求权限,请点选是

macOS 用户

  1. 找到名为 hudsucker.cer 的证书文件
  2. 双击该证书文件,进入钥匙串访问
  3. 点选左边的 系统钥匙串 下的 系统 标签,右上角搜索 hudsucker,找到导入的证书,此时是未信任状态
  4. 右键名为 hudsucker 的证书项,选择 显示简介,在弹出的窗口中展开 信任
  5. 对于 使用此证书时,改为 始终信任
  6. 关闭窗口,在弹出的认证框中完成认证即可。

iOS / iPadOS 用户

若你通过分离部署的形式将本项目改为了代理节点,则可以在 iOS / iPadOS 上使用,但此时仍需在对应设备上完成证书信任。

  1. 首先将电脑上的 hudsucker.cer 证书通过隔空传送或者其他方式发送到 iPhone/iPad 上,最好是隔空投送,可以自动完成导入。对于其他方式,须先保存到文件中,然后再在文件中点开该证书文件。
  2. 进入 设置-已下载描述文件,点击安装
  3. 前往 通用-关于本机-证书信任设置,打开 hudsucker 的选项

Android 用户

无测试环境,可自行搜索。

🌐 代理与分流

majsoul_max_rs 默认在本地 127.0.0.1:23410 启动一个 HTTP 代理。推荐使用支持规则分流和覆写的代理软件(如 Clash / Surge),将雀魂相关流量导向该代理。

Caution

本地客户端 / Steam 端等进程需要在代理软件中开启 TUN / 增强模式,才能保证进程流量经过 majsoul_max_rs;但请务必注意避免回环代理,即你要保证从 majsoul_max_rs 发出的流量不会被分流回自身。

网页版(浏览器)一般只要正确配置系统代理或域名规则即可,通常不需要开启增强模式。

使用 Clash 分流

proxies:
    - name: MajsoulMax-rs
      type: http
      server: 127.0.0.1
      port: 23410
      tls: false

proxy-groups:
    - name: 🀄 雀魂麻将
      type: select
      proxies:
          - MajsoulMax-rs
          - DIRECT

rules:
    # 必须有这条,否则会导致回环代理
    - PROCESS-NAME-REGEX,majsoul_max_rs.*?,DIRECT
    # 下面两部分可选,根据你的游戏平台选择其一即可
    # 客户端 / Steam
    - PROCESS-NAME,雀魂麻將,🀄 雀魂麻将
    - PROCESS-NAME,jantama_mahjongsoul.exe,🀄 雀魂麻将
    - PROCESS-NAME,Jantama_MahjongSoul.exe,🀄 雀魂麻将
    # 网页版(浏览器)
    - DOMAIN-KEYWORD,majsoul,🀄 雀魂麻将
    - DOMAIN-KEYWORD,maj-soul,🀄 雀魂麻将
    - DOMAIN-KEYWORD,mahjongsoul.com,🀄 雀魂麻将
    - DOMAIN-KEYWORD,catmjstudio,🀄 雀魂麻将

使用 Surge 分流

[Proxy]
MajsoulMax-rs = http, 127.0.0.1, 23410

[Proxy Group]
🀄 雀魂麻将 = select, MajsoulMax-rs, DIRECT

[Rule]
# 必须有这条,否则会导致回环代理
PROCESS-NAME,majsoul_max_rs,DIRECT
# 下面两部分可选,根据你的游戏平台选择其一即可
# 客户端 / Steam
PROCESS-NAME,雀魂麻將,🀄 雀魂麻将
# 网页版
DOMAIN-KEYWORD,majsoul,🀄 雀魂麻将
DOMAIN-KEYWORD,maj-soul,🀄 雀魂麻将
DOMAIN-KEYWORD,mahjongsoul.com,🀄 雀魂麻将
DOMAIN-KEYWORD,catmjstudio,🀄 雀魂麻将

无法使用进程名规则的场景

如果你是 iOS / iPadOS 等无法使用 PROCESS-NAME 规则的平台,可以仿照网页版使用域名关键字或 IP 分流(Clash 示例),但此时需要分离部署 majsoul_max_rs,也即其不能和你的主机在同一机子上,否则会导致回环代理,分离部署可以考虑将代理节点部署在 VPS 上,参见 MajsoulMax-rs-docker

rules:
    - DOMAIN-KEYWORD,majsoul,🀄 雀魂麻将
    - DOMAIN-KEYWORD,maj-soul,🀄 雀魂麻将
    - DOMAIN-KEYWORD,mahjongsoul.com,🀄 雀魂麻将
    - DOMAIN-KEYWORD,catmjstudio,🀄 雀魂麻将

覆写配置示例

如果你使用的是支持覆写的代理客户端(如 Clash VergeClash Party 或支持覆写配置的 Surge),建议将上述节点与规则写在单独的覆写文件 / 全局脚本中,需要玩雀魂时再一键启用。

Clash Verge 全局扩展脚本(JS)示例

参考 官方文档,可以按照如下方法进行配置。

在 “订阅” 页面右键 全局扩展脚本,选择 “编辑文件”:

function main(config) {
    config.proxies.push({
        name: 'MajsoulMax',
        type: 'http',
        server: '127.0.0.1',
        port: 23410,
        tls: false,
    });

    config['proxy-groups'].push({
        name: '🀄 雀魂麻将',
        type: 'select',
        proxies: ['DIRECT', 'MajsoulMax'],
        icon: 'https://www.maj-soul.com/homepage/img/logotaiwan.png',
    });

    const bypass = [
        'PROCESS-NAME-REGEX,majsoul_max_rs.*?,DIRECT',
    ];

    const clientRules = [
        'PROCESS-NAME,Jantama_MahjongSoul.exe,🀄 雀魂麻将',
        'PROCESS-NAME,jantama_mahjongsoul.exe,🀄 雀魂麻将',
        'PROCESS-NAME,雀魂麻將,🀄 雀魂麻将',
    ];

    const webRules = [
        'DOMAIN-KEYWORD,majsoul,🀄 雀魂麻将',
        'DOMAIN-KEYWORD,maj-soul,🀄 雀魂麻将',
        'DOMAIN-KEYWORD,mahjongsoul.com,🀄 雀魂麻将',
        'DOMAIN-KEYWORD,catmjstudio,🀄 雀魂麻将',
    ];

    config.rules.unshift(...bypass, ...clientRules, ...webRules);
    return config;
}

Clash Party(原 Mihomo Party)覆写示例:

参考 官方文档),可以按照如下方式进行配置。

在 Clash Party 左侧 覆写 页面点击 + 号,选择 新建 YAML,然后复制如下内容,点击 确认 保存,然后点击对应覆写卡片右上角的 ... 图标,选择 编辑信息 - 全局启用

+proxies:
    - name: MajsoulMax-rs
      type: http
      server: 127.0.0.1
      port: 23410
      tls: false
+proxy-groups:
    - name: 🀄 雀魂麻将
      type: select
      proxies:
          - MajsoulMax-rs
          - DIRECT
+rules:
    # 必须有这条,否则会导致回环代理
    - PROCESS-NAME-REGEX,majsoul_max_rs.*?,DIRECT
    # 下面两部分可选,根据你的游戏平台选择其一即可
    # 客户端 / Steam
    - PROCESS-NAME,雀魂麻將,🀄 雀魂麻将
    - PROCESS-NAME,jantama_mahjongsoul.exe,🀄 雀魂麻将
    - PROCESS-NAME,Jantama_MahjongSoul.exe,🀄 雀魂麻将
    # 网页版(浏览器)
    - DOMAIN-KEYWORD,majsoul,🀄 雀魂麻将
    - DOMAIN-KEYWORD,maj-soul,🀄 雀魂麻将
    - DOMAIN-KEYWORD,mahjongsoul.com,🀄 雀魂麻将
    - DOMAIN-KEYWORD,catmjstudio,🀄 雀魂麻将

🤔 Q&A

  1. 为什么要自动更新 liqi 和 lqc.lqbin?更新失败有什么影响?
    • liqi:
      • 共有 3 个文件,包括 liqi.json 和根据其生成的 liqi.protoliqi.desc,用于解析雀魂 protobuf 消息
      • 如果更新失败,可能会导致消息无法解析(如新活动的消息)
    • lqc.lqbin:
      • 用于获取全部角色、装扮、物品等游戏资源
      • 如果更新失败,可能会导致无法获取新资源(如新角色、物品等)
    • 如果自动更新失败,可以在 AutoLiqi > Releases 下载,并手动替换 ./liqi_config 文件夹下的同名文件
  2. 如何同时启用自己的代理(机场 / VPN)?
    • 推荐使用支持规则和覆写的代理软件(如 Clash / Surge),将雀魂相关流量首先分流到本地 MajsoulMax-rs 节点,再由该节点转发到你原有的代理节点。
    • 具体示例配置见上文 “代理与分流” 一节,你也可以将示例写成单独的覆写配置文件,在需要时再启用。
  3. 还有其它问题? 在上方加入我们的 Telegram 群

🛠️ 开发依赖

📜 许可证

GNU General Public License v3.0

About

启发自MajsoulMax,基于hudsucker的中间人攻击方式,解锁全角色、皮肤、装扮等,同时支持将雀魂的牌局发到日本麻将助手

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors