软件逆向分析

Toobit App 逆向分析报告:中心化记账、远程更新与 TLS 配置风险

基于 Toobit 6.1.6 Android APK 静态分析,拆开看它的交易、AI 智投、矿机、网络请求和远程更新边界。

Toobit App APK 逆向分析报告封面

本文只分析当前 APK 样本中的代码、资源和配置。静态分析能说明客户端做了什么,不能单独证明服务器行为、资金去向或运营方意图。未执行登录、下单、充值和提现。

一、样本和分析范围

分析样本为 Toobit 6.1.6 Android APK,包名为 cc.toobit.android,入口类为 io.dcloud.PandoraEntry。应用使用 DCloud / uni-app 技术栈,主要业务逻辑位于 WebView 资源中的 app-service.js

原始样本 SHA-256:

C6BBAC466162FE7AB94A6BADB75F9BB3880FF409CE20903A51B3812AECE933C9

本次使用 JADX、Apktool 3.0.3、资源搜索和 Smali 搜索进行静态检查。没有连接真实账户,也没有向服务端发起登录、充值、交易或提现请求。因此,本文把结论分成三类:

  • 已证实:APK 中存在直接代码、配置或调用证据。
  • 未发现:在当前样本和搜索范围内没有找到对应实现。
  • 待动态核验:需要服务器响应、运行时流量或链上记录才能确认。

二、先说结论

观察项当前结论证据边界
本地后门未发现典型远程 Shell、Accessibility 服务、隐蔽常驻组件或助记词窃取代码。只覆盖当前 APK,不覆盖服务端和后续远程 WGT。
TLS 配置CustomTrustMgr 的证书校验方法为空,存在通信完整性风险。需要在运行时确认具体请求是否都经过该管理器。
业务形态交易、理财和矿机主要通过中心化 HTTP API 完成。APK 未出现链上签名和广播流程,不能据此证明后台没有连接外部系统。
AI 智投客户端展示产品、购买、转入转出和收益记录。未发现模型、推理或策略实现,收益来源仍需服务端取证。
矿机客户端没有真实挖矿所需的算力和矿池逻辑。不能仅凭客户端证明运营方没有任何外部矿池。
远程更新服务器可下发 WGT 地址,替换 JavaScript 业务代码。需要继续审查更新包内容、签名和发布权限。

三、网络层:请求发往哪里

统一请求模块会设置 ba-user-tokentokenserver: 1think-langAccept-Language 等请求头。主要域名会根据当前日期和小时生成前缀。

用途基址特征代码用途
普通 APIhttps://<动态前缀>.toobtc.com账户、首页、理财和常规业务
行情 / K 线https://<动态前缀>.toobit-aacn.fooK 线、深度和成交数据
合约 APIhttps://<动态前缀>.toobit-aacn.top合约参数、买入、卖出和订单
图片资源https://oss.toobit-aacn.top图片和媒体资源
更新服务https://up.upaosoaad.one版本信息和 WGT / APK 下载地址

动态域名前缀会随小时变化。它可能用于负载切换、流量调度或其他运营设计,单凭 APK 无法判断真实目的。报告记录的只读检查中,当前分析环境无法建立到动态 API 和更新域名的 TCP/HTTPS 连接,也没有得到账户、订单或资金响应。

四、合约交易:客户端更像 API 操作台

合约页面对应 pages/trade/trade,接口模块包含以下请求:

操作接口客户端字段
查询参数POST /api/contract_order/contractInfokline_type
买入POST /api/contract_order/buykline_typepricenum
卖出POST /api/contract_order/sellorderId
订单列表POST /api/contract_order/listpagepagesizestatuskline_type

这些请求标记为 isCC: true,发送到合约域名。K 线、深度和成交也来自 HTTP 接口,例如 /api/coin_data/tickerInfo/kline/depth/trade

