[其他][BDS] CrackSimpfun-打破简幻欢Windows节点的限制,让您用上19132端口和长时间不会关服务器
本帖最后由 CSF666 于 2023-1-12 15:19 编辑本插件仅供学习交流使用,下载后请在24小时内删除!由使用本插件产生的危害和问题,作者概不负责!请不要损害简幻欢的利益,下载后务必在24小时内删除!!!!!支持原作者还请前往https://www.minebbs.com/resources/cracksimpfun.5345/下载地址:csf (lanzoum.com)网盘下载密码:csf转载已授权!为避免利益纠纷隐藏我的mine BBS用户名众所周知,简幻欢是国内最大免费开服平台。但是为了保护主机安全等,简幻欢对开服做出了诸多限制,例如:隐藏部分文件、没人时强制关服(危害服务器存档)等。
这导致我们在上面开服非常的不便。故开发了此插件本插件实现的功能如下:
模块依赖
延长没人就关服的时间FakePlayer
单端口端口转发,实现反向代理(类似于CDN)Frp
强制修改server.properties配置文件内置
自动配置Frp为反向代理内置
执行后台命令内置
循环执行游戏指令或命令内置
开服前删除/复制文件内置
本插件实现的功能违反了简幻欢的各种规定,因此有几率导致服务器被强制暂停甚至被清除服务器数据。所以请遵守开头的规则。目前由本插件驱动的服务器已正常运行1小时之久(对照如何使用第五步的例图可知道服务器启动时间)https://www.minebbs.com/attachments/1673354468617-png.40662/然后就被强制关闭了(但是依旧是很大的提高!)https://www.minebbs.com/attachments/1673354798073-png.40663/注意!使用本插件的前提是你必须学会JSON语法,如果你不会,可以去菜鸟教程快速学习为了方便描述,本贴规定根目录为你打开文件管理器的第一个页面如何使用1.下载csf.dll,data.7z和jre.7z。网盘密码是csf2.将他们上传到plugins目录下3.开服,执行csfinit,等待控制台输出CrackSimpfun Init!,就进入下一步https://www.minebbs.com/attachments/1673350456116-png.40654/4.按照下面的配置文件板块修改配置文件,之后重启服务器,如果你看到插件加载失败,错误代码1114,则表明你的配置文件写错了5.如果你开启了假人,看到有五个假人在开服完成后加入服务器,且服务器端口为19132,则代表启动成功https://www.minebbs.com/attachments/1673350657950-png.40655/在控制台执行cmd之后即可进入cmd命令执行模式,再次输入cmd即可退出该模式。在该模式下,可以执行cmd命令,为了保证输出结果的可读性,输出的结果将保存到根目录下的cmd.txt配置
描述目录
CrackSimpfunplugins/csf/config.json
Frpcplugins/csf/csfc.ini
Frpsplugins/csf/csfs.ini
FakePlayerplugins/fp/config/config.yaml
CrackSimpfun的主配置文件,如果你不需要Frp或假人服务,将exec_background_cmd中的对应项目删除即可,不希望修改端口可以删除server_properties中的对应项目{
"delete_files": [ //删除文件
"C:\\container\\plugins\\csf\\csfs.log", //删除Frps日志,目录要加反斜杠
"C:\\container\\plugins\\csf\\csfc.log" //删除Frpc日志,目录要加反斜杠
],
"copy_files": { //复制文件
"C:\\container\\plugins\\csf\\csf.dll": "C:\\container\\plugins\\plugin.dll" //复制文件,目录要加反斜杠
},
"server_properties": [ //修改server.properties配置文件
{
"server-port": "19132" //防止占用唯一的公网端口
},
{
"player-idle-timeout": "0" //防止假人被踢
},
{
"online-mode": "false" //允许假人加入
}
],
"exec_background_cmd": [ //执行后台命令
{
"0": "cmd.exe /c C:\\container\\plugins\\fp\\bin\\FakePlayer.bat" //启动假人
},
{
"0": "C:\\container\\plugins\\csf\\csfs.exe -c C:\\container\\plugins\\csf\\csfs.ini" //启动Frps
},
{
"1000": "C:\\container\\plugins\\csf\\csfc.exe -c C:\\container\\plugins\\csf\\csfc.ini" //延迟1000毫秒启动Frpc
}
],
"modify_configs": true, //是否自动配置Frp端口及FakePlayer配置
"run_loop_interval": 180, //循环间隔,此处为180秒
"run_loop": [
{
"system": "cmd.exe /c echo Running AutoCompaction..." //前台命令
},
{
"console": "list" //游戏命令list
}
]
}面板主机信息一览(已优化可读性)由下图可知,简幻欢提供的平台并不是Wine,而是使用Win Server 2019加Docker容器。这允许我们进行更多操作,包括运行大型程序(如Java),以及运行各种能够在命令行运行的软件。甚至是启动虚拟机https://www.minebbs.com/attachments/1673353887112-png.40659/简幻欢限制面板使用的手段1.使用链接文件夹和文件对部分文件进行隔离,防止用户对服务端等核心文件进行修改,仅对用户暴露部分文件夹。根据对其目录的探索,可以得知面板暴露给用户的目录为C:\container\,而BDS服务端位于C:\bds\。在服务器目录使用dir命令产生的输出,其中标为JUNCTION和SYMLINK的部分为已链接的目录/文件 Volume in drive C has no label.
Volume Serial Number is AE10-7026
Directory of C:\bds
01/10/2023 07:34 PM <DIR> .
01/10/2023 07:34 PM <DIR> ..
01/10/2023 07:34 PM <SYMLINK> allowlist.json
11/16/2022 07:39 AM 41,913,296 bedrock_server.exe
11/16/2022 07:37 AM 207,917,056 bedrock_server.pdb
11/16/2022 06:50 AM 25,018 bedrock_server_how_to.html
12/10/2022 08:20 PM 44,243,200 bedrock_server_mod.exe
12/11/2022 12:23 PM <DIR> behavior_packs
01/10/2023 07:34 PM <JUNCTION> config
12/11/2022 12:23 PM <DIR> definitions
12/10/2022 08:20 PM <DIR> development_behavior_packs
12/10/2022 08:20 PM <DIR> development_resource_packs
12/10/2022 08:20 PM <DIR> development_skin_packs
12/11/2022 12:22 PM <DIR> lib
12/10/2022 10:43 AM 10,187,264 LiteLoader.dll
12/10/2022 11:05 AM 597,504 LLPeEditor.exe
12/10/2022 10:36 AM 347,648 LLPreLoader.dll
01/10/2023 07:34 PM <JUNCTION> logs
01/10/2023 07:34 PM <SYMLINK> permissions.json
01/10/2023 07:34 PM <JUNCTION> plugins
11/16/2022 06:50 AM 592 release-notes.txt
12/11/2022 12:22 PM <DIR> resource_packs
01/10/2023 07:34 PM <SYMLINK> server.properties
01/10/2023 07:35 PM 4,973 valid_known_packs.json
01/10/2023 07:34 PM <JUNCTION> worlds
12/10/2022 08:20 PM <DIR> world_templates
12 File(s) 305,236,551 bytes
14 Dir(s) 21,096,980,480 bytes free打开文件管理器的第一页面:https://www.minebbs.com/attachments/1673352324173-png.40656/2.禁止修改启动参数(面板服务商常用)3.在容器启动时强制替换文件,包括server.properties,Simpfun.dll等文件,防止用户修改服务器端口或删除用于上报服务器状态的插件4.在服务器没人的时候自动关服,这是最麻烦的一点。没人进入服务器的情况下:在白天,一般开服不到十分钟就会自动关服。晚上,半小时之内也会关服。经过分析,简幻欢使用的关服方法为直接强制结束进程,存在潜在的数据丢失风险,这种对用户数据不重视的态度是应当被谴责的。在DllMain中使用ul_reason_for_call进行关服检测,正常输入stop关服,插件会立刻输出消息,不过由于在服务器运行过程中会多次触发DLL_PROCESS_DETACH事件,所以将服务器端口改回简幻欢提供的默认端口,然后在本地使用motd工具,每秒发包一次,进行存活性探测。如果motd发生超时的时候插件刚好输出了消息,则说明服务器是正常关闭的,反之则是非正常关闭。利用该方法以增强结论可信度BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
std:: cout << "DLL_PROCESS_DETACH event has been triggered!" << std::endl;
break;
}
return TRUE;
}关于Simpfun.dll由于作者精力不多,不想深挖该插件的功能,故使用假人进行延长开服时间(BDS内置的simulatedPlayer应该也能达到目的)复制文件处的示例本来是要替换简幻欢自带的Simpfun.dll插件,使其无法工作的,但是后来经过检查,发现该插件使用了WS2_32.dll(如下图),故判断该插件是用于检测服务器状态,并与面板通信,达到根据在线状态关闭服务器的功能。https://www.minebbs.com/attachments/1673336925495-png.40637/检索并整理了该插件中使用的ANSI字符串,发现其调用了两个BDS的API:偏移 大小 类型字符串
00006954 3fA ?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ
00009e44 45A ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z
00042920 42A ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ
003f0bc8 4aA ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z
004033fe 42A ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z
0040a216 5cA ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z
00412034 3dA ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ
00417550 5bA ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z
0042c03c 3cA ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ
00450ae8 41A ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ
00479bf2 45A ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z
0047a81a 3dA ?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAAXXZ
004922f8 4aA ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z
004c98e0 39A ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ
004a75ec 53A ?_copy@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV12@@Z
0009d34a 26A ?set_new_handler@std@@YAP6AXXZP6AXXZ@Z
# 疑似定时任务
0040595e 54 A ?nextTick@Schedule@@YA?AVScheduleTask@@V?$function@$$A6AXXZ@std@@PEAUHINSTANCE__@@@Z
# BDS函数
# 检查配置文件:是否使用Xbox验证
000683be 35 A ?useOnlineAuthentication@PropertiesSettings@@QEBA_NXZ
# BDS 1.19.51.01 中的符号: ?useOnlineAuthentication@PropertiesSettings@@QEBA_NXZ
# 遍历每一个玩家
0040e024 44 A ?forEachPlayer@Level@@QEAAXV?$function@$$A6A_NAEAVPlayer@@@Z@std@@@Z
# BDS 1.19.51.01 中的符号: ?forEachPlayer@Level@@UEBAXV?$function@$$A6A_NAEBVPlayer@@@Z@std@@@Z如果仔细观察,可以发现插件中使用的遍历玩家的符号与当前最新版本BDS(1.19.51.01)之中的不符,而经过查询时间戳可以知道该插件的生成日期。经查维基百科,可以知道该插件是在1.19.50.02和1.19.51.01发布之间编译的
https://www.minebbs.com/attachments/1673339410766-png.40641/猜测:也许该插件并没有正常检测玩家数量重申
本插件仅供学习交流使用,下载后请在24小时内删除!由使用本插件产生的危害和问题,作者概不负责!请不要损害简幻欢的利益!!!!
6还真的有人敢发[贴吧_滑稽] 看不懂,但是感觉很厉害的样子 就是这东西让我用不上10-11-12号点吧[贴吧_滑稽][贴吧_茶杯]
页: [1]