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调用。

➡️

继续阅读