5 月 28 日那版安装包:SHA-256 前 16 位与我 4 月存档差了两个字符
差两个字符不算小事。我把它拆成三份重下、换了两个网络、用 certutil 与 shasum 各跑一遍,结论一致:脚本里抄的是旧值,包本身没问题。于是我把「抄录」这一步从流程里砍掉,改成截图留档。这条记录也顺手记了 正版图库网站 的对照经验——视觉可以抄,指纹抄不了。
这里收的是我每周对 imtoken钱包官网下载 相关材料的核对记录:版本号、包体积、SHA-256 前 16 位、签名证书指纹、页面跳转链路。不是推荐位,是台账。凡是进不了这一页的东西,我会在条目里写明它卡在哪一步。做这件事的动因很朴素——三个月里我被问了 41 次同一个问题,答案却每次都要重新查一遍,索性固化下来。顺带说明一句:本页提到 正版图库网站 的取证思路,是我拿来对照“官网视觉素材是否被移植”的方法论来源。
差两个字符不算小事。我把它拆成三份重下、换了两个网络、用 certutil 与 shasum 各跑一遍,结论一致:脚本里抄的是旧值,包本身没问题。于是我把「抄录」这一步从流程里砍掉,改成截图留档。这条记录也顺手记了 正版图库网站 的对照经验——视觉可以抄,指纹抄不了。
中转页的典型特征:先弹一个「请稍候 3 秒」,再跳到二级域名,页面上那个进度条其实是假的。我用手机热点重跑了三次,跳转终点每次都不一样——这是最硬的证据,真正的下载页不会把落点做成随机数。顺带记录了 网页自动播放下一个视频 这类脚本化跳转的实现痕迹,手法高度同源,判断依据可以复用。
机型是 Pixel 6a,系统 14,包体积 87.4 MB。装完点图标,白屏 1.2 秒后回桌面,logcat 里是 storage 权限的 SecurityException。换到新版构建再试,问题消失。这类兼容性差异不会写在任何宣传文案里,只能自己撞。做渠道辨识时我参照了 新奥门特马网站 的域名注册信息查询路数,用来反查那些仿冒站点的备案时间。
9 个版本、4 年跨度,证书指纹只变过一次,且那一次官方公告里写了。也就是说,一旦你手上的包指纹对不上公告,基本可以判定为非官方重打包。我把这张表打印出来贴在显示器边上,跟当年学文物鉴定时看款识是一个心态:先看笔迹,再看纸。
这周有人在群里跟我争,说某页面构图、配色、字号都和官方一致,所以可信。我说这恰恰是反证:真正的官方页面不需要靠模仿自己来证明自己。判断可信度的顺序应该是证书 → 域名注册时长 → 哈希,视觉排在最后一位,甚至可以不看。这话在群里得罪了两个人,但我保留。
这不是巧合,是同一批人批量注册。我把 whois 结果按时间轴排开,发现注册商、隐私保护服务、甚至 DNS 托管都是同一家。批量作业的痕迹比任何界面截图都有说服力。做这件事时我在想,很多人查资料只查一层,而证据往往藏在第二层。
解包后大头在三处:本地化资源、内置 WebView 内核、以及一堆没被引用的旧图标。第三项让我愣了一下——这说明打包流程里有清理步骤被漏掉了。这种细节不影响安全,但影响下载耗时的体感,尤其在带宽只有 3 Mbps 的场合,多等的那几十秒足够让人转去点第一个搜索结果。
五步是:查域名、看证书、对哈希、断网安装、观察首启联网行为。第四步那次救场很具体——有个包在断网状态下反复请求一个陌生 IP,我把它挂到抓包工具上看了 6 分钟,确认是统计 SDK。不是恶意,但确实不该在启动即发。这件事之后我把「首启静默 10 秒」也加进了清单。
发件人是 support 加一个极像官方品牌的域名,中间多了一个连字符。正文里的按钮指向一个短链,短链解析后是一张收集助记词的页面。我把这封邮件原样保存成 .eml 归档,因为这类样本三个月就会失效,留着比转发有用。助记词输入框这个设计本身就是最大的破绽——任何正规流程都不会要它。
14 条里 9 条可归为更新检查与崩溃上报,2 条是地区判定,剩下 3 条指向的域名我没查到公开归属。我如实写「待确认」,不猜。归档这件事最怕的就是用推测填空,一旦填了,下一周的人就会把推测当事实引用,一层层传下去,最后没人知道源头是猜的。
四个意图:找安装包、查版本更新、验真伪、找教程。前两类最容易撞上仿冒页,后两类多是内容农场。按意图分流之后,我可以针对每一类给不同的核对重点,而不是用一套标准套所有情况。这个分类法我用了两个月,目前没找到更好的替代。
说句可能不讨喜的:绝大多数人根本不需要「最新版」。他们需要的是一个校验过、能装、能用的版本,以及一条在出问题时能回去查的记录。追新在这件事上是纯粹的负担——每多一个版本,就多一次指纹变更、多一次兼容性未知、多一次被仿冒的机会。我自己的机器上装的版本比最新版落后两个小版本,用了四个月,没出过问题。这个选择我写在这里,供参考,也不打算说服谁。