当前位置: 首页 > news >正文

Pwn 入门核心工具和命令大全

一、调试工具(GDB 及其插件)

GDB

启动调试:gdb ./binary

运行程序:run 或 r

设置断点:break *0x地址 或 b 函数名

查看寄存器:info registers

查看内存:x/10wx 0x地址 (查看 10 个 4 字节的十六进制值)

反汇编:disassemble 函数名 或 disas

单步执行:ni(汇编级单步) / si(进入函数调用)

查看堆栈:x/20wx $sp

GDB 插件

Pwndbg / GEF / Ped:增强型调试插件

查看堆布局:heap

查看进程映射:vmmap

查找 ROP Gadget:ropgadget

二、反汇编与逆向工具

objdump

反汇编二进制文件:objdump -d ./binary

查看节头信息:objdump -h ./binary

radare2

打开文件:r2 ./binary

分析二进制:aaa

反汇编主函数:pdf @main

IDA Pro / Ghidra

图形化逆向工具,用于静态分析(无命令行依赖)。

三、漏洞利用开发工具

1.pwntools(Python 库)

基础模板:(python)

from pwn import *

context(arch='amd64', os='linux', log_level='debug')

p = process('./binary') # 本地调试

p = remote('host', port) # 远程连接

payload = b'A' * offset + p64(gadget_addr)

p.sendline(payload)

p.interactive()

常用函数:

cyclic(100):生成 De Bruijn 序列

cyclic_find(0x61616162):计算偏移

elf = ELF('./binary'):加载 ELF 文件

libc = ELF('/lib/x86_64-linux-gnu/libc.so.6'):加载 Libc

2.one_gadget

        查找 Libc 中的 execve('/bin/sh') 地址:one_gadget libc.so.6

3.ROPgadget

        查找 Gadget:ROPgadget --binary ./binary

四、二进制分析工具

checksec

检查二进制防护机制:checksec --file=./binary

输出内容示例:

Arch: amd64-64-little

RELRO: Partial RELRO

Stack: No canary found

NX: NX enabled

PIE: No   PIE (0x400000)

file

查看文件类型:file ./binary

strings

提取字符串:strings ./binary | grep 'keyword'

五、编译与补丁工具

gcc

        关闭堆栈保护编译:gcc -no-pie -fno-stack-protector -z execstack -o demo demo.c

patchelf

        修改二进制依赖的 Libc:patchelf --set-interpreter /path/to/ld.so --replace-needed libc.so.6         /path/to/libc.so ./binary

六、网络工具

nc (netcat)

        连接远程服务:nc host port

        监听端口:nc -lvp 1234

socat

        启动服务:socat tcp-listen:1234,reuseaddr,fork exec:./binary

七、其他实用命令

strace

跟踪系统调用:strace ./binary

ltrace

跟踪库函数调用:ltrace ./binary

python3

快速计算地址偏移:python3 -c 'print(0xdeadbeef - 0xc0ffee)'

时光匆匆,一篇博客又到了结尾处啦。真心感谢每一位愿意花时间阅读我文字的朋友,希望你们每天都过得开开心心的,生活顺顺利利哦,咱们下次再通过文字‘相遇’呀。

http://www.lryc.cn/news/528920.html

相关文章:

  • 探索AI(chatgpt、文心一言、kimi等)提示词的奥秘
  • 利用飞书机器人进行 - ArXiv自动化检索推荐
  • 小白爬虫冒险之反“反爬”:无限debugger、禁用开发者工具、干扰控制台...(持续更新)
  • Ubuntu中MySQL安装-02
  • 大数据相关职位介绍之一(数据分析,数据开发,数据产品经理,数据运营)
  • 使用DeepSeek API生成Markdown文件
  • java多线程学习笔记
  • Manticore Search,新一代搜索引擎之王
  • 【MySQL】数据类型与表约束
  • CAG技术:提升LLM响应速度与质量
  • 上位机知识篇---Linux源码编译安装链接命令
  • 科研绘图系列:R语言绘制线性回归连线图(line chart)
  • 将ollama迁移到其他盘(eg:F盘)
  • Oracle 创建用户和表空间
  • cursor ide配置远程ssh qt c++开发环境过程记录
  • yolov5错误更改与相关参数详解(train.py)
  • Python设计模式 - 组合模式
  • css粘性定位超出指定宽度失效问题
  • Windows 程序设计6:错误码的查看
  • doris: CSV导入数据
  • FastStone Image Viewer图像处理软件安装步骤(百度网盘链接)
  • Kafka 深入服务端 — 时间轮
  • 网络爬虫学习:应用selenium获取Edge浏览器版本号,自动下载对应版本msedgedriver,确保Edge浏览器顺利打开。
  • 【go语言】结构体
  • Spring Boot是什么及其优点
  • 谷氨酸:大脑功能的多面手
  • SpringCloudGateWay和Sentinel结合做黑白名单来源控制
  • HTML新春烟花
  • 【Elasticsearch】中数据流需要配置索引模板吗?
  • Git进阶之旅:Git 配置信息 Config