零碎操作积累
概述
谨以此片文章为我那不争气的记性做个记录,随便造福大家,另外如果各位看官也有些骚操作或者基操的话,也请不吝赐教,留言评论,在下定临表涕零,感激不尽。
使用指定版本的libc运行pwn题
这里给几个下libc的网站:
使用指定版本libc运行pwn题的终端操作:
# 指定libc
$ LD_PRELOAD=/usr/local/libc/libc-2.23.so
# 使用对应的动态链接器运行程序
$ /usr/local/libc/ld-2.23.so ./prog
利用pwntools指定程序运行的libc:
from pwn import *
libc_path = "/usr/local/libc/libc-2.23.so"
ld_path = "/usr/local/libc/ld-2.23.so"
p = process([ld_path, "./prog"], env={"LD_PRELOAD":libc_path})
使用指定版本的libc编译源程序
操作如下:
-
-o
指定生成的程序名 -
-Wl
将后面的参数传给链接器 -
--rpath
指定libc路径 -
--dynamic-linker
指定动态链接器
$ gcc test.c -o test -Wl,--rpath=/usr/local/libc/ -Wl,--dynamic-linker=/usr/local/libc/ld-23.so
总结
不忘初心,砥砺前行!