猿人学 App 逆向闯关系列 · 总目录
本文最后更新于:2026年9月2日 下午
猿人学闯关 App 的离机复现系列总目录,一题一篇,持续更新。
全系列坚持同一约束:不驱动 App、只靠逆向,产物是能独立跑的脚本;每题都走一遍”读请求模型 → 把真实算法读出来 / 跑出来 → 还原”的主线。⚠️ 猿人学闯关 App 是面向逆向练习的 CTF 式靶场;本系列仅用于授权范围内的学习研究,请遵守相关服务条款与法律。
已完成
| 题号 | 标题 | 反爬点 | 逆向手段 | 文章 |
|---|---|---|---|---|
| 第一题 | 题目一 | dex 层 sign | 静态反编译 → 标准 MD4(注意非标准输出字节序) | 阅读 |
| 第二题 | 简单的 so 层加密 | native encrypt(so 不加壳不混淆) | 反汇编读改版 RC4;Frida 主动调用当预言机对拍 | 阅读 |
| 第三题 | 众里寻他千百度【so动态注册】 | native sign + Looper 反模拟 + 时钟强校验 | JNI_OnLoad 揪真身;Unicorn 桩 CallStaticObjectMethodV 绕过 Looper;自校准时钟 | 阅读 |
| 第四题 | 秋水共长天一色【udp 协议】 | native goron 造包 | Unicorn 忠实模拟 echo_cli;响应头即”位置表” |
阅读 |
| 第五题 | 2022 新年快乐 | dex 层变形签名 | ASM 插桩反推变形 MD4 → 纯 Python + JVM 预言机对拍 | 阅读 |
| 第七题 | 衣带渐宽终不悔【flutter】 | Flutter/Dart AOT 内嵌签名 | Blutter 反编译 Dart AOT → 读出 HMAC-SHA256 双盐 → 纯 Python 自算自发(reFlutter 仅用于定位取样) | 阅读 |
| 第八题 | 寻龙分金看缠山【grpc】 | gRPC(protobuf/HTTP2) | 读 MethodDescriptor+writeTo 拆 schema;手写 protobuf + grpc 通用 stub | 阅读 |
| 第九题 | 借问酒家何处有【双向证书】 | mTLS 客户端证书 | JVM 预言机解混淆字符串定位 clientCA.bks;BKS→PKCS12→PEM;requests 带客户端证书 | 阅读 |
| 第十题 | 题目十【React Native】 | RN bundle 内魔改 MD4 | 读明文 JS bundle 定位 sign_hex;node 直跑拿 ground truth 识破魔改 MD4;逐字转写纯 Python | 阅读 |
| 第十一题 | 学诗谩有惊人句【upx壳】 | UPX 加壳 native | 内存 dump 脱壳 + Frida 取样 → 自定义 Base64 | 阅读 |
| 第十三题 | 东风夜放花千树【封设备】 | native 生成 device_id,按 MAC 封设备 | Unicorn 模拟 getDeviceId → 单变量对照 → 16 项查表纯 Python |
阅读 |
方法论速查
| 题目形态 | 该用的手段 |
|---|---|
| dex 层、可反编译 | 反射读 Retrofit 注解拿端点;认标准算法直接还原;魔改就 ASM 插桩取轨迹 + JVM 预言机对拍 |
| native、OLLVM/goron 混淆 | Unicorn 忠实模拟关键函数;ABS64 导入重定位写 stub+addend |
| native、加壳(UPX 等) | 别硬啃离线脱壳,从进程内存 dump 解密后代码;Frida(无 Java 桥时用 JNI 函数表)取样 |
| 协议/响应 | 先看响应结构——很多”随机”包其实是位置表 + 对称解密,取值无需逆请求侧 PRNG |
计划中
其余题目将陆续补齐,按题号顺序更新到本目录。
猿人学 App 逆向闯关系列 · 总目录
https://kingjem.github.io/2026/09/01/猿人学App逆向闯关系列-总目录/