零碎操作积累
概述
谨以此片文章为我那不争气的记性做个记录,随便造福大家,另外如果各位看官也有些骚操作或者基操的话,也请不吝赐教,留言评论,在下定临表涕零,感激不尽。
开启和关闭随机化
# sudo su
cat /proc/sys/kernel/randomize_va_space # 当前值
echo 0 > /proc/sys/kernel/randomize_va_space # 完全关闭
echo 2 > /proc/sys/kernel/randomize_va_space # 完全开启
使用指定版本的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-2.23.so
IDApython – Patch SMC代码
IDApython的文档手册 – IDApython手册。
这里记录一下使用IDApython插件patch代码的过程,在逆向过程中经常遇到SMC代码,此时静态分析的话我们可以用下面的示例脚本来还原出代码,主要记忆一些api的使用。快捷键shift-f2
打开IDA脚本输入框,修改脚本语言为python,如下截图所示,代码也在后面,注释已给。