沐雨街机海鸥捕鱼C++编译产物全套拆解

捕鱼源码2026-08-26268 阅读
约 1,907 字 · 大约 6 分钟

40款游戏打进一个Windows部署包:沐雨街机海鸥捕鱼C++编译产物全套拆解

拿到这个名叫"海鸥捕鱼"的包,解开发现里面三个目录:server、web、data,加上根目录的两个安装包 海鸥捕鱼.apk 和 海鸥捕鱼.ipa。下载页面上写着"沐雨街机捕鱼"的品牌名,底部备案信息指向杭州沐雨网络科技有限公司(另一个版本指向重庆渡典科技)。整套包约 14800 个文件,打开一看——服务端全是编译好的 .exe 和 .dll,客户端是 Unity 打包的资源包,后台虽然有 .aspx 页面但业务逻辑全封在 DLL 里。这不是源码,是一套部署产物。

海鸥捕鱼 游戏大厅选择界面
海鸥捕鱼 游戏大厅选择界面

上面是游戏大厅的实际运行画面,入口分成"3D捕鱼"、"Boss来袭"、"大虾鳌鱼"、"休闲游戏"四个大类,顶部还有商城、签到、活动等常规运营入口,底栏放着背包、客服和设置——标准的街机捕鱼类手游大厅框架。

技术栈总览

层级

技术选型

说明

游戏服务端

C++ (Windows)

5个EXE主进程 + 多个游戏逻辑DLL

管理后台

