百趣云 百趣云的博客

拼多多 App 登录态分析:anti_content 与设备绑定的双重门

App 端登录和 web 端是两个世界

前文讲过拼多多 web 端的 anti_content(JS 生成)。App 端的登录态体系完全不同:anti_content 由 native 安全 SDK 生成,登录态和设备深度绑定。本文讲 App 侧的登录态获取与维护。

登录方式与协议

拼多多 App 的登录方式:手机号+验证码、微信授权、QQ 授权。协议模拟的现实选择是手机号+验证码(微信授权要打通微信的授权链,复杂度翻倍)。

登录接口(mtop 风格,以抓包为准):

POST https://api.yangkeduo.com/login
Body: mobile=xxx&code=xxx&...

关键:登录请求必须带 anti_content——App 版的 anti_content 由安全 SDK 的 SO 生成,采集设备环境后加密输出。

App 版 anti_content 的获取

web 版的 anti_content 可以抠 JS,App 版只能两条路:

路线一:Frida RPC 直调(推荐)

Java.perform(function() {
    // 安全 SDK 的生成入口(类名以实际版本为准)
    var SecureSdk = Java.use('com.xunmeng.pinduoduo.secure.xxx');
    rpc.exports = {
        antiContent: function(url, params) {
            return SecureSdk.getAntiContent(url, params);
        }
    };
});

一台挂机手机提供 anti_content 生成服务,协议程序远程调用。

路线二:unidbg 模拟 SO

安全 SDK 的 SO 加载进 unidbg,补环境后调用。拼多多安全 SDK 对系统服务依赖中等,补环境工作量约 2-3 天,适合规模化。

设备绑定:登录态的隐形锁

拼多多登录态的核心特征:access_token 和设备指纹强绑定

  • 登录时设备信息(型号、Android ID、指纹)随请求上报
  • 登录成功后 access_token 绑定该设备档案
  • 同一 token 换设备环境使用,立刻触发风控(掉登录或滑块)

工程含义:账号池的每个号 = access_token + 完整设备档案(生成 anti_content 的手机环境)+ IP 段,三者绑定不可拆。

精髓:登录态维护的四个要点

  1. access_token 有有效期但有刷新接口。定时刷新(每天一次)维持活性,别等过期重新登录——登录接口的风控比刷新接口严得多
  2. 登录时的验证码环节。新设备首次登录大概率要图形验证码(点选/滑块),协议流程要预留验证码处理环节(打码平台对接)
  3. 多账号切换的隔离。同一设备环境切多个账号是风控大忌——设备档案和账号一对一,切换账号 = 切换整套设备环境
  4. 行为分的影响。登录后的前几次操作决定账号的初始风控等级:先浏览、搜索、加购(正常用户行为),几小时后再做业务操作。新登录态立刻下单/领券,是触发人脸验证的最快路径

总结

  1. App 登录走手机号+验证码,anti_content 由 native SDK 生成
  2. anti_content 获取:Frida RPC(推荐)或 unidbg
  3. access_token 与设备档案强绑定,账号池三元组管理
  4. 定时刷新维持活性,新登录态先养行为分

交流微信:run1255

By 百趣云 阅读量:5 On