Pwn学习笔记-持续更新

这篇博客介绍了Pwn学习的基础知识,包括使用readelf、nm、hexdump和strings等命令查看ELF文件,利用ldd查看库函数位置,通过objdump反编译为汇编代码。在gdb部分,讲解了如何设置断点、步进执行、查看汇编代码等调试技巧。此外,还涉及汇编基础知识,如rip、rsp、rbp寄存器的作用,以及常用汇编指令的理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一节:基本命令

命令介绍
readelf查看elf
nm
hexdump查看十六进制
strings
ldd查看库函数的位置
objdump反编译成汇编 objdump [-d] [file] [-M] [intel] 查看intel下的汇编
gcc[-S] 直接编译成汇编代码
ROPgadget获取
ropper效果同ROPgadget

第二节:gdb

gdb命令介绍
ii r :查看寄存器
b下断点
d删除断点
disable断点失效 disable b [id]
enable断点生效 enable b [id]
disass显示汇编代码
ni步入
si强制步入
finish步出
xx/20b $rip 以bit的形式形式20个rip上的内容
x/20bbit查看
x/20gx16进制查看
x/20xb16进制 bit查看
**x/20i $rip显示接下来的20行汇编代码
search寻找字符串的地址

第三节:汇编基础

汇编命令介绍
rip存放当前的执行的指令的地址
rsp存放当前栈帧的栈顶地址
rbp存放当前栈帧的栈底地址
rax通用寄存器-保存函数返回值
leaload effective adderss 现在已经不用lea去取有效地址了
lea rax,[rbp-0x18]rax=rbp-0x18 优点:opcode比较短
xor ebx.ebx使ebx=0
movzxmovzx eax,BYTE PTR [rbp-0x10]:把rbp-0x10地址中存放的数据放入eax中 BYTE代表第一个bit PTR是指针
cmpJCC指令 满足一定条件跳转
cmp al,0x61相当于执行了 sub al,0x61 但是不保存减法之后的数据
push ebpesp-4,把ebp放入esp所指位置
pop ebp把esp所指的地方赋值给ebp,esp+4
leavemov esp,ebp;pop ebp
retpop eip
callpush eip;jump func
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

==Microsoft==

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值