CTF pwn手在学习过程中的零碎操作积累

零碎操作积累

概述

  谨以此片文章为我那不争气的记性做个记录,随便造福大家,另外如果各位看官也有些骚操作或者基操的话,也请不吝赐教,留言评论,在下定临表涕零,感激不尽。

使用指定版本的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 

总结

不忘初心,砥砺前行!

上一篇:Servlet里面一调用Dao里的某个方法


下一篇:CTF-二进制从入门到放弃(二)-gdb的使用