百趣云 百趣云的博客
博主
百趣云
2周前
objection 是什么:Frida 的"免编程外壳"objection 把 Frida 最常用的逆向能力封装成交互式命令:内存搜类、hook 方法、dump 内存、绕过 root 检测——全部一行命令搞定,不用写 JavaScript。它不是替代 Frida 脚本,而是侦察阶段的效率工具:先用 objection 快速摸清 App 结构,确定关键类和方法,再写精准的 Frida 脚本。pip install objection objection -g com.target.app explore # attach 已运行的 App objection -g com.targ
博主
百趣云
2周前
JA3:TLS 握手的"指纹"你的爬虫参数全对、ua 完美伪装,还是被 Cloudflare/Akamai 秒拒——问题出在 TLS 指纹。TLS 握手的第一条消息(ClientHello)里包含:支持的 TLS 版本列表加密套件(cipher suites)列表及顺序扩展(extensions)列表及顺序椭圆曲线、签名算法等参数这些字段的组合由TLS 库的实现决定:Chrome 的 BoringSSL、Firefox 的 NSS、Python 的 OpenSSL、Go 的 crypto/tls,各有各的固定模式。JA3 就是把这些字段拼起来算 md5:JA3 = md5(TLS版本,加密套件
博主
百趣云
2周前
能跑和跑得久是两个工程协议模拟的技术验证(PoC)一天能搞定,但上线跑一周就大面积封号——差距在稳定性工程。本文讲把协议服务从 demo 变成生产系统的关键设计。稳定性问题的四个来源1. 凭证过期:token/cookie 过期没及时刷新,请求批量失败2. 风控累积:行为模式被风控逐步标记,通过率先缓降后跳水3. 目标变更:App/网站更新,签名算法或接口结构变了4. 资源枯竭:IP 被封、账号被封、设备档案被标记对应的稳定性设计逐个讲。凭证生命周期管理class CredentialManager: def __init__(self): self.creds = {
博主
百趣云
2周前
为什么静态符号找不到 native 方法分析 SO 时经常遇到:Java 层声明了 public static native String getSign(...),但 IDA 的导出表里找不到 Java_com_xxx_getSign。原因是 JNI 动态注册——SO 在 JNI_OnLoad 里调用 RegisterNatives,把 Java 方法名和 native 函数地址运行时绑定,符号表里完全没有痕迹。这是商业 App 的标配做法,目的就是增加静态分析难度。但绑定动作本身必须调用系统 API,这就是突破口。RegisterNatives 的数据结构动态注册的核心是一个 JNINat
博主
百趣云
2周前
HMAC 的结构决定了密钥是唯一的秘密HMAC-SHA256 是 App 接口签名的主流方案。它的结构:HMAC(key, msg) = SHA256( (key ⊕ opad) || SHA256((key ⊕ ipad) || msg) )算法完全公开,唯一的秘密是 key。逆向 HMAC 的本质就是一场"找 key"的游戏——key 藏在哪,决定了你的工作量和路径。key 的五种藏身之处(按常见度排序)1. Java 层硬编码字符串String KEY = "a8f5c3d2e1..."; // 最直接,jadx 全文搜得到搜索技巧:搜 HmacSHA256(Mac