能确认的是:当前 APK 中的买卖动作是平台接口调用,未发现 EVM、Solana 或 Tron 的 RPC、钱包签名、eth_sendRawTransaction 或类似广播流程。

不能确认的是:后台一定伪造价格、一定没有外部撮合,或者一定拒绝提现。要判定交易真实性,需要将订单响应、结算记录、提现哈希和公开链或交易所流水逐笔对应。

五、AI 智投:名字里有 AI,不等于客户端真的在推理

AI 智投页面主要通过 pages/treasure/treasurepurchasetransfer 等页面调用后台 API:

  • POST /api/coin_management/index:产品列表。
  • POST /api/coin_management/detail:产品详情。
  • POST /api/coin_management/buy:购买产品。
  • POST /api/coin_management/transferIn / transferOut:转入和转出。
  • POST /api/coin_management/managementDynamicList:动态数据。
  • POST /api/coin_change/managementIncomeList:收益记录。
  • POST /api/management_order/list:购买记录。

产品名、结算币、封闭天数、发行量、剩余量、购买范围、价格、收益率和收益币种,都来自列表或详情响应。购买记录的进度条,则用服务器返回的创建时间、到期时间和当前时间在客户端计算。

在当前 APK 中没有发现模型文件、推理库、策略参数、量化计算或本地 AI 决策代码。更准确的描述是:客户端提供了一个中心化理财订单界面,产品逻辑和收益数字由服务器控制。这不等同于证明后台没有真实策略,但界面本身不能证明“AI 投资”真实存在。

六、矿机:客户端没有发现挖矿计算

矿机页面对应 pages/machine/machine,相关记录页会请求矿机列表、租赁和购买记录:

操作接口字段示例
矿机列表GET /api/miners/indexpagepagesize
租赁 / 购买POST /api/miners_order/leaseminersIdpricesettlementCoinNamenumfundPassword
购买记录POST /api/miners_order/listpagepagesizestatus

记录页面使用服务器返回的 gained_incomeestimated_incomenum 绘制收益进度。APK 中没有发现哈希循环、矿池地址、Stratum / WebSocket 挖矿协议、工作量证明提交或链上奖励领取逻辑。

所以从客户端证据看,它更像服务器记账的“矿机租赁”产品,而不是手机本地挖矿。要证明外部确有算力,还需要运营方提供可核验的矿池账户、算力曲线、奖励交易和矿池到用户的结算关系。

七、广告、跳转与远程更新

Manifest 中包含 DCloud WebView、下载服务和广告文件 Provider。首页轮播数据来自 /api/index/carouselList,点击后可以打开服务器下发的外部 URL、应用内页面或富文本详情。

静态代码能证明广告素材、轮播链接和落地页存在服务端下发路径,但不能据此证明广告主或商品真实可靠。网页跳转是代码允许的行为,不等于对目标站点背书。

更值得注意的是更新模块会请求 /api/index/appInfo。当版本信息变化时,客户端可以读取 wgtDownloadUrl,通过 plus.runtime.install() 安装 WGT 并重启。WGT 可以替换 WebView 中的 JavaScript 业务代码,意味着服务器具备在不重新发布 APK 的情况下改变业务逻辑的能力。

这是一条供应链风险边界:需要继续确认 WGT 是否有独立签名校验、更新地址是否固定、发布权限由谁掌控,以及更新包是否经过可审计的版本管理。

八、TLS、权限和后门检查

1. TLS 证书校验风险

cc.toobit.android.CustomTrustMgr 中的客户端和服务端证书校验方法为空,getAcceptedIssuers() 返回空数组。DCloud 会按“包名 + .CustomTrustMgr”的规则动态加载它。

如果该管理器实际用于业务请求,就意味着客户端可能接受未经严格验证的证书,中间人可以伪造通信端点。这会影响登录令牌、订单参数和返回数据的完整性。当前报告把它标记为严重通信安全风险,但仍应通过运行时抓包和证书替换测试确认影响范围。