ASP.NET 4.0 (C#)

IIS 部署,DWZ 前端框架,272个管理页面

游戏客户端

Unity (Mono + XLua)

Android APK / iOS IPA,.kb 格式资源热更新

数据库

SQL Server

11个库的 .bak 备份

通信协议

WebSocket + TCP

Correspond 做 WebSocket 中继(8310),GameServer 走 TCP

服务端:五个 EXE 各管一摊

server 目录里没有一行 C++ 源码,全是编译好的二进制文件。但从进程分工和配置文件可以还原架构:

  • LogonServer.exe:玩家登录认证,端口 8300

  • Correspond.exe:通信中枢,端口 8310 承载 WebSocket,后台推送实时数据也走它

  • GameServer.exe:游戏主体,WatchConfig.xml 配了 30 个实例,端口 5012-5050,捕鱼房间按 RoomCfgID 分七档(新手场到活动场)

  • ChatServer.exe:聊天消息,独立于游戏逻辑

  • WatchServer.exe:看门狗,监控上面四个进程,崩溃自动拉起

之前拆过的全民捕鱼也是 C++ 多进程架构,用了六个进程;这套沐雨街机用五个进程解决了同样的问题,进程职责划分思路非常接近,感兴趣的可以对比看看,关联文章放在文末。

游戏逻辑封装在各自的 DLL 里:

DLL 名称

对应游戏

NewFishServer.dll

3D 捕鱼(主力玩法)

lkpy_server.dll

李逵捕鱼(经典 2D)

TransferBattleServer.dll

对战/竞技模式

WaterMarginServer.dll

水浒传(老虎机类)

下面四张截图分别对应这些 DLL 驱动的实际游戏画面:

海鸥捕鱼 3D捕鱼Boss战斗场景
海鸥捕鱼 3D捕鱼Boss战斗场景

NewFishServer.dll 驱动的 3D 捕鱼 Boss 战——画面里正在打"深海龙女",右上角分数 381 万,满屏金币爆落和激光扫射同屏叠加,对 GameServer 实例的并发处理压力不小。

海鸥捕鱼 经典捕鱼闪电特效
海鸥捕鱼 经典捕鱼闪电特效

lkpy_server.dll 对应的经典 2D 捕鱼,走传统街机路线。闪电链特效正在扫荡全屏鱼群,底部有"自动锁定"和"自动开枪"辅助按钮,右上角分数 329 万。和 3D 模式相比画面资源消耗更低,但同屏鱼群数量反而更多。

海鸥捕鱼 深海捕鱼能量炮场景
海鸥捕鱼 深海捕鱼能量炮场景

TransferBattleServer.dll 处理的多人竞技模式——深海沉船场景里两位玩家用 2 倍和 3 倍能量炮对轰粉色弹幕鱼群,每个玩家的炮火轨迹和命中判定都需要服务端实时同步。

海鸥捕鱼 水浒传老虎机游戏
海鸥捕鱼 水浒传老虎机游戏

WaterMarginServer.dll 对应的水浒传玩法——9 线老虎机,转盘图案换成水浒人物头像。和捕鱼完全不同的 Slots 机制,服务端只需处理随机数和赔率,没有实时碰撞判定的压力。

数据库与管理后台

data/buyu/data 下 11 个 .bak 备份:SHAccountsDB(账号)、SHTreasureDB(金币财务)、SHGameScoreDB(积分)、SHAgentsDB(代理)、SHPlatformDB(平台配置)、SHPlatformManagerDB(后台数据,双库)、SHGameMatchDB(竞技)、SHRecordDB(记录)、SHNativeWebDB(前端配置)、SHTaskDB(任务)。连接字符串用 sa 账号,密码写死 SobGXBFJyDBuRe2S。

海鸥捕鱼 后台管理数据面板
海鸥捕鱼 后台管理数据面板

后台基于 ASP.NET 4.0 + DWZ 框架,272 个 .aspx 页面分 9 个模块(用户管理、代理管理、充值、VIP、财务、任务、应用、网站、操作日志)。上面的首页面板显示税收金币 8624 万、金币总数 2.04 亿、注册 2281 人、在线 23 人。核心逻辑封在 bin/Game.Web.dll 等 DLL 里(三层架构:Entity / Data / Facade / Utils),后台通过 WebSocket 与 Correspond 实时通信,踢人、发公告可以直接推到游戏服务端。支付对接了支付宝、微信、银联三家。

同样是 C++ 多进程服务端 + Unity 客户端 + 多库结构的电玩平台,之前拆过的富贵3也是这个路子但规模更大(27 组 GameSvr + 69 个数据库),两者的架构差异值得对照,详见文末关联。

客户端与渠道分发

APK 确认 Unity 引擎(Mono + XLua),核心资源在 assets/data.zip(约 134MB),按模块分目录:Fish3D(3D 捕鱼)、FishLK(李逵捕鱼)、GameHall(大厅)、MarshHero(水浒传)、SHZP(字牌)。所有资源文件是 .kb 后缀的自定义格式(AssetBundle 变体)。supplierconfig.json 配了 VIVO、小米、华为、OPPO 四个渠道 SDK 参数,做过多渠道分发。

游戏名称清单

类型

游戏名称

捕鱼

3D捕鱼、李逵捕鱼、海鸥暴击

百人场

百人两张、百人牌九、百人小九、新百家乐、百人牛牛、百人骰宝、新牛牛

街机

飞禽走兽、金鲨银鲨、水果乐园、神兽大转盘、碰碰车、水浒传

扑克

斗地主、两副斗地主、癞子斗地主、掼蛋、510K、红五两副、火拼双扣、两副升级、关牌、四张、二人梭哈、新港式五张

麻将

血战麻将、二人麻将、温州麻将、温州二人麻将

桌游

中国象棋、五子棋、台球、斯诺克

部署条件与步骤

项目

要求

操作系统

Windows Server 2012 R2+

数据库

SQL Server 2012+

Web 服务

IIS 8.0+,ASP.NET 4.0

运行时

.NET Framework 4.0、VC++ 2010/2005

硬件建议

4核 / 8GB / 50GB(30 个 GameServer 实例吃内存)

端口

8300(登录)、8310(WebSocket)、5012-5050(游戏)、80/443(Web)

  1. 数据库还原:SQL Server 中依次还原 11 个 .bak,库名与文件名对应

  2. 配置服务端:改 server/ServerParameter.ini 数据库连接(加密 hex 格式,需配套工具);调 WatchConfig.xml 端口和房间

  3. 部署 Web:IIS 建 SHAdmin(管理后台)、shagent(代理)、SHFront(下载页)三个站点,应用池 .NET 4.0;改各 Web.config 的连接串和 WebSocket 地址

  4. 启动:运行 WatchServer.exe,按配置依次拉起 Correspond → LogonServer → GameServer x30 → ChatServer

  5. 客户端:APK/IPA 内服务器地址写在 Unity 资源里,改地址需重新打包

熟手预计 3-4 小时,主要耗在数据库还原和 IIS 配置上。

二开评估

服务端:纯编译产物,没有 C++ 源码,只能通过 XML/INI 调数值参数(房间、倍率、AI),无法改核心玩法。

后台:ASPX 页面能改布局和样式,但业务逻辑锁在 DLL 里没有 C# 源码,加不了新管理功能。

客户端:Unity 打包的 APK/IPA,资源是自定义 .kb 格式,换皮需要原始 Unity 工程文件,包里没有。

这套包的定位是"拿来部署直接跑"——搭环境看效果、调参数没问题,想改玩法加游戏换 UI 需要另找源码。

延伸阅读1 篇

下载地址

会员免费

本资源为会员专享,登录后可下载