在 linux 中,'write' 是一个小的系统调用 wapper 函数。
在 GDB 中。如果我搜索符号“写入”(信息地址写入),GDB 会告诉我一个在 libc 范围内的地址。但是,当我检查 libc 的导出函数列表时,没有“写”符号。
这里发生了什么?
在 linux 中,'write' 是一个小的系统调用 wapper 函数。
在 GDB 中。如果我搜索符号“写入”(信息地址写入),GDB 会告诉我一个在 libc 范围内的地址。但是,当我检查 libc 的导出函数列表时,没有“写”符号。
这里发生了什么?
当我检查 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