2. 明文和敏感权限

  • Manifest 设置了 android:usesCleartextTraffic="true"
  • 声明了 REQUEST_INSTALL_PACKAGESINSTALL_PACKAGESREAD_LOGSWRITE_SETTINGSGET_ACCOUNTS 等敏感或历史权限。
  • REQUEST_INSTALL_PACKAGES 存在重复声明。

权限声明不等同于权限已经成功使用,但它扩大了应用需要被审查的范围。尤其是安装权限与远程更新机制结合时,应重点审查更新来源、用户确认流程和包签名。

3. 当前样本中未发现的内容

  • 未发现自定义 Accessibility 服务、设备管理员、隐蔽开机自启 Receiver 或远程命令执行入口。
  • 未发现助记词、私钥、WalletConnect、MetaMask、EVM / Solana / Tron RPC 或本地交易签名流程。

“未发现”只适用于当前 APK 和已解包资源。服务端逻辑、运行时动态加载内容和后续 WGT 仍然需要单独检查。

九、这份报告能证明什么,不能证明什么

问题静态分析能回答的部分仍需补充的证据
是否真实交易客户端是否调用中心化买卖 API,是否包含链上签名。后台撮合、订单结算、提现哈希和公开市场流水。
是否真实理财客户端展示哪些产品字段,收益是否来自服务器响应。资金托管、投资标的、收益来源和实际赎回记录。
是否真实挖矿客户端是否有算力、矿池或奖励领取实现。矿池账户、算力证明、奖励交易和结算记录。
是否存在诈骗发现中心化控制、权限、通信或更新风险信号。完整资金流、运营方行为、用户损失和动态取证。

因此,不能把“APK 里没有私钥”理解成平台安全,也不能把“客户端有收益页面”理解成收益真实。软件分析的价值,是把可验证的技术边界先标出来,再指导后续取证。

十、建议的下一步取证

  1. 使用专用测试账户记录登录、合约下单、理财购买、矿机租赁和提现的完整 HTTP 响应。
  2. 保存订单号、充值地址、提现地址、提现哈希和时间戳,并与公开区块链浏览器逐笔对照。
  3. 核对后台显示余额是否能由链上交易、托管记录或公开市场流水独立计算。
  4. 检查更新接口返回的 WGT / APK 地址、版本号、签名信息和下载后的实际代码变化。
  5. 在可回滚设备上复现证书校验行为,记录请求是否接受不受信任证书。
  6. 不要在主账户输入资金密码,也不要用大额资金验证提现流程。

常见问题

这份 APK 分析能证明 Toobit 一定存在诈骗吗?

不能。它能证明客户端的接口、权限和更新逻辑,但不能单独证明服务器账本、资金去向或运营方意图。最终判断需要动态接口、提现记录和资金流水。

Toobit 的矿机功能是在手机上真实挖矿吗?

当前样本没有发现哈希计算、矿池 Stratum 协议、算力提交或链上奖励领取逻辑。客户端更像请求矿机产品和收益记录的界面。

客户端没有私钥就代表资金安全吗?

不代表。没有本地私钥只说明当前样本未发现本地钱包签名。若余额、订单和收益依赖中心化服务器,仍要核验提现规则、资产归属和可审计的资金路径。

结语

这份 Toobit APK 静态报告最重要的发现,不是某一个接口名称,而是整个业务的控制边界:交易、AI 智投和矿机都以中心化 HTTP API 为核心;收益、余额和进度主要由服务器返回;客户端还存在证书校验实现异常与远程 WGT 代码更新能力。

同时,当前样本没有发现典型本地后门、助记词窃取或链上钱包签名流程。这个结果需要和前面的风险一起理解:未发现本地窃取代码,不等于平台资产安全;存在中心化接口,也不等于已经证明运营方违法。

下一步应把静态代码和动态流量、服务器响应、提现记录及公开链数据放在一起验证。先确认事实,再判断风险,这是软件逆向分析最有价值的地方。