REA 逆向实战:还原 Chrome 恐龙游戏 1880 行源码并本地复跑(附 Windows 门禁修复)

先看两段动图:同一只恐龙,一段原版,一段逆向版

断网时那只小恐龙,按空格跳仙人掌。它有个所有人都知道但没人深究的秘密:越玩越快。

第一段,Chrome 恐龙游戏原版(网页 chromedino.com 实机):

第二段,逆向版——从网页里拆出来的代码,在我自己电脑上跑起来的画面:

看出差别了吗?第二段右上角多了个 SPEED 读数,实时在跳:6.116、6.138、6.174……每帧加 0.001。飞到 13 就封顶,按 60 帧每秒算,开局 11 秒后就到了极速。你以为越玩越难,过了那道坎其实它在原地踏步。读数是我加的,游戏本体和 Chrome 里那只一模一样。

逆向出的这份代码,连同玩法说明,已经开源:https://github.com/TaurenRen/chrome-dino-recovered 。你把它下载下来,起个本地服务,按空格就能玩第二段动图里那只恐龙。

拆它的工具叫 REA,110k star

REA(Reverse Engineer Anything)是一个把逆向工程塞进 MCP 的工具:装上它,你的 AI 助手就能拆网页、拆应用、拆二进制。它上个月冲到 110k star,是现在逆向领域最火的开源项目。

它最特别的地方是证据系统:每条结论都带 evidence_id 和置信度,只授信自己跑过的操作。你的 AI 助手回答"这个页面里有什么"时,给的是字节指纹和结构化报告,而不是"我觉得大概是"。

对普通人,它的价值不在于当黑客,而是看懂一个东西到底怎么写的。比如天天玩的恐龙游戏,规则没人说清过,那就自己拆开看。

实操:拆恐龙游戏,四步

每一步我都实机截图了,命令照抄就能跑。

第一步:起一个带调试口的 Chrome。按 Win 键,输入 cmd,回车,粘贴这行回车(cmd 窗口实际执行的样子如下):

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222

回车后会打开一个新 Chrome 窗口,看起来和平时一样,但它已经把"调试入口"开在了 9222 端口。(如果你的 Chrome 装在别的路径,把引号里换成你自己的安装路径即可。)

第二步:在这个 Chrome 里打开恐龙游戏网页。地址栏输入 chromedino.com 回车。这是社区做的恐龙游戏镜像站,和 Chrome 断网页面里那只一模一样。打开后长这样:

第三步:装 REA,一句话出分析报告。再开一个 cmd 窗口,粘贴(先装一次:npm install -g rea-agents):

rea list-browser-targets http://127.0.0.1:9222 rea analyze-web-bundle http://127.0.0.1:9222 上一步列表里的目标ID

第一条列出这个 Chrome 里打开的页面,复制恐龙游戏那行的 target_id,塞进第二条。我实跑的输出:

页面上 7 个脚本全部抓到,每个带 SHA-256 指纹,全程只是看,不执行目标页面任何代码。75632 字节那个就是游戏本体。

第四步:把压缩代码还原成可读源码。三行命令(第三条的反编译引擎装一次:npm install -g wakaru):

rea analyze-web-bundle http://127.0.0.1:9222 目标ID --full-output > capture.json rea export-web-scripts capture.json scripts rea recover-javascript-sources scripts\game.js recovered

注:第二条报"找不到文件"的话,把第一条的输出存成 capture.json 再跑。第四条要求设置环境变量 REA_WAKARU_COMMAND 指向 wakaru.exe,Windows 上会报"仅支持 Linux"的错,这正是下一节要拆的墙。

出结果的瞬间是这么个东西:1880 行、变量名清楚的完整游戏源码。在本地打开 recovered\modules\bundle.js,搜 ACCELERATION,一眼看到游戏参数表:

速度 6,每帧加 0.001,封顶 13。第二段动图里右上角那个读数,就是这段配置在跑。越玩越快的执行代码就在同文件 L504 附近:

this.distanceRan += this.currentSpeed * deltaTime / this.msPerFrame; if (this.currentSpeed < this.config.MAX_SPEED) { this.currentSpeed += this.config.ACCELERATION; }

逆向出的代码真的能跑:本地启动

光"看懂"不够,还得验证这代码是活的。我把还原出的源码配了个最小启动页,本地起服务,恐龙就在自己电脑上跑起来了,也就是开头第二段动图。

想自己试,三步:

  1. 打开 https://github.com/TaurenRen/chrome-dino-recovered ,绿色 Code 按钮里 Download ZIP,解压
  2. 在解压的文件夹里按 Win+R 输入 cmd 回车,粘贴 python -m http.server 8777
  3. 浏览器打开 http://127.0.0.1:8777 ,按空格,开跑

你自己的电脑上,跑着从别人网页里拆出来的游戏。一份死文件只能供着,这份代码能启动、能改、能再创作,"逆向出来的是活的东西",到这里才算证明完。

顺手把"恐龙为什么越跑越快"改成一个数字(把 ACCELERATION 0.001 改成 0.01),存档刷新,恐龙会快十倍地疯起来。改代码这件事,从这里就不再神秘。

