pwn前置知识

既然是记录学习历程,我觉得还是从头开始吧
我刚开始学的时候就苦于找不到学习资源,找到了又看不懂的崩溃处境
好吧,是我不会正确上网+本人又菜又摆的缘故

 一般是从比赛官方下载附件
 下载到虚拟机 打开terminal——checksec 查看保护机制
 (拖进IDA/利用GDB,然后......此处省略脑子)
 编写脚本(用python)
 运行exp.py—>ls—>cat flag

Linux系统命令(在虚拟机中使用)

 nc——远端 
 ls——查看目录下文件
 cat flag——获得flag
 cd——打开文件
 touch 文件名——创建文件
 vim——编辑
 chmod +x ./文件名  ~或~chmod 777 ./文件名——给文件赋权限
 python 脚本名.py——运行脚本
 rm -rf 文件名——删除文件

IDA使用

  • Tab键从C语言和汇编之间切换
  • f5从汇编到C语言
  • 单击函数+按n——重命名函数(或者右键rename)
  • Options->General->Disassembly->Line Prefixes——看地址
  • shift+f12——查看字符串,一般利用它看看有没有后门函数,\bin\sh之类的东西

pwntools

from pown import* //调用pwntools
p=p.process("文件名") //本地运行
p=remote("ip",port)//打远端
p.send()发送消息,消息不存在换行符
p.sendafter("")//在读到“”之后发送
p.sendline()——发送信息后换行
p.recvline()接收并等待提示消息
p.interactive:进入交互模式,最后写
p.recvuntil(字符串):接收并等待提示消息
gdb.attach(p, ’b * 0xfa’):启动gdb
p64、p32——根据设置的context选择小端法或大端法对数字进行编码

汇编

1

GDB调试

  1. gdb 文件名 进入 pwndbg 动态调试
  2. break 函数名 或 break 地址值 或 break C语言行号 设断点
  3. run/r——运行程序 next 步过 step 步进
  4. stack 整数 查看多少栈
  5. vmmap 显示虚拟内存空间的分布
  6. info b 查看当前的断点 d 删除某一个断点
  7. s 进入函数
  8. c (continue )让程序继续执行
  9. p &printf 查看 printf 函数的真实地址
  10. x/10wx 地址 查看该地址后 10 个内存单元的内容
  11. xinfo 地址 查看该地址信息,包括偏移等

保护机制

1
https://www.cnblogs.com/wintrysec/p/10616856.html

posted @   Jexy-kynner*^  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· DeepSeek本地性能调优
· 一文掌握DeepSeek本地部署+Page Assist浏览器插件+C#接口调用+局域网访问!全攻略
点击右上角即可分享
微信分享提示