百趣云
百趣云的博客
🔖反调试
检测方的完整武器库把商业 App/安全 SDK 的反 Frida 手段按层汇总,这是一份"对手视角"的清单。逆向时对照排查,比盲目试错高效得多。应用层检测(Java/Kotlin)1. 端口扫描// 连接本机 27042 端口,通了就说明 frida-server 在跑
Socket socket = new Socket("127.0.0.1", 27042);绕过:换端口(-l 127.0.0.1:8888)。2. 进程枚举// 读 /proc 下所有 cmdline 找 frida-server
// 或 Runtime.exec("ps") 解析
Frida 的默认特征有多明显Frida 是逆向神器,但它的默认部署在检测方面前几乎是裸奔:进程名:frida-server 写在进程列表里端口:默认监听 27042内存特征:注入的 agent 带 frida 字样的内存页、特有的线程名(gum-js-loop 等)库特征:frida-agent.so 出现在 maps 里商业 App 的反 Frida 检测就是按这个清单逐项扫的。对抗思路:逐项消除特征。第一层:改名换端口(5 分钟搞定)# 1. 二进制改名
adb push frida-server /data/local/tmp/.fs64 # 隐藏文件名
# 2. 换端口 + 只
attach 模式的致命短板frida -U com.target.app(attach 模式)的问题是时机:进程已经跑起来了,启动期的代码——反调试初始化、密钥加载、设备指纹采集——全都执行完了。你 hook 上去时,该发生的都发生了,该检测的也检测完了。spawn 模式(frida -f)让 Frida 创建进程并在 main 之前挂起,你的脚本先执行,App 的代码后运行——攻守之势逆转。基本用法# spawn 启动并挂起,加载脚本后手动放行
frida -U -f com.target.app -l script.js
# 进入 REPL 后输入 %resume 放行
# 一条命令自
TracerPid 检测的原理Linux 下进程被 ptrace 附加时,/proc/self/status 里的 TracerPid 字段会变成调试器的 PID,未被调试时是 0。SO 反调试的标准做法就是周期性读这个文件:// 典型检测代码(SO 里的实现)
int check_debugger() {
char buf[512];
int fd = open("/proc/self/status", O_RDONLY);
read(fd, buf, sizeof(buf));
close(fd);
char* p = strst
越狱检测在检测什么iOS App(尤其是金融、政务类)启动时普遍做越狱检测,检测到就闪退或限制功能。检测点分四类:1. 文件系统特征越狱后多出来的文件是第一批路标:NSArray *paths = @[@"/Applications/Cydia.app",
@"/usr/sbin/sshd",
@"/usr/bin/ssh",
@"/etc/apt",
@"