• mingmeo
    电子竹知了
    ID game_center_zhuzhiliao版本 1.3.0插件制作者 mingmeo免费882 行 / 32.4 KBHook / 后台页
    传统玩具竹知了,按住画圈甩起来!全速摇加分,有瑕疵扣分
    app/plugins/game_center_zhuzhiliao/plugin.php
    开发日志已有 2 条

    此项目接受所有登录用户协助维护和提交更新。

    • banming
      banming
      版本 1.3.0 27c794dd0b42 更新:- 修复重要安全性问题 - 现在每次最多获得 100 积分 - 现在每分钟最多进行 3 次游戏release
    • banming
      banming
      版本 1.2.0 058dc2094414 更新:- 平衡性优化 - 新增可高度自定义的配置页面
    主楼
  • 质量报告

    插件质量报告

    插件:game_center_zhuzhiliao

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    game_center.register非系统hook否1----

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    plugin_zhuzhiliao_play_log

    字段类型可空默认值约束
    idid否-主键、自增
    user_iduint否--
    played_atuint否--
    #1
  • mingmeo

    赛博电子竹知了 - 游戏中心插件

    儿时玩物 | 传统玩具
    按住->手指画圈->哇哇哇~

    #2
  • mingmeo

    相关截屏

    paste-20260814-013818.png
    paste-20260814-013902.png

    #3
  • mingmeo

    版本 1.1.0 更新:

    竹知了 v1.1.0

    • 将最大获得积分改为 1000。
    • 优化物理仿真逻辑。
    #4
  • bbs1org

    可以考虑做个竹知了签到。每天签到的时候,还得竹知了一下。奖励的积分数随机范围,站长设置。
    @banming

    #5
  • mingmeo

    前往详情页↗

    #8
  • bbs1org

    🤩

    #11
  • mingmeo

    okay

    #6
  • Maser

    是消耗1积分,不是+1积分

    #7
  • mingmeo

    开始摇会消耗一积分 之后每摇一圈获得一积分

    #9
  • 桃子大人

    你这稳赚啊

    #10
  • mingmeo

    GAME_CENTER_ZHUZHILIAO 电子竹知了 v1.2.0

    • 平衡性优化
    • 新增可高度自定义的配置页面

    最后由 mingmeo 编辑于 2026-08-14 16:54
    #12
  • mingmeo

    相关截图

    paste-20260814-165439.png
    paste-20260814-165517.png

    #13
  • 蓝太阳

    @bbs1org
    打开玩下看看

    #14
  • bbs1org

    签到的时候可以玩

    #15
  • mingmeo

    可以把基础分数设置为0 这样永远不会赚钱

    #16
  • 蓝太阳

    多少要赚一点点的嘛
    paste-20260814-171202.png

    #17
  • mingmeo

    最低可以0.01 一百圈得一分

    #18
  • bbs1org

    有封顶吗

    #19
  • mingmeo

    最多转1000圈

    #21
  • 蓝太阳

    可以的,刚才转了六百多圈

    #20
  • bbs1org

    你可真有闲工夫

    #22
  • 350

    🔍 插件审查报告(对照《AI 开发规则》与开发者文档)

    🔒 安全问题

    1. 【严重】积分结算信任客户端数据,存在刷分漏洞:play() 直接用客户端提交的 bet 当作圈数(plugin.php:578、587 仅 min(1000)),派彩按 圈数×每圈基础分 计算(638 行),每次只扣 1 分成本(36 行 cost=1),净赚为 payout−cost(639 行)。攻击者可绕过前端直接 POST bet=1000,单次约净赚 199 积分且可无限重复,属无限刷分。建议改为服务端可验证的结算依据,或对圈数严格封顶并配合频率限制,确保净收益受控。

    ⚡ 性能问题

    未发现明显问题。

    🐛 功能/规范缺陷

    1. 逐圈计分完全失效:579-581 行读取的 avg_rps/roundness/round_data 在游戏中心核心调用中并未传入(只传 user_id/cost/bet/game),于是 593-601 行恒走兜底 rps=0、roundness=1,609-636 行的速度档位与瑕疵惩罚永不生效。建议把这些数据合并进 bet(JSON)提交并服务端校验。
    2. 内联脚本与全局变量:97-104 行内联输出 <script>,542 行暴露 window.__zhuzhiliao,均未用完整插件 ID 前缀,建议改 assets + data-* 注入并加 game_center_zhuzhiliao_ 前缀。
    3. HTML id 仅用 zhuzhiliao- 前缀(60-87 行),建议统一 game-center-zhuzhiliao-*。
    4. CSS 存在写死颜色/圆角/阴影(719-835 行),建议改用 var(--inverse)、var(--radius)、var(--shadow-base) 等变量。

    ✅ 修复优先级

    1. 修复积分刷分(严重)→ 2. 修复逐圈计分失效 → 3. 脚本/命名规范整改。
    #23
  • one

    350是307?不是233?

    #24
  • one

    @one 可以@ 自己吗?测试一下

    #25
  • mingmeo

    版本 1.3.0 更新:

    • 修复重要安全性问题
    • 现在每次最多获得 100 积分
    • 现在每分钟最多进行 3 次游戏
    #26
  • 350

    🔍 复核报告(v1.3.0,回应此前审查)· @banming

    ✅ 已确认修复

    1. 内联脚本与全局变量已清理:render() 不再输出 <script>,配置经 data-config 属性注入(plugin.php:107-113),JS 移入 assets 且不再暴露 window.__zhuzhiliao(plugin.php:436 IIFE)——正确。
    2. HTML id 前缀已统一为 game-center-zhuzhiliao-*(plugin.php:70-107)——正确。
    3. 缓解措施已加:bet 上限 1000→50(plugin.php:145-146),payout 封顶 100(plugin.php:215),新增 60 秒 3 次限频(plugin.php:154-157)。

    ❌ 未生效 / 新问题

    1. 【刷分仍在】结算仍完全信任客户端数据。核心 game_center.php:121-126 调用 play() 只传 user_id/cost/bet/game,POST 的 avg_rps/roundness/round_data 被丢弃(game_center.php:105 只取 bet),于是 plugin.php:148-150 恒读到 0/1/'',178-182 恒走兜底 rps=0.1/roundness=1,速度档位与瑕疵惩罚(plugin.php:189-213)永不生效——上一轮「逐圈计分失效」未真正修复。
    2. 攻击者直接 POST bet=50 得 payout=50×0.2=10、净赚 9 分/局(plugin.php:215-217),限频下仍约 27 分/分钟,可无限重复。建议改服务端结算(服务端生成结果),或将 rps/roundness 合入 bet(JSON) 并让核心透传、服务端校验。
    3. plugin.php:101 {$message} 未 h() 转义(当前仅服务端拼装数字文本暂未触发,建议 h($message))。

    💡 顺带建议

    JS 用匿名 IIFE(plugin.php:436),规则要求具名 IIFE;CSS 仍有写死:box-shadow rgba(0,0,0,.06)(374)、background rgba(0,0,0,.5)(387,应用 --backdrop)、border-radius:20px(390)、空值 color:(391)。

    总结:命名/脚本/上限已修,但结算信任客户端数据的刷分与逐圈计分失效仍在,插件不干净。

    #27
  • 359

    补充一点:v1.3.0 的「刷分」修复其实还没有真正堵住,根源在核心 game_center.php 而不是这个插件本身。

    game_center.php:105 只从 $_POST 取了 bet,game_center.php:121-125 调 call_user_func($game['play'], ...) 时传给游戏插件的 $ctx 只有 user_id / cost / bet / game 四个键,avg_rps、roundness、round_data 这几个字段整个请求周期里从未被核心读取、也没有转发给 play()。

    所以 game_center_zhuzhiliao.php:148-150 里

    $avg_rps = (float)($ctx['avg_rps'] ?? 0);
    $roundness = (float)($ctx['roundness'] ?? 1);
    $round_data_raw = (string)($ctx['round_data'] ?? '');

    这三行永远读到默认值(0 / 1 / 空字符串),round_data_raw 恒为空 → plugin.php:159-176 的校验分支永远走不到,直接落到 plugin.php:178-182 的兜底:每一圈都按 rps=max(0.1, 0)=0.1、roundness=1 计算,也就是恒定拿最低速度档位、零瑕疵惩罚的分数,跟前端摇得多快、转得多圆完全无关。

    按代码推算(未在站上实际刷分,纯读代码算账):直接对 /game_center 提交 game_id=game_center_zhuzhiliao&bet=50(不带 avg_rps/roundness/round_data),当前 points_per_round 默认 0.2,50 圈 × 0.2 = 10 分,扣 1 成本,净赚 9 分;限频是 60 秒 3 次,理论上限约 27 分/分钟,可以脚本无限循环刷,不需要真的会玩这个游戏。

    想要真正修好,两个方向选一个:

    1. 让核心 game_center_handle_play()(game_center.php:113-126)把 $_POST 里除了 bet 之外的字段也整体转发给 play()(比如统一传 $_POST 或者约定一个 extra 键),这样插件才能拿到逐圈数据;
    2. 或者插件自己把 avg_rps/roundness/round_data 打包进 bet 一起提交(比如 bet 直接是一段 JSON),因为 bet 是唯一确定会被透传的字段。

    第 2 种改法插件自己就能做,不用等核心更新,可能更快。

    #28
  • 8

    Screenshot_20260831_121348.jpg不知道问题,页面是卡住的,卸载重装也是一样!

    #29
  • mingmeo

    感谢您的反馈,正在进行调查。

    #30
  • mingmeo

    使用的什么浏览器?

    #31
  • zaiwai

    与29楼同样的问题。不能摇了,改成按钮点了。谷歌浏览器,其他浏览器应该也一样。

    #32
  • mingmeo

    尚不清楚怎么回事 我在电脑上webkit的和chrome都可以
    paste-20260909-185537.png

    #33
  • mingmeo

    不再建议您安装此插件
    why:

    • 平衡性: 可无限获取分数
    • bug: 在部分浏览器或设备上出现无法正常交互问题
    #34
  • one

    修一修

    #35
  • mingmeo

    不再考虑继续维护 无法规避刷分

    #36
  • one

    可惜了啊。想想办法?

    #37
  • mingmeo

    协作已开放,欢迎社区各位来继续维护

    #38

发表回复

登录后回复