使用缺少调试符号的 .so 文件调试 3rd-party apk

逆向工程 调试 安卓 apk 蓝牙
2021-06-12 14:09:12

抱歉,如果之前有人问过这个问题。我正在对连接到 BLE 设备的中国应用程序进行逆向工程,因此我可以检查它如何传输数据。使用此官方指南,我反编译了我的 apk 并使其可调试。但是,在导入它并尝试调试应用程序后,我收到了以下消息:

要调试 APK,本机库(*.so 文件)必须具有调试符号。以下库缺少调试符号:

  • libBugly.so
  • libecc256.so

虽然应用程序运行良好,但它不会在任何断点处停止。

该指南告诉我需要将本机调试符号附加到那些 .so 文件中。由于我只从 apk 中提取了它们,我该怎么做?

1个回答

通常,如果本地库是在没有调试符号的情况下(在 apk 中)分发的(这很常见,而且 apk 也被设置为不可调试),除非你是,否则你将无法找到这些调试符号开发人员或者您可以从开发人员处获取带有调试符号的库。

因此,即使您可以像以前那样重新打包 apk 并使其可调试,您也会丢失以这种方式实际调试应用程序所需的关键数据。相反,典型的方法是使用像Frida这样的动态检测工具而不是调试器来帮助您进行逆向工程尝试。通常,您可以将 Frida 与 Ghidra 之类的反汇编程序一起使用,以探索该应用程序的工作原理。

如果您决定尝试使用 Frida、Ghida 等,该站点是询问有关使用它们的问题的好地方。