【问题标题】:linux write system call and libclinux编写系统调用和libc
【发布时间】:2023-03-11 22:16:01
【问题描述】:

在 linux 中,'write' 是一个小的系统调用 wapper 函数。

在 GDB 中。如果我搜索符号“写”(信息地址写) GDB 告诉我一个在 libc 范围内的地址。 但是,当我检查 libc 的导出函数列表时 没有“写”符号。

这里发生了什么?

【问题讨论】:

    标签: linux system-calls libc


    【解决方案1】:

    当我检查 libc 的导出函数列表时,没有“写”符号。

    让我们看看:

    [max@xxx:~/tmp] $ nm --dynamic --defined-only /lib64/libc-2.15.so | grep write
    0000003c7a4f1990 T eventfd_write
    0000003c7a46c540 W fwrite
    0000003c7a475570 T fwrite_unlocked
    0000003c7a476d50 T _IO_do_write
    0000003c7a475fa0 T _IO_file_write
    0000003c7a46c540 T _IO_fwrite
    0000003c7a471d10 T _IO_wdo_write
    0000003c7a4e3060 T __libc_pwrite
    0000003c7a4f2310 T process_vm_writev
    0000003c7a4e3060 W pwrite
    0000003c7a4e3060 W pwrite64
    0000003c7a4e3060 W __pwrite64
    0000003c7a4ea520 T pwritev
    0000003c7a4ea520 T pwritev64
    0000003c7a4e4940 W write
    0000003c7a4e4940 W __write
    0000003c7a4ea3d0 W writev
    

    【讨论】:

    • 谢谢!但是当我用 IDA 打开二进制文件时,导出部分中没有列出写入函数...
    • @daehee 我不熟悉 IDA。
    猜你喜欢
    • 2016-05-09
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 2016-09-07
    • 1970-01-01
    • 2013-07-19
    • 2011-08-06
    相关资源
    最近更新 更多