中间撞的墙:Windows 用户被一行代码拦在门外

上面第四步,我在 Windows 上第一次跑直接被拒:

capability_unavailable: Provide an absolute REA_WAKARU_COMMAND pointing to a Wakaru ^1.13.0 Linux x64 binary ...

注意最后四个字:Linux x64。去翻 REA 的源码,判断平台的那行写死了"只许 Linux 通过",你的 Windows 装得再好它也不看一眼。

问题在哪?它用的反编译引擎 Wakaru,npm 包里明明带着 Windows 和 macOS 的二进制,我在自己机器上跑 wakaru 一切正常。这是 REA 把"引擎早期只发 Linux 版"的历史假设,焊成了对所有用户的永久限制。

修法不复杂:平台判断放开到三大系统;Linux 专用的资源限制器在别的系统上没有就跳过,保留它原有的超时、输出上限、进程回收三重兜底。改动 5 个文件,收益是全部 Windows 和 macOS 用户。

修完的三层验证:类型检查零错误、单元测试 8/8 通过、Windows 11 实跑。75KB 脚本 1 秒内还原完成,产物与手工运行逐字节一致。

两个仓库都在我的 GitHub:

https://github.com/TaurenRen/rea:REA 修复版,Windows/macOS 直接用https://github.com/TaurenRen/chrome-dino-recovered:恐龙游戏还原源码,可玩

这工具适合谁

值得装的:想看懂竞品网页交互逻辑的;给 AI 编程助手加逆向能力的(接上 REA,助手就能"看见"网页内部);做技术教程需要可信实测的创作者。

不值得的:想拆付费软件的,REA 文档明确禁止未授权目标;想替代 IDA/Ghidra 做原生逆向的,它是入口不是天花板。

边界说清楚:它只拆 JS 和网页层,原生程序的深度反编译另一条线;我的 fork 解决的是 JS 恢复这一个门禁,一条命令变逆向工作站的事它做不到。但想看懂一个网页里藏着什么,现在,你手里有钥匙了。

相关新闻

Python股票数据处理骨架:行情获取、SQLite存储与信号触发

Python股票数据处理骨架:行情获取、SQLite存储与信号触发

简介&#xff1a;这是一套面向Python初学者与金融应用开发者的股票交易系统实战源码&#xff0c;聚焦用户管理、股票交易、行情展示、数据查询与交易分析五大核心模块&#xff0c;帮助学习者掌握Python在金融系统开发中的工程化实践。资源共143个文件&#xff0c;包含29个Pytho…

2026/10/20 10:34:16 阅读更多 →
基于龙伯格观测器的永磁同步电机负载转矩估计(降阶负载转矩观测器+参考文献)

基于龙伯格观测器的永磁同步电机负载转矩估计(降阶负载转矩观测器+参考文献)

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数学建模、数据处理、算法改进、程序设计科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;完整代码获取 定制创新 论文复现私信&#x1f34a;个人信条&#xff1a;做科研&#xff0c;博学之、审问之…

2026/10/20 10:34:16 阅读更多 →
StartOS Patch-DB技术详解:实时状态同步的魔法实现

StartOS Patch-DB技术详解:实时状态同步的魔法实现

StartOS Patch-DB技术详解&#xff1a;实时状态同步的魔法实现 StartOS是一款专为自托管优化的图形化服务器操作系统&#xff0c;其核心技术之一就是Patch-DB——一个基于差异的数据库&#xff0c;为系统提供高效的实时状态同步能力。本文将深入解析Patch-DB的工作原理、核心特…

2026/10/20 10:33:14 阅读更多 →

最新新闻

贪心题目:受标签影响的最大值

贪心题目:受标签影响的最大值

文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题&#xff1a;受标签影响的最大值 出处&#xff1a;1090. 受标签影响的最大值 难度 5 级 题目描述 要求 有一个 n\texttt{n}n 项的集合。给定两个整数数组 values\…

2026/10/21 1:10:54 阅读更多 →
【漏洞修复】 CVE Linux 系统应用漏洞修复笔记

【漏洞修复】 CVE Linux 系统应用漏洞修复笔记

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 1:10:54 阅读更多 →
基于Python+MySQL的员工档案管理系统

基于Python+MySQL的员工档案管理系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 1:10:54 阅读更多 →
什么是GC

什么是GC

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 1:10:54 阅读更多 →
Feign踩坑源码分析 -- 请求参数分号变逗号

Feign踩坑源码分析 -- 请求参数分号变逗号

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 1:10:54 阅读更多 →
MIPI D-PHY一致性测试失败排查:从CTS规范到Layout与调参的工程实践

MIPI D-PHY一致性测试失败排查:从CTS规范到Layout与调参的工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 1:09:54 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事&#xff1a;AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里&#xff0c;按宣传口径&#xff0c;本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”&#xff0c;而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起&#xff1a;用户到底在追求什么“封号重开”这四个字&#xff0c;放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流&#xff0c;背后是大量的时间和精力成本。正常情况下&#xff0c;没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”&#xff0c;而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时&#xff0c;就意识到&#xff1a;单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →