read()函数:ssize_t read [1] (int fd, void *buf, size_t count);从fd指针指向文件读取count字节保存在buf中。
write()函数:ssize_t write(int fd, const void *buf, size_t nbyte);向fd指针指向文件中写入从buf读取size长度字节的长度的字符。
STDIN_FILENO从键盘中输入
STDOUT_FILENO向屏幕输出
-fno-stack-protector 关闭DEP(堆栈不可执行)
-z execstack 关闭栈保护
echo 0 > /proc/sys/kernel/randomize_va_space 关闭内存地址随机化
产生core dump文件
ulimit -c unlimited
sudo sh -c 'echo "/tmp/core.%t" > /proc/sys/kernel/core_patter'
core文件(我简单认为)是产生BUG的文件
sudo cat /proc/[pid[/maps 查看进程
/bin/sh存在与libc.so中
plt地址为got表地址,got表地址为函数真正的地址
objdump -d -j .plt 文件名 查看plt地址
objdump -R 文件名 查看got表地址
ldd 文件名 查看so文件
readelf -S 文件名 查看bss段的地址