DevForge

PROJECT INFO

StageIdea
Prioritymedium
CreatedMar 22
UpdatedMar 22

ACTIVITY TREND

Commits per week (8 wk)

LINKS

GitHub RepositoryWebsiteDocs

About This Project

Automated game interaction and analysis scripts built on the Frida dynamic instrumentation framework. Supports memory reading and manipulation, function hooking, real-time game state monitoring, and automated UI interactions. Used for game mechanics research, anti-cheat analysis, and building automated gameplay tools across multiple game titles.

README

花园小程序自动化工具

抖音小程序「花庄万」自动化脚本,通过 Frida 注入 Android 模拟器实现。

核心文件(正在使用)

文件说明
hook_flower_turbo.js主脚本 - 全自动farming(花循环、居民、订单、钻石、珍珠等)
dashboard.pyWeb 监控面板 - http://localhost:8080(支持手机访问)
farm_control.sh安全启停脚本(PID 跟踪,避免 pkill 误杀)

hd24 消消乐活动脚本

文件说明
hd24_exploit_v3.js消消乐刷分+NPC一步完成(每轮+6564分,自动领NPC礼盒,不开礼盒)

使用方法

# 1. 打开抖音 → 进入花庄万小程序 → 打开消消乐活动
# 2. 找到 minigame 进程
frida-ps -U | grep minigame
# 3. 注入脚本(优先尝试 minigame0)
frida -U -p <PID> -l ~/Documents/frida_scripts/hd24_exploit_v3.js
# 4. 在消消乐游戏里点一下触发

hd24 签名算法

  • 游戏签名: MD5(myScore.toString() + allScore.toString() + "hd24Sign123321")
    • myScore = 本轮之前的累计积分
    • allScore = 本轮获得的分数
  • API签名: 同主脚本 MD5(body + uid + token + ts + "nxc@5!80ri*G")

得分公式

multiplier = 1 + step_index * 0.1
score_per_block = floor(floor(multiplier * 10) * moveType)
step_score = score_per_block * total_blocks_in_step
numStr key = multiplier as string ("1", "1.1", "1.2"...)
total_score = sum of all step_score

hd24 API 命令

命令说明
hd24Info获取活动信息(积分、体力、礼盒)
hd24Move消耗体力移动 {"num":1}
hd24AddScore提交分数 {map, score, sign, type, str, numStr}
hd24GetNpcRwd领NPC奖励 {"id":1}
hd24GetTaskRwd领任务奖励 {"id":1-10}
hd24GetProgressRwd领进度奖励 {"id":1-20}
hd24GetRank查看排名

配置参数(hd24_exploit_v3.js)

参数默认值说明
steps15每轮消除步数
perType95每种类型消除数(满足NPC需求)
maxRounds137最大轮数(受体力限制)
每轮得分~6564由 steps 和 perType 决定

工具脚本(/tmp,按需使用)

文件说明
/tmp/scan_all_flowers.js扫描所有有效花种子ID
/tmp/probe_customer.js探测顾客订单API结构
/tmp/probe_customer2.js探测订单完成后返回的下一单需求
/tmp/sniff_customer.js抓包监听所有API调用

环境要求

  • macOS + Homebrew
  • Android 模拟器(MuMu/雷电/Google Emulator)
  • Frida 17.xpip install frida-tools,模拟器内 /data/local/tmp/frida-server
  • ADBadb connect 127.0.0.1:5555
  • Python 3:dashboard 依赖

快速启动

# 1. 连接模拟器
adb connect 127.0.0.1:5555

# 2. 启动 frida-server(模拟器重启后需要)
adb shell "/data/local/tmp/frida-server -D"

# 3. 打开抖音 → 进入花庄万小程序

# 4. 启动脚本
bash ~/Documents/frida_scripts/farm_control.sh start

# 5. 查看状态
bash ~/Documents/frida_scripts/farm_control.sh status

# 6. 停止
bash ~/Documents/frida_scripts/farm_control.sh stop

主脚本模块(hook_flower_turbo.js)

