博客文章

由 Lzpyy 发布

TokenPocket 闪退:从“系统兼容”到“魔改钱包”的取证复盘

案例背景:Vivo X30(V1938CT)在升级至较新系统后,打开 TokenPocket 会立即闪退。初步怀疑是系统兼容性问题。经用户同意,手机通过快递寄来处理。国庆假期我外出游玩,晚上回家后收到快递。原计划立即排查,但发现包裹中未附开机密码,于是联系中间人向用户索取锁屏密码,准备次日处理。 第二天拿到锁屏密码。虽然技术上或可尝试绕过锁屏,但为使流程更规范,并确保每一步操作尽量与用户确认,还是使用用户提供的密码解锁。进入系统后发现,该机运行的是定制版 Funtouch OS,常规数据提取方案并不适用。经过进一步分析,我顺利获取到所需数据。 从数据中解析出支付密码后,我通过中间人告知进展。原以为可以继续发起转账,但操作时报错:私钥与地址不匹配。继续检查数据库,发现某个字段缺少初始向量。提取并分析 APK 后,确认 TokenPocket 客户端是魔改版。 最终经核实,用户的钱包是由熟人帮忙安装的,钱包内显示的金额也是伪造的。后续结合相关线索,锁定嫌疑人。

比特币核心钱包伪造骗局揭秘:一个假钱包是如何诞生的

写在前面 多年来,我接到过几十位用户的咨询,内容惊人地相似:“我的比特币核心钱包密码忘记了,能帮我恢复吗?”他们每个人都信誓旦旦地告诉我,这钱包是自己的——不是买的,不是网上下载的,就是自己多年前创建后忘记了密码。 但当我拿到钱包地址或对应的哈希值,一查便发现:这些钱包地址在互联网上已经公开传播了数年之久。这不是巧合。这些所谓“自己的钱包”,绝大多数都是假钱包。 今天,我不打算讲具体的检测逻辑——那会间接给伪造者提供攻防思路。我想做的是,从技术角度演示伪造一个比特币核心钱包有多简单,以此提醒每一位读者: 不要买钱包文件。不要心存侥幸。网上叫卖的“沉睡大额钱包”,几乎全是骗局。你花真金白银买来的“沉睡巨鲸钱包”,可能只是一行代码的产物。 一、钱包文件长什么样? 在比特币核心客户端(Bitcoin Core)中,钱包文件保存在区块数据根目录下。 关键在于数据结构的演变: 为什么比特币核心要抛弃BDB?原因很直接: 但伪造钱包骗局,几乎全部针对BDB时代的钱包。 二、为什么假钱包都盯着“1开头”的老地址? 能被人伪造的钱包,必须满足一个先决条件: 公钥已经公开暴露。 这直接限制了可伪造的钱包类型—— P2PKH(Pay to Public Key Hash)格式,即以“1”开头的传统Legacy地址。 为什么? 而市面上叫卖的那些“大额沉睡钱包”,绝大多数都是早期地址,金额大、休眠久,且公钥已通过历史转出交易暴露在区块链浏览器上。 伪造者要做的,就是把这些公开数据塞进一个假钱包文件里。 三、伪造一个钱包有多简单? 让我来演示一下。以下操作仅在实验环境中进行,目的是揭露骗局原理。 需要准备什么? 实际操作 我从区块链富豪榜(rich list)上找了一个符合条件的地址(17MWdxfjPYP2PYhdy885QtihfbW181r1rn)。1开头,内有九千多枚比特币,且近年来有过转出记录。打开区块浏览器,找到那笔转出交易的详情: 以“02”开头的那一串,就是公钥。 然后,我用脚本将模板钱包中的公钥信息替换为目标地址的公钥,同步节点到最新高度…… 同步完成后,打开钱包——余额显示九千多枚比特币。输入任意密码(包括你设置的密码),客户端会报错“密码错误”。 这其实是客户端的安全机制在起作用:程序用你输入的密码尝试解锁私钥,然后用解锁后的私钥去推导公钥,再与钱包文件中记录的公钥做比对——不匹配,就报错。 但对于不知情的人来说,看到钱包里那九千多个币的余额,恐怕已经心跳加速了。 伪造样本:fake_wallet.dat 需使用支持DBD钱包的客户端,比如v0.20.0或者v0.22.0 地址: 17MWdxfjPYP2PYhdy885QtihfbW181r1rn MD5: deca72ea60c1318276dc1a38198362a9 SHA1: f11119d744aa6e38af5c2d8be1e57c10a6dfd2b7 四、市面上流传的假钱包从哪来? 一些网站专门售卖这类“大额钱包文件”,页面做得煞有其事,甚至标注“未破解”“高难度”等字样。 我随便举几个例子(不点名,但你们搜一下就能找到):…

关于我

搭个站的想法,在我脑子里转了好久。过去几年,我的主要精力都在工作和生活上,折腾挖矿和解密既是爱好也是工作。攒了一些经验,但一直没想好怎么向外界建立信任——毕竟市面上充斥着太多的中间商和包装,我既没精力去搞那些包装,也不想为了获客满嘴跑火车夸大宣传。 BTC发展了十六年,我是 2010 年 4 月入坑的(事后链上分析只有300个左右有余额地址)。那时废了很大功夫同步比特币核心钱包,同步完成之后试着挖矿,但没成功。后来到了2012年,通过 Bitcoin Faucet 用手机短信注册,领到了一些币,放在 MultiBit HD 钱包。回头想想,要是那个时候会用 BP 先给网站来一轮体检,或许又是另一番光景。离谱的是钱包文件我还刻了盘保存,后来光盘被我拿来玩飞盘飞到河里了。 后来时间一晃来的 2016 年 6 月。AMD 发布了 RX 480 8G,我买了一张蓝宝石涡轮卡用来跑 WPA2 握手包,Hashcat 算力大概 200k/s。后来咸鱼上看到有人加价在收这卡,了解以后正式成为了一名 ETH 矿工。那年夏天研究了各种卡,还买过一张 XFX Triple D HD 7990,功耗感人,算力50M+/s。后来陆续买了多张蓝宝石涡轮版 RX 480,没货了就补 XFX 的 470 4G 黑狼版本。那时的显存是有体质区别的,三星的性能最好,有些矿工拿到卡测试,非三星的直接退货。有的玩得更过分,用白条大量买入,免费试用,时间到了批量退货,空手套白狼。 当时挖矿需要考虑两个大件:主板和电源。花了 1000 元买了映泰 Z170GT7…