首页 > 其他分享 >pwn常用工具快捷键学习

pwn常用工具快捷键学习

时间:2024-05-29 21:13:32浏览次数:21  
标签:函数 查看 -- 快捷键 字符串 地址 pwn 格式 常用工具

vim

普通模式
G(普通模式) 来的文本最下方
g+g(普通模式下) 回到文本的开头
f+目标单词的首字母(find普通模式) 移动到目标单词
d(delete) 删除当前行
u(undo) 撤销
文本模式
I 从当前行开头进行输入
A 当前行文末输入

ida

F7 单步执行,遇到call或者函数调用就进入
F8 单步执行,遇到call或者函数调用就跳过
F9 开始调试一直运行
F2 下一个0xCC的软件断点
F4 运行到光标初
U 取消函数,代码,数据的定义
C 把字节码翻译为汇编语句
p 定义函数
D 数据长度类型转化,1/2/4/8
H 数字->16进制
a (数据)->字符串
R 数字->字符(‘120’打了单引号是个字符y,要ask码转换)
y 修改数据类型声明
n 对函数或者变量重命名(函数名为sub_234875)
g 去往某一个地址
CTRL F7 一直运行
shift +f12 找出所有字符串
/ 在反汇编后界面写注释,汇编语言界面也可用
ctrl+x 查看函数或变量的交叉引用(通过flag.txt字符串找函数)
tab 汇编代码与c代码视角转换
ctrl+s 段表信息
telescope+0x地址 用stack段的形式查看内存中地址信息
ctrl+t 查找特定指令和字符串

gdb(调试一定先下断点)

n 不进入函数的单步执行
s 进入被调用(call)函数
finish s步入函数后用会执行完此函数
c 直接执行到下一个断点。
k(kill) kill当前进程
r(run) 运行程序
gdb+文件 动态调试文件
vmmap gdb查看rwx
b *0x地址 打断点
ni 下一条汇编指令
disable b +数字 去掉第几个断点
i r 查看寄存器
set *0x地址=数字 set $寄存器=数字 赋值
u64(io.recvline().strip().ljust(8,b'\0'))
search + “字符串” 显示目info b
info b 查看当前断点
bt 查看函数调用栈
info r 查看所有寄存器的值。
list 查看源代码。
vis 查看堆块
tel +地址 类似查看stack信息的格式

x/[n/u/f] [addr] :查看任意内存位置的值
n:是正整数,表示需要显示的内存单元的个数,即从当前地址向后显示n个内存单元的内容,一个内存单元的大小由第三个参数u定义。

f:表示addr指向的内存内容的输出格式,s对应输出字符串,此处需特别注意输出整型数据的格式:
x 按十六进制格式显示变量.
d 按十进制格式显示变量。
u 按十进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
c 按字符格式显示变量。
f 按浮点数格式显示变量。

u:就是指以多少个字节作为一个内存单元unit,默认为4。u还可以用被一些字符表示:
如b=1 byte, h=2 bytes,w=4 bytes,g=8 bytes.

addr:表示内存地址。

其他工具快捷键

