教做缝纫的网站,南昌所有建设工程网站,自己给自己网站做seo,wap网站如何建设一、调试工具#xff08;GDB 及其插件#xff09;
GDB 启动调试#xff1a;gdb ./binary 运行程序#xff1a;run 或 r 设置断点#xff1a;break *0x地址 或 b 函数名 查看寄存器#xff1a;info registers 查看内存#xff1a;x/10wx 0x地址 #xff08;查看 10 个 …一、调试工具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 Gadgetropgadget 二、反汇编与逆向工具
objdump 反汇编二进制文件objdump -d ./binary 查看节头信息objdump -h ./binary radare2 打开文件r2 ./binary 分析二进制aaa 反汇编主函数pdf main IDA Pro / Ghidra 图形化逆向工具用于静态分析无命令行依赖。 三、漏洞利用开发工具
1.pwntoolsPython 库 基础模板(python) from pwn import * context(archamd64, oslinux, log_leveldebug) p process(./binary) # 本地调试 p remote(host, port) # 远程连接 payload bA * 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 查找 GadgetROPgadget --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 修改二进制依赖的 Libcpatchelf --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) 时光匆匆一篇博客又到了结尾处啦。真心感谢每一位愿意花时间阅读我文字的朋友希望你们每天都过得开开心心的生活顺顺利利哦咱们下次再通过文字‘相遇’呀。