模块开关间隔说明
花循环ENABLE_FLOWER8秒种花→收获→升级(不浇水)
居民任务ENABLE_RESIDENT90秒居民1-8号完成任务
花艺制作ENABLE_CRAFT90秒首轮全量制作,后续按订单需求制作
顾客订单ENABLE_CUSTOMER90秒自动完成订单,记录下一单需求
钻石ENABLE_DIAMOND5分钟点赞、广告、日常任务、花精灵
HD22ENABLE_HD225分钟hd22任务领取
珍珠ENABLE_PEARL60秒广告珍珠、收获、雇佣、抽奖
花升级-5分钟用精华升级所有花
状态报告-10分钟输出delta统计

API 协议

  • 服务器: https://zhzwdl.youyuanh.cn/cmd/japi.php
  • 签名: MD5(body_json + uid + token + timestamp + "nxc@5!80ri*G")
  • 请求格式: {"m":"模块","c":"命令","p":{参数}}
  • 平台: pf=flowerzhangwandouyin

已知 API 命令

模块命令说明
flowersown种花 {"str":"1001=50001"}
flowergather收获
floweruproot拔除
flowerwater浇水
flowerupgradeFlower升级花 {"id":50001}
flowerrefreshLand查看当前土地状态
flowercreateArrangeFlowers制作花艺品 {"id":500101,"num":1}
flowerdealCustomerOrder顾客订单 {"id":1,"yes":1} (yes=1完成/yes=0拒绝)
flowercompleteResident完成居民任务 {"id":1}
flowercompleteResidentAd居民广告奖励
flowerarrangeSellOver展架收取
flowergetFreeGiftBag免费礼包
flowergetLikeRwd点赞奖励
flowergetDailyTaskRwd日常任务
floweradSpeedFlower广告加速花
floweraddWheelWater水车加水
floweranti_fraud_get_rwd反欺诈奖励
flowerElvesreceiveRwd花精灵奖励
pearlcomeIn进入珍珠系统
pearlad珍珠广告
pearlharvest收获珍珠
pearlhire雇佣 {"id":1}
pearldraw抽奖 {"num":10}
hdhd22GetTaskRwdHD22任务
heartgame心跳

账号信息

字段旧号新号
UID213004335213004514
SID213213
有效花数39种48种

新号48种有效花ID

50001-50025, 50027
51001-51010, 51013, 51021, 51024, 51025, 51038, 51042
52006, 52010, 52011, 52031, 52091
53002

旧号39种有效花ID

50001-50019, 50021, 50024
51004-51006, 51008-51010, 51015, 51021, 51024, 51038, 51042, 51043
52001, 52006, 52091, 52093, 52094
54002

花艺品ID规则

花艺品ID = 500000 + 花瓶类型*100 + 序号

花瓶类型数量ID范围
112500101-500112
28500201-500208
318500301-500318
420500401-500420
520500501-500520
620500601-500620
720500701-500720
1420501401-501420
1520501501-501520
1620501601-501620
1720501701-501720
192501901-501902

顾客订单智能逻辑

  1. 尝试 dealCustomerOrder yes=1 完成订单
  2. 成功后,响应 u.flower.customer 包含下一单需求:{arrangeId, num}
  3. 记录需求,下轮只制作需要的花艺品
  4. 首轮全量制作(不知道当前订单需要什么)
  5. 不使用 yes=0(会丢失当前订单)

安全注意事项

  • 不要用 pkill -f — 会误杀其他进程,已导致两次电脑崩溃
  • 使用 farm_control.sh 的 PID 跟踪方式管理进程
  • frida 异常退出可能导致游戏进程崩溃,需重启模拟器

历史/废弃文件

frida_scripts/ 下有大量历史探索脚本(api_gm_.py, hook__exploit.js 等), 是早期逆向分析过程中产生的,现在不再使用。如需清理可移到 archive/ 目录。

Leave Feedback

STATS

Commits6
Open Issues2
Progress0%

ACTIVITY

01Feb 23Feb 28Mar 5Mar 10Mar 15Mar 20OpenedResolved

RELEASE

Latest: idea

Mar 22

LABELS

Idea

RESOURCES

Docs (coming soon)

CONTRIBUTORS

1 contributor