frida + burpsuite 百度极速版App反调试、SSL代理检测、webView分析
💡
原文中文,约1500字,阅读约需4分钟。
📝
内容提要
本文探讨了如何利用Frida和Burp Suite分析百度极速版app的反调试机制。通过观察进程重启及Java和Native层的退出机制,发现反调试主要依赖libmsaoaidsec.so。最终,通过hook相关函数成功绕过反调试检测,使app正常运行。
🎯
关键要点
- 使用Frida和Burp Suite分析百度极速版app的反调试机制。
- 观察到进程重启行为,确认存在反调试机制。
- Java层的System.exit调用并未导致进程结束,怀疑是native层的原因。
- native层的进程退出方法包括exit和tgkill,但未捕获到进程结束行为。
- 通过libmsaoaidsec.so中的SVC __NR_exit_group调用完成进程退出。
- hook libc的opendir和__open_2函数以查找反调试行为,定位到libmsaoaidsec.so。
- 直接hook dlopen和android_dlopen_ext以检测加载的so。
- 通过patch .init_proc函数绕过反调试,确保app正常运行。
- hook call_array函数以patch其他INIT_ARRAY表中的函数,进一步确保反调试被绕过。
❓
延伸问答
如何使用Frida和Burp Suite分析百度极速版App的反调试机制?
可以通过观察进程重启行为和hook相关函数来分析反调试机制,特别是libmsaoaidsec.so中的调用。
百度极速版App的反调试机制是如何工作的?
反调试机制主要依赖libmsaoaidsec.so,通过特定的系统调用和进程退出方法来实现。
在分析过程中发现了哪些关键的进程退出方法?
关键的进程退出方法包括exit、tgkill和SVC __NR_exit_group,后者通过libmsaoaidsec.so实现。
如何绕过百度极速版App的反调试检测?
可以通过hook .init_proc函数和其他INIT_ARRAY表中的函数,确保它们直接返回,从而绕过反调试检测。
在使用Frida时,如何确认进程重启行为?
可以通过logcat查看进程启动日志,确认frida启动的进程pid与最终运行的进程pid不同。
为什么Java层的System.exit调用未导致进程结束?
因为进程结束可能是由native层的其他机制引起的,而不是Java层的System.exit调用。
➡️