替换libc
patchelf --set-interpreter /home/ctf/glibc-all-in-one/libs/2.34-0ubuntu3.2_amd64/ld-linux-x86-64.so.2 ./pwn
patchelf --replace-needed libc.so.6 /home/ctf/glibc-all-in-one/libs/2.34-0ubuntu3.2_amd64/libc.so.6 ./pwn
zsteg
查看lsb数据
zsteg xxx.bmp
zsteg xxx.png
zsteg -a (文件名) #查看各个通道的lsb
检测zlib
#-b的位数是从1开始的
zsteg zlib.bmp -b 1 -o xy -v
提取该通道图片
zsteg -e b8,a,lsb,xy 文件.png -> out.png
开启PIE/ASLR下调试
start
vmmap 看代码段
找到对应的代码后三位换掉下断点
r
gdb调试
run # 将程序完全跑一遍
start # 运行到类似于入口点的地方
i r # 查看寄存器
i b # 查看断点
disassemble $rip # 反编译rip所在函数的位置,查看rip在什么地方
b *0x000055555555527a # 设置断点,这里b即位breakpoint
ni # 单步运行程序
c # 到下一个断点
d 2 # 删除断点
disable b 2 # 使断点失效
enable b 3 # 使断点重新生效
si # 步入
finish # 步出
x # 查看
set # 改变值
p/print # 打印值
vmmap # 查看内存基本情况
cyclic 100 #打出100长度的字符串
cyclic -l kaaaaaaa #查找字符
x/20g rbp
x/数字显示格式 地址
x查看内存
20查看行的内存
g以16进制显示
rbp查看内存的开始是rbp的所指的地址
x/20i 以汇编显示
x/20g 以16进制,八个字节显示
x/20b 以16进制,单字节显示
x/20w 以16进制,4字节显示
x/20d 以10进制,4字节显示
x/20s 以字符串形式显示
set *0x7fffffffe550=0x61
set *((unsigned int)$ebp)=0x61
// 利用解引用符号,修改地址里面的值
search -t string xxxx
64位函数传参
前六个参数依次存放于rdi rsi rdx rcx r8 r9
标签:常用,set,查看,zsteg,16,一些,操作,断点,进制 From: https://www.cnblogs.com/r0xy/p/18464020