快捷键 效果
ROPgadget --binary 文件 --only 'pop|ret' | grep 'eax' 在正常终端下即可
ROPgadget --binary 文件 --string '/bin/sh' 找字符串地址
ROPgadget --binary=动态链接库 --only 'pop|ret' |grep '' 在库中找
cyclic(数字) 生成垃圾数据
所求地址名 = elf.plt/(got)/(symbols)/(search字节序列 (b"名字))["所求地址名"] 在python3下先elf = ELF("")连接文件
strings 文件名 | grep 字符串
objdump -d -M intel ./文件 | grep 函数名 正常终端下找函数地址
fmtarg 地址 显示此处是格式化字符串函数的第几个参数
./文件名 运行程序
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other 共享文件夹
info(f"libc base value: {hex(libc_base)}") 打印
print("stack"+hex(flg)) 打印
seccomp-tools dump ./文件名 查看函数禁用
gdb.attach(s,"b *0x函数地址\nc") gdb直接定位在目标地址
shellcode编写 shellcode=shellcraft.open("./flag")
shellcode+=shellcraft.read(3,0xcafe0000+0x100,0x50)
shellcode+=shellcraft.write(1,0xcafe0000+0x100,0x50)
shellcode=asm(shellcode)

标签:函数,查看,--,快捷键,字符串,地址,pwn,格式,常用工具
From: https://www.cnblogs.com/myxnb/p/18221072

相关文章

  • pwn题libc换源
    资料:pwn题更换libc版本(z1r0.top)​pwn技术分享——使用patchelf和glibc-all-in-one替换程序依赖的libc文件_哔哩哔哩_bilibili下载libc./download2.23-0ubuntu11.2_amd64#glibc为你想要下载glibc的名字./download_oldlibc#list没有,可以使用./downl......
  • 栈溢出漏洞利用,详解基本ROP,构造rop链条实现攻击(pwn入门)
    写在前面:随着NX(Non-eXecutable)保护的开启,传统的直接向栈或者堆上直接注入代码的方式难以继续发挥效果,由此攻击者们也提出来相应的方法来绕过保护。目前被广泛使用的攻击手法是 返回导向编程 (ReturnOrientedProgramming),其主要思想是在 栈缓冲区溢出的基础上,利用......
  • BUUCTF pwn actf_2019_babystack
    先checksec看保护: ida看主程序:主要部分图片已经说了,由于最多只能往s中写入224字节,padding占据208字节,fakeebp是8字节,ret是8字节,便填满了,由于此处没有backdoor,于是想到栈迁移,在s上部署system("/bin/sh"),在leave_ret到s栈的地址,实行system("/bin/sh")思路分析: 1.先......
  • Linux_vim快捷键
    简单介绍:vi文本编辑器是Linux系统内置的vim具有程序编辑的能力,可以看作是vi的增强版  三种模式:一般模式编辑模式命令模式  模式切换:输入vim文件名,回车,进入一般模式在一般模式下,按i或者a进入编辑模式在编辑模式下,按esc回到一般模式在一般模式下,按 ......
  • ctf-pwn 学习前知(1)
    学习pwn这个抽象到一定程度的东西,前期的坐牢是一定的,一个题目延申出的新知识也是超多的。所以写一个这个板块记录一下自己学习的东西,或许会有(2),(3)....checksec拿buuctf的test_your_nc为例子可以看到checksec后出现了很多东西Arch:amd64-64-little(程序架构信息,这是一个64位......
  • JVM调优维护常用工具之VisualVM 可视化优化工具
    VisualVM是一个工具,它提供了一个可视界面,用于查看Java虚拟机(JavaVirtualMachine,JVM)上运行的基于Java技术的应用程序(Java应用程序)的详细信息。VisualVM对JavaDevelopmentKit(JDK)工具所检索的JVM软件相关数据进行组织,并通过一种使您可以快速查看有关多个......
  • JVM调优维护常用工具之Jconsole 监控管理
    Jconsole(JavaMonitoringandManagementConsole)是JDK中自带的java监控和管理控制台,用于对JVM中内存、线程和类等的监控,是一个基于JMX(javamanagementextensions)的GUI性能监测工具。jconsole使用jvm的扩展机制(接口、抽象类、反射、DubboSPI机制之一JDK中的SPI等)获取......
  • AD常用功能快捷键
    作者:林良胜AD很多功能,而且都有默认的快捷键,接下来盘点了我们常用的一些功能快捷键,对于有使用上的疑惑,可以私信或者评论联系我们,我们会给予大家反馈,并出使用教程单根布线:Ctrl+W/U+T差分布线:U+i改变方向:走线或绘制铜箔过程中点 空格放置过孔:P+V走线过程中放置过孔:走线......
  • pwn练习
    [GFCTF2021]where_is_shellfrompwnimport*>>>elf=ELF("./shell")[*]'/home/za/ctf/pwn/nssctf/whereisshell/shell'Arch:amd64-64-littleRELRO:PartialRELROStack:NocanaryfoundNX:NXen......
  • pwn杂项之linux命令执行
    通常pwn题目,时常会考到对Linux命令的一些使用,比如当cat被禁用的时候,可以使用tac,或者别的命令代替......