# WS game pal **Repository Path**: hellomichael/ws-game-pal ## Basic Information - **Project Name**: WS game pal - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-06 - **Last Updated**: 2026-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ws-game-pal 「游戏伴侣」(`com.can.gamepal`) 激励广告 **全自动刷取** 工具。 广告**真实播放**(广告联盟按真实观看时长做服务端 SSV 校验才发奖,这一步省不掉、也不伪造), 脚本自动化的只是那些**恶心的人工环节**:点「播放激励广告」、关各种诱导/陷阱弹窗、播完关广告页、 到后端确认到账。核心解决的是这个 app 故意设计的**暗黑模式**(关不掉的弹窗、屏蔽返回键、广告卡死保活)。 > ⚠️ 仅供个人在**自己的设备、自己的账号**上,把本该自己手动看的激励广告自动化。 > 不伪造广告曝光(那是对广告主的欺诈),能刷到的都是真实播放完成的广告。 ## 依赖 - 一台 **已 root** 的安卓手机,USB 连接,`adb` 可见 - 手机 `/data/local/tmp/frida-server`(frida 17.x,与电脑端 frida-tools 同版本) - Mac/Linux:`adb`、`frida-tools`(17.x)、`python3`、`opencv-python`(`pip install opencv-python-headless`)、`perl` ## 快速开始 ```bash # 1. 首次抓取登录 token(启动 app 抓包,token 存到 ~/.gamepal-auto/token.txt) bash gamepal_auto.sh refresh # 2. 全自动刷 N 个(人可离开;手机保持亮屏解锁) bash gamepal_auto.sh 40 # 3. 只看当前预存进度 bash gamepal_auto.sh status # 4. app 更新/按钮变样导致找不到按钮时,重截按钮模板 bash gamepal_auto.sh captpl ``` ## 架构(每刷一个广告的流程) | 步骤 | 用什么 | 作用 | |---|---|---| | 重启到干净首页 | **adb** `am force-stop` + `monkey` | 每轮杀进程,规避广告卡死/重生/屏蔽返回 | | 注入 hook | **Frida** (`hook.js`) | 挂在广告 SDK 回调(Sigmob/快手)上 | | 定位并点按钮 | **找图**(OpenCV `matchTemplate`, 主) → uiautomator → 候选坐标 | 抗按钮 Y 漂移/动画,置信度匹配 `tpl/btn_play.png` | | 关陷阱弹窗 | **adb** uiautomator 读文字(`parse.py`) | 点「继续播放视频内容/确认放弃」等,绝不点下载/试玩 | | 播完关广告页 | **Frida** `onRewardAdRewarded → activity.finish()` | 类型无关地关掉任意 endcard,绕开假 X | | 识别毒创意 | 文字特征匹配 | "下载并安装领取奖励"等无法完成的创意 ~10s 秒跳 | | 确认到账 | **curl** 后端 `home/ad-progress`(每广告仅 1 次,带退避) | 权威判定,避开"刷新过于频繁"限流 | **为什么不能纯 adb**:adb 看不出"广告何时播完"、也戳不准假关闭键;Frida 感知 SDK 回调 + 底层 `finish()`; 后端计数才是"是否真到账"的唯一真相。三者配合缺一不可。 ## 已知限制(都是广告联盟侧,不是工具 bug) - **无填充**:联盟暂时没广告可放,脚本自动重试下一个。 - **"下载领奖"毒创意**:`自定义停留模板_自动打开` 类广告把视频钉死暂停,除非真下载推广 app 否则**谁都完成不了**(自动手动皆然)。脚本会 ~10s 识别并跳过。 - **库存会轮换**:能刷取率取决于当时联盟投什么创意,好时段刷得快、差时段慢。 - **接口限流**:后端 `home/ad-progress` 对高频查询返回"首页刷新过于频繁",脚本已用「每广告查一次 + 退避重试」规避。 ## 配置(换设备/重装需改脚本顶部) - `PKG` 包名、`FPORT` frida 端口、`FRIDA_BIN` 手机上 frida-server 路径 - `API_HOST` 后端、`APPDEV` uni-app 设备 id - 登录 token 不在代码里:运行时读 `~/.gamepal-auto/token.txt`(`refresh` 自动生成,**勿提交**) ## 目录 ``` gamepal_auto.sh 主脚本(自包含,运行时生成 hook.js/parse.py/findimg.py 到 ~/.gamepal-auto/) tpl/ 找图模板(按钮 + 常见逃生键) ```