二进制安全,黑客手把手教你搭建系统环境( 二 )


Ubuntu16.04默认是安装了Binutils的 , 所以如果版本太老了可以选择更新一下 。外国架构的组装(例如 , 在Mac OS X上装配Sparc shell)需要安装跨编译的binutils版本 。
编译安装法
wget http://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2
tar -xvf binutils-2.25.1.tar.bz2
mkdir -v ../binutils-build #binutils官方推荐编译binutils要和源码分离
cd ../binutils-build
../binutils-2.20/configure --prefix=/tools
make #编译
make install #编译并安装
 
pwntools-binutils安装
git clone https://github.com/Gallopsled/pwntools-binutils
cd ubuntu
chmod +x install_all.sh
./install_all.sh arm #your architecture
安装Python-Dev(Python Development Headers)
Python-Dev介绍 python-dev或python-devel称为是python的开发包 , 其中包括了一些用C/Java/C#等编写的python扩展在编译的时候依赖的头文件等信息 。比如我们在编译一个用C语言编写的python扩展模块时 , 因为里面会有#include<Python.h>等这样的语句 , 因此我们就需要先安装python-devel开发包 。
一些Pwntools的Python依赖项需要本地扩展 , 所以必须要安装Python-Dev.
apt-get install python-dev
安装Pwntools
github下载安装
git clone https://github.com/Gallopsled/pwntools
cd pwntools
python setup.py install
pip安装
apt-get update
#可以看到有些前面已经装过了 , 这是我复制pwntools手册上的
apt-get install python2.7 python-pip python-dev git libssl-dev libffi-dev build-essential
pip install --upgrade pip
pip install --upgrade pwntools
如果没报错 , 进入python终端 , 输入import pwn , 然后回车 , 没报错应该就是安装好了 现在尝试一下pwntools的asm功能:
>>> pwn.asm("xor eax,eax")
'1\xc0'
如果有正确输出 , 即说明这个功能是可以用的 , 到这里就算安装完成 。
gdb+peda+pwndbg安装
gdb介绍 GDB(GNU Debugger)GNU开发的Unix/Linux下的调试工具 。其功能强大 , 现描述如下: GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序 , 可以按照你的自定义的要求随心所欲的运行程序 。2.可让被调试的程序在你所指定的调置的断点处停住 。(断点可以是条件表达式) 3.当程序被停住时 , 可以检查此时你的程序中所发生的事 。4.动态的改变你程序的执行环境 。gdb不同于windows下的ollydbg和windbg , 它是命令行下的工具 , 没有图形界面 , 通过输入命令与它交互 , 来调试程序 , 查看程序的运行过程,这一点和windbg有点相似 。也是很多致力于安全研究、漏洞发现的人的一个神器 。
Ubuntu16.04是默认安装了gdb的 , 可以使用gdb --version查看gdb的版本 , 如果没有安装可以使用下面一条命令进行安装 , 也可以编译安装 。
sudo apt-get install gdb
peda介绍 peda全称是Python Exploit Development Assistance for GDB 。PEDA是为GDB设计的一个强大的插件它提供了很多人性化的功能 , 比如高亮显示反汇编代码、寄存器、内存信息 , 提高了debug的效率 。同时 , PEDA还为GDB添加了一些实用新的命令 , 比如checksec可以查看程序开启了哪些安全机制等等 。它是用Python写的一个工具 , 可以辅助编写exp,运行在Unix/Linux系统上 。
#安装peda
git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
echo "DONE! debug your program with gdb and enjoy"
peda也可以通过pip安装
sudo apt-get install pip
pwndbg介绍 Pwndbg是一个Python模块 , 它直接加载到GDB中 , 并提供了一套实用工具和一组辅助工具来绕过GDB的所有cruft , 并将粗糙的边缘平滑掉 。过去的许多其他项目(如gdbinit、PEDA)和现在(例如GEF)的存在填补了这些空白 。它们都提供了优秀的经验和优秀的特性——但是它们很难扩展(有些是未维护的 , 所有的都是单个100KB、200KB或300KB文件) 。Pwndbg的存在不仅是为了取代它的所有前辈 , 而且还有一个快速运行的干净的实现 。
Pwndbg支持最好的环境是: Ubuntu14.04 and GDB7.7 Ubuntu16.04 and GDB7.11
#安装Pwndbg
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
这些工具的用法打算另写一篇文章 , 不然这篇文章实在是太长了 。


推荐阅读