PWN工具 工具 IDA 下载 IDA_pro_7.7_crack
使用 代码区、工具区、函数区
快捷键
功能
Shift+F12
查看字符串
Space
源码/流图 切换
a
切换为字符串
d
切换为data(byte, word, …)
g
跳转至地址
右键->Array
定义数组
Shift+E
导出数据
;
注释
F5
反编译
n
修改函数名、变量名
y
修改变量类型、函数返回值类型
/
注释
x
查看函数调用
(更多功能在实战中探索…)
gef 下载
快速下载
要求:GDB 8.0+ python 3.6+
1 2 3 bash -c "$(curl -fsSL https://gef.blah.cat/sh) " bash -c "$(wget https://gef.blah.cat/sh -O -) "
查看 ~/.gdbinit
如果有 source ~/.*gef*.py 说明安装成功
1 2 cat ~/.gdbinit source ~/.gef.py
Git下载
1 2 git clone https://github.com/hugsy/gef.git echo source `pwd `/gef/gef.py >> ~/.gdbinit
使用 直接执行 gdb <filename>
1 2 3 4 5 6 7 8 9 $ gdb bin For help , type "help" . Type "apropos word" to search for commands related to "word" ... GEF for linux ready, type `gef' to start, `gef config' to configure 90 commands loaded and 5 functions added for GDB 13.1 in 0.00ms using Python engine 3.11 Reading symbols from bin... (No debugging symbols found in bin) gef➤
命令
功能
aslr on/off
开启/关闭aslr
start
启动调试
b * [addr]
在addr处下断点
info b
查看所有断点(对应标号)
d [断点标号]
删去断点
c
执行到下个断点
ni [n]
执行一(n)个指令
n
执行单行代码(带源码情况下)
x/[size+type] [addr]
查看地址内容
context
界面展示指定内容
define
自定义命令
gef config
配置
stack [n]
查看栈上n行信息
heap [chunks|bins|arena]
查看堆信息
更多GDB基础命令:https://visualgdb.com/gdbreference/commands/
更多GEF实用命令:https://hugsy.github.io/gef/commands/aliases/
下载
使用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 from pwn import *context.log_level='debug' filename = './shellwego' proc = process(filename) belf = ELF(filename) gscript = ''' b * 0x0000000004C1882 c ''' gdb.attach(proc, gdbscript=gscript) poprdi_ret = 0x444fec poprsi_ret = 0x41e818 poprdx_ret = 0x49e11d poprax_ret = 0x40d9e6 syscall = 0x40328c proc.sendlineafter(b'ciscnshell$ ' , b'cert nAcDsMicN S33UAga1n@#!' ) payload = b'echo ' +b'h' *0x100 +b' ' +b'h' *0x103 proc.sendlineafter(b'# ' , payload) proc.send(b"/bin/sh\x00" ) res = proc.recv() proc.recvuntil(b'hhh' ) proc.interactive() pause()
使用文档:https://docs.pwntools.com/en/stable/about.html
ROPgadget 下载
one_gadget 下载 1 2 apt install ruby gem install one_gadget
glibc_all_in_one 下载 1 2 git clone https://github.com/matrix1001/glibc-all-in-one ./update_list
使用 1 2 cat list./download [target]
patchelf 下载
使用 1 2 patchelf --set-interpreter [ld.so] [filename] patchelf --replace-needed [old_libc] [new_libc] [filename]