隐私政策
本政策说明你在阅读 rea-reverse.com 或使用本站工具时会被收集哪些数据。本站没有账号、评论或联系表单,不会向你索取个人信息。如果你给我们发邮件,我们只会用你的邮箱地址和邮件内容来回复你。
广告与 Cookie
本站已配置为在教程、首页、分类页和工具页展示由 Google AdSense 投放的广告。工具页只有一个广告,位于正文之后;工具本身运行在广告读不到的单独框架里(见在线工具)。本页这样的站点信息页、工具列表页,以及收录不到三篇教程的分类页,不加载任何广告代码。
- 包括 Google 在内的第三方供应商会使用 Cookie,根据你以往访问本站或其他网站的记录投放广告。
- Google 使用广告 Cookie,使其及其合作伙伴能够根据你访问本站和/或互联网上其他网站的情况向你投放广告。
- 你可以前往 Google 广告设置关闭个性化广告;也可以在 www.aboutads.info/choices,或在欧洲通过 www.youronlinechoices.eu,关闭部分第三方供应商用于个性化广告的 Cookie。
- 参阅 Google 如何使用来自使用其服务的网站的信息以及 Google 的广告政策。
其他第三方广告供应商或广告网络也可能在本站投放广告,它们各自按照自己的隐私政策处理数据。Google 公布了可能使用的广告技术提供商名单。
访问统计
本站使用 Umami(Umami Cloud,由 Umami Software, Inc. 运营)统计汇总的访问数据,例如哪些页面被阅读、访客从哪个网站进入、浏览器、操作系统、设备类型、屏幕尺寸、语言和大致地区。这些数据只用于了解哪些教程和工具有用。
- Umami 的统计脚本不使用 Cookie,也不在你的浏览器里保存任何内容。访问按一个匿名标识归组:Umami 用站点 ID、你的 IP 地址和浏览器 User-Agent 加上每月轮换的盐计算出这个标识;IP 地址只在计算标识和估算大致地区时处理,不会作为字段存进统计记录(见 Umami 指标定义)。
- 我们不会向 Umami 发送你的姓名、邮箱或任何账户标识,也无法用这些统计数据识别你。
- Umami Cloud 在美国和欧盟都有服务器,数据存放在站点账户所选的区域,并按照 Umami 隐私政策处理。
- 统计脚本从
cloud.umami.is加载,数据发送到gateway.umami.is,并且只在 rea-reverse.com 本站运行。如需退出,用内容拦截插件屏蔽这两个域名即可。
在线工具
APK 分析器(也以 Google Play 上架合规体检页面提供)、EVM 选择器提取、WASM 分析、HAR / SAZ 接口归纳、.NET 元数据与 IL 查看器、ASAR 解包与 Electron IPC 分析、JS bundle 与 source map 还原、原生二进制概览、Java class / JAR 版本检查、Protobuf 解码、签名证书指纹查看、X.509 证书解析、文件类型识别、R8 / ProGuard 堆栈还原、iOS 描述文件与 IPA 查看器、二进制 plist 查看和 AndroidManifest.xml 解码对你提供的文件、字节码、堆栈或粘贴内容的处理全部在浏览器中完成:内容在本地的 Web Worker 里读取,不会上传到本站、Google 或任何第三方;关闭页面后不保留任何与文件相关的内容。
每个工具都运行在工具页(rea-reverse.com)里的一个单独框架(iframe)中,框架来自 tools.rea-reverse.com。工具页放正文和一个广告;框架里放工具本身:输入框、文件选择、需要时的密码框,以及报告。由于框架来自另一个源(origin),浏览器不允许广告脚本或工具页上的任何其他脚本读取你粘贴或输入的内容、你选择的文件或报告。框架有自己的内容安全策略,拦截它的脚本能发起的所有请求(connect-src 'none',脚本只能来自 tools.rea-reverse.com,不加载任何第三方资源),并且只允许 rea-reverse.com 嵌入它。框架不能自行打开窗口或让工具页跳转;只有你点击报告里的链接时才会打开页面。框架传给工具页的只有自身高度和下面列出的统计事件,再由工具页发送给 Umami。每个工具页还提供单独打开框架的链接(例如 X.509 证书解析):这样打开时没有广告,也不发送任何统计事件。如何在浏览器开发者工具里自己核对这些,每个工具页的“如何自己验证”一节都有说明。
JavaScript 反混淆对你粘贴或打开的代码也是同样处理:在没有网络权限的 Web Worker 里转换,从不执行,关闭页面后也不会保留。
使用这些工具时,最多只会发送下面这些 Umami 事件,每个字段都只有固定的粗粒度取值(和普通页面访问一样,Umami 会附上工具页的地址和标题):
| 事件 | 字段与可能的取值 |
|---|---|
apk_analyze |
kind:apk 或 aab;size:<10M、10-50M、50-200M 或 >200M;outcome:ok 或 error;code(仅出错时):分析器的固定错误码之一,例如 NOT_ZIP、TIMEOUT;fails:未通过的检查数量;ms:<2s、2-10s 或 >10s |
apk_export |
format:json、html 或 print |
evm_analyze |
outcome:ok 或 EVM 工具的固定错误码之一,例如 INVALID_HEX、EOF_UNSUPPORTED;fns:找到的函数数量区间 0、1-10、11-50 或 >50;ms:<2s、2-10s 或 >10s |
wasm_analyze、wasm_wat |
outcome:ok 或 WASM 工具的固定错误码之一,例如 NOT_WASM、WAT_FAILED;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
har_analyze |
outcome:ok 或 HAR 工具的固定错误码之一,例如 NOT_HAR、TIMEOUT;n:归纳出的接口数量区间 0、1-10、11-100、101-1000 或 >1000;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
dotnet_analyze |
outcome:ok 或 .NET 工具的固定错误码之一,例如 NOT_DOTNET、NATIVE_AOT;n:类型数量区间 0、1-10、11-100、101-1000 或 >1000;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
dotnet_il |
outcome:ok 或 .NET 工具的固定错误码之一;ms:<2s、2-10s 或 >10s |
asar_analyze |
outcome:ok 或 ASAR 工具的固定错误码之一,例如 NOT_ASAR;n:归档内文件数量区间 0、1-10、11-100、101-1000 或 >1000;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
asar_fuses |
outcome:ok;format:elf、pe、macho、fat(通用 Mach-O)或 plist(Info.plist);n:fuse 组数或完整性条目数区间 0、1-10、11-100、101-1000 或 >1000;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
asar_file |
outcome:ok 或 ASAR 工具的固定错误码之一,例如 UNPACKED;size:<10M、10-50M、50-200M 或 >200M(取出的单个文件);ms:<2s、2-10s 或 >10s |
sourcemap_analyze |
outcome:ok 或 source map 工具的固定错误码之一,例如 NOT_SOURCE_MAP、LIMIT_EXCEEDED;map:map 的来源,file、inline 或 none;n:map 中源文件数量区间 0、1-10、11-100、101-1000 或 >1000;size:<10M、10-50M、50-200M 或 >200M(所有文件合计);ms:<2s、2-10s 或 >10s |
sourcemap_lookup |
outcome:ok 或 source map 工具的固定错误码之一;n:查询的位置数量区间 0、1-10、11-100、101-1000 或 >1000;ms:<2s、2-10s 或 >10s |
sourcemap_file |
outcome:ok 或 source map 工具的固定错误码之一,例如 NOT_FOUND;size:<10M、10-50M、50-200M 或 >200M(预览或下载的单个源文件);ms:<2s、2-10s 或 >10s |
sourcemap_zip |
outcome:ok 或 source map 工具的固定错误码之一;n:.zip 内文件数量区间 0、1-10、11-100、101-1000 或 >1000;size:<10M、10-50M、50-200M 或 >200M(.zip 的大小);ms:<2s、2-10s 或 >10s |
binary_analyze |
outcome:ok 或二进制工具的固定错误码之一,例如 UNKNOWN_FORMAT、MALFORMED;format:elf、pe、macho、fat(通用 Mach-O)或 none;arch:x86、x86-64、arm、arm64、riscv、mips、ppc、other 或 none;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
java_analyze |
outcome:ok 或 Java 工具的固定错误码之一,例如 UNKNOWN_FORMAT、MALFORMED_ZIP;kind:class、jar、war、ear、aar、zip 或 none;n:类数量区间 0、1-10、11-100、101-1000 或 >1000;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
java_explain |
outcome:ok 或 none(粘贴的报错里是否找到了 class 文件版本或 Java 版本号);n:找到的条目数区间 0、1-10、11-100、101-1000 或 >1000。粘贴的文本本身绝不发送 |
protobuf_decode |
outcome:ok、malformed(解码到某个 wire format 错误处停止)或 protobuf 工具的固定错误码之一,例如 INVALID_HEX;input:hex、base64、file 或 none;grpc:frames 或 none;size:<10M、10-50M、50-200M 或 >200M(粘贴的文本或文件大小);ms:<2s、2-10s 或 >10s |
cert_analyze |
page:keystore 或 x509(两个证书工具中的哪一个);outcome:ok 或证书工具的固定错误码之一,例如 UNKNOWN_FORMAT、UNSUPPORTED;format:pem、der、pkcs7、jks、jceks、pkcs12、apk、aab 或 none;integrity:ok、bad、unchecked、none 或 na(密钥库完整性校验结果);n:证书数量区间 0、1-10、11-100、101-1000 或 >1000;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
filetype_identify |
outcome:ok 或文件类型工具的固定错误码之一,例如 EMPTY、READ_FAILED;family:首个结果的粗粒度类别,取值为 executable、bytecode、archive、image、media、document、database、firmware、disk、crypto、text、other、unknown 或 none;conf:high、medium、low 或 none;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
retrace_run |
outcome:ok 或堆栈还原工具的固定错误码之一,例如 NOT_MAPPING、MALFORMED_MAPPING;n:粘贴的堆栈里的帧数区间 0、1-10、11-100、101-1000 或 >1000;mapped:其中被 mapping 覆盖的帧数,区间相同;size:<10M、10-50M、50-200M 或 >200M(mapping 文件的大小);ms:<2s、2-10s 或 >10s |
jsdeob_run |
outcome:ok 或反混淆工具的固定错误码之一,例如 PARSE、TOO_LARGE;from:paste 或 file;strings:字符串数组解码状态,decoded、none、failed 或 off;bundle:webpack、browserify 或 none;n:打包模块数,取值 0、1-10、11-100、101-1000 或 >1000;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
jsdeob_zip |
n:.zip 里的模块数,取值 0、1-10、11-100、101-1000 或 >1000 |
ios_analyze |
outcome:ok 或 iOS 工具的固定错误码之一,例如 UNKNOWN_FORMAT、NO_APP;kind:profile、ipa、app、xcarchive、info-plist、entitlements、privacy、macho 或 none;ptype:development、adhoc、appstore、enterprise、developer-id、mac-appstore 或 none(描述文件类型);fails:未通过的检查项数量区间 0、1-10、11-100、101-1000 或 >1000;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
plist_convert |
outcome:ok 或 plist 工具的固定错误码之一,例如 UNKNOWN_FORMAT、MALFORMED_PLIST;format:binary、xml 或 none;keyed:yes 或 no(是否解码了 NSKeyedArchiver 归档);size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
axml_decode |
outcome:ok 或 Manifest 解码工具的固定错误码之一,例如 TEXT_XML、MALFORMED_AXML;kind:axml、arsc、apk、aab 或 none;n:资源数量区间 0、1-10、11-100、101-1000 或 >1000;size:<10M、10-50M、50-200M 或 >200M;ms:<2s、2-10s 或 >10s |
这些事件绝不包含文件名、包名、版本号、证书、哈希、字节码、选择器、域名、URL、请求头、Cookie、类型名或方法名、归档内路径、IPC 通道、源文件路径、代码位置、报错堆栈、节区名、符号名、库名、字符串、类名或包名、清单(MANIFEST.MF)字段值、粘贴的报错文本、protobuf 字段号或字段值、密钥库别名或密码、指纹、Bundle ID、团队 ID、描述文件名称或 UUID、设备 UDID、entitlement、识别出的格式名称、字节、偏移或文件的任何其他内容。你导出的报告在浏览器中生成,只保存在你自己的设备上。
APK 分析器还会在浏览器里计算整个文件的 SHA-256 哈希,并显示一个在 VirusTotal 上搜索该哈希的链接。页面不会自己打开或请求这个链接。只有你点击后,浏览器才会打开 virustotal.com,地址里只有这个哈希(不发送来源页面),此时适用 VirusTotal 自己的隐私政策。哈希绝不会发送给 Umami 或任何第三方。使用“与上一版本比较签名”时,你选择的第二个文件也同样只在本地读取,不会发送到任何地方;类浏览器显示的类名和方法名同样只留在页面里。
签名证书指纹查看可以输入密钥库密码。密码是在工具框架里输入的,页面其他部分(包括广告)读不到它。密码和文件一起交给该工具的 Web Worker,只在那里用于校验密钥库、解密其中的证书,分析结束即丢弃;它不会保存在页面或浏览器存储中,不会写入日志,也绝不会发送到本站、Google 或任何第三方。密钥库里的私钥从不解密。
欧洲经济区、英国和瑞士用户
对于来自欧洲经济区、英国和瑞士的访客,本站只会配合经 Google 认证、实现了 IAB 透明度与同意框架(TCF)的同意管理平台(CMP)展示广告。在使用个性化广告及其依赖的 Cookie 之前,CMP 会先征求你的同意;你可以随时通过同一个同意对话框修改或撤回选择。如果你不同意,Google 可能会展示非个性化广告或受限广告。
字体
页面从 Google Fonts 加载网页字体,因此你的浏览器会向 Google 服务器发送请求,其中包含你的 IP 地址。工具框架使用本站自带的字体,不向 Google 发送请求。详见 Google Fonts 隐私常见问题。
服务器日志
本站是托管在 Cloudflare Pages 上的静态网站。为交付和保护网站,Cloudflare 可能处理 IP 地址、User-Agent、请求的 URL 等常规请求数据,详见 Cloudflare 隐私政策。除上文所述的 Umami 外,本站不运行其他统计脚本。
外部链接
教程中会链接到其他网站,例如 GitHub 上的 REA 仓库、npm 和 rea.tools。这些网站有各自的隐私政策。
联系
隐私相关请求或对本政策的疑问,请通过联系页面联系我们。
变更
如果本政策有变动,页面顶部的日期会随之更新。