ldd命令解析
ldd :用于查看程序运行所需要的共享库(动态链接库),在ctf中一般用于查看本地libc库版本 ben@ubuntu:~/ctf/stack-wiki/ret2libc/ret2libc3$ ldd ret2libc3linux-gate.so.1 (0xf7fd4000)libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7ddc000)/li
·
ldd :用于查看程序运行所需要的共享库(动态链接库),在ctf中一般用于查看本地libc库版本
ben@ubuntu:~/ctf/stack-wiki/ret2libc/ret2libc3$ ldd ret2libc3
linux-gate.so.1 (0xf7fd4000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7ddc000)
/lib/ld-linux.so.2 (0xf7fd6000)
-
结果的第一列是程序需要的依赖的库(libc.so.6)
-
结果的第二列是系统给程序提供的库(/lib/i386-linux-gnu/libc.so.6)
-
结果的第三列是库加载的开始位置(0xf7ddc000),如下所示:以0xf7开头的为libc文件
pwndbg> vmmap LEGEND: STACK | HEAP | CODE | DATA | RWX | RODATA 0x8048000 0x8049000 r-xp 1000 0 /home/ben/ctf/stack-wiki/ret2libc/ret2libc3/ret2libc3 0x8049000 0x804b000 rw-p 2000 0 /home/ben/ctf/stack-wiki/ret2libc/ret2libc3/ret2libc3 0xf7fd1000 0xf7fd4000 r--p 3000 0 [vvar] 0xf7fd4000 0xf7fd6000 r-xp 2000 0 [vdso] 0xf7fd6000 0xf7ffc000 r-xp 26000 0 /lib/i386-linux-gnu/ld-2.27.so 0xf7ffc000 0xf7ffe000 rw-p 2000 25000 /lib/i386-linux-gnu/ld-2.27.so 0xfffdd000 0xffffe000 rw-p 21000 0 [stack]
-
另外提一个关于ldd的小技巧:如果程序依赖的某个库文件找不到,通过该命令,对比第一列和第二列即可迅速锁定问题所在。
更多推荐
已为社区贡献1条内容
所有评论(0)