pwn前置基础

小摸一下二进制~

常用寄存器及一些汇编指令

寄存器命令
RIP存放当前执行的指令的地址
RSP存放当前栈帧的栈顶地址
RBP存放当前栈帧的栈底地址
RAX通用寄存器。存放函数返回值
汇编指令解释
addadd rax,0x20 : rax=rax+0x20
subsub rbp,0x18 : rbp=rbp-0x18
xorxor ebx,ebx : ebx^ebx=0
lealea rax,[rbp-0x18] : rax=rbp-0x18 (取地址给rax
testtest eax,eax : eax&eax // eax=0->0 eax!=0->!0
cmpcmp a1,0x61 : a1-0x61
JE相等时跳转
JNE不相等时跳转
push压栈,eg:push ebp : esp-4,把ebp放入esp指向的地方
pop弹栈,eg:pop ebp : 把esp指的地方赋值给ebp,esp+4
leave相当于:mov esp,ebp;pop ebp
retpop eip
callpush eip;jmp func
movmov a ,b : 将b中的值写入a

gdb调试及常用命令

命令含义
b *设置断点
d删除断点
disable b id断点失效
enable b id断点生效
i r查看寄存器
i b查看寄存器
c继续执行到断点,没断点就一直执行下去
r重新开始执行
start类似于r,停在main函数的开始
ni不进入函数体执行
si进入函数体执行
finish步出
vmmap查看内存情况
stack也是查看寄存器
cyclic 生成指定number长度的字符串
cyclic -l 给出该字符串当前的padding(不好用
distance 计算num1和num2的距离(算padding
set修改指定地址的值
x/num<n/f>
num表示打印的数量
n设定打印格式,参数可为o(八进制),x(十六进制),d(十进制),u(无符号十进制),t(二进制),f(浮点类型),a(地址类型),i(解析成命令并反编译,显示地址上的指令信息),c(字符)和s(字符串)
f设定输出长度,b(byte),h(halfword),w(word),giant(8bytes)
  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值