【问题标题】:Assembly files in glibc libraryglibc 库中的汇编文件
【发布时间】:2014-09-29 13:36:08
【问题描述】:

我使用objdump -S/lib/x86_64-linux-gnu/libc.so.6 获取源代码和反汇编二进制行的混合

深入研究生成的输出表明,相当多的 GNU C 库已被写入 .S 格式的汇编文件中。

谁能告诉我这些 .S 文件是否用于系统调用?如果是这样,这些程序集还涵盖了哪些内容?

【问题讨论】:

    标签: assembly glibc


    【解决方案1】:

    谁能告诉我这些 .S 文件是否用于系统调用?

    glibc 系统调用是在汇编文件中实现的,是的。

    如果是这样,这些程序集还包括什么?

    很多其他东西。在我的脑海中,x86_64

    • IFUNCs
    • PLT 存根
    • 动态加载器中实际执行PLT 分辨率的部分,
    • 手动优化strcpystrstrmemcpymemmove,一些三角函数。

    某些平台没有(某些)上述手动优化的汇编例程,并且具有较少的.S 文件。 PLT 解析不能在纯C 中完成,因此在所有平台上都以汇编方式实现。

    【讨论】:

      【解决方案2】:

      与其对它们进行逆向工程,为什么不简单地查看源代码呢? glibc 是开源的:https://www.gnu.org/software/libc/download.html

      另外,this question 指的是网络上可以浏览源代码的地方。

      【讨论】:

      • 感谢您的回复。由于这些 .S 文件太多,阅读它们并不是那么容易。所以,我宁愿只知道一般的功能主义者是在汇编中实现的,而不是高级 C。
      猜你喜欢
      • 2019-01-23
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多