【问题标题】:How to get source code of .so file in android如何在android中获取.so文件的源代码
【发布时间】:2016-10-15 09:26:05
【问题描述】:

我想在 android 中查看共享对象库 (so) 文件的源代码。如何将 .so 二进制文件转换为本机 c/c++ 代码。

【问题讨论】:

  • 源不是二进制文件的一部分。您可以反编译二进制代码,但它不会是原始源代码,也不会真正可读。
  • 一般情况下不能。
  • 你可能不知道 Android 是建立在 Linux 之上的。所以你实际上是在要求反编译一个 Linux so 文件。这就是为什么@iosdude 的链接是相关的。你也可以查看这个答案:stackoverflow.com/questions/205059/is-there-a-c-decompiler
  • 反汇编应用程序会为您提供汇编代码,但不会返回原始 c(或 c++)代码

标签: android c++ c android-ndk


【解决方案1】:

制作so文件的目的是不分享源代码,不管它是不是android。 这是故意这样设计的,以免打开设计。 在此之后,许多公司共享 .so 文件(机器指令),为他们的设计保密。

但是,如果您想知道 .so 文件包含什么内容,您可以阅读该库的 ELF(可执行和可链接格式)。 命令

readelf -a yourLibraryName.so > yourLibraryName_elf.txt

输出包含符号表。您可以从生成的文本文件中搜索函数名称、全局变量等。

更多详情请看http://www.skyfree.org/linux/references/ELF_Format.pdf

【讨论】:

    猜你喜欢
    • 2011-08-21
    • 1970-01-01
    • 2021-02-22
    • 2014-11-11
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    相关资源
    最近更新 更多