刚开始上手kernel pwn,光环境就搭了好几天,应该是我太菜了。。
好下面进入正题,环境总共就由两部分构成,qemu和gdb。这两个最好都需要使用源码安装。
我使用的安装环境为
qemu:安装前要先安装
sudo apt-get install libsdl2-2.0
sudo apt-get install libsdl2-dev
sudo apt-get install libpixman--dev
sudo apt-get install flex bison
否则会出现QEMU界面弹不出来的问题。
源码下载网址:https://download.qemu.org/
然后是编译安装:
./configure --enable-debug --target-list=x86_64-softmmu
sudo make
sudo make install
gdb:
一开始使用的是直接安装的gdb,然后卸不掉了,只好重新建一个虚拟机来配环境。
gdb源码下载官网:http://www.gnu.org/software/gdb/download/
gdb源码下载地址:http://ftp.gnu.org/gnu/gdb
国内镜像:https://mirrors.nju.edu.cn/gnu/
gdb在源码编译前要先改gdb/remote.c中的process_g_packet函数,其中没有做处理而报了个error,这里添加处理:
if (buf_len > * rsa->sizeof_g_packet)
error (_("Remote 'g' packet reply is too long: %s"), rs->buf);
改为
if (buf_len > * rsa->sizeof_g_packet) {
rsa->sizeof_g_packet = buf_len;
for (i = ; i < gdbarch_num_regs (gdbarch); i++)
{
if (rsa->regs[i].pnum == -)
continue;
if (rsa->regs[i].offset >= rsa->sizeof_g_packet)
rsa->regs[i].in_g_packet = ;
else
rsa->regs[i].in_g_packet = ;
}
}
否则的话在之后使用gdb连上之后可能会报selected thread is running。以及Remote 'g' packet reply is too long的错误。
对于该错误,网上有相关建议是在gdb中set architecture i386:x86-64:intel设置架构,然后我这里没有效果。
安装gdb时如果遇到makeinfo is missing on your system ,需要安装sudo apt-get install texinfo
另外如果有安装过gdb可以通过sudo apt-get source gdb获取到源码,但注意需要在Software&Update中把Source code勾选上。
本来呢,故事到这里就结束了,然而并没有,。。
然后gdb告诉我Python scripting is not supported in this copy of GDB.
所以gdb的安装为
sudo apt-get install texinfo
./configure --with-python
make
make install
然后又新建一个虚拟机跑了一遍,。。
然后要将虚拟机->硬件->虚拟化Inter VT-x/EPT..选中。
不然会出现如下错误:
Could not access KVM kernel module: No such file or directory
qemu-system-x86_64: failed to initialize KVM: No such file or directory
然后是相关工具的安装:
sudo pip install pwntools
sudo pip install ropper
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
Windows C#入门环境搭建
Windows C#入门环境搭建 1. 安装Microsoft .NET Framework目录: C:\Windows\Microsoft.NET\Framework,查看已经安装的版本. 如果未安 ...
ArcGIS API for Silverlight/ 开发入门 环境搭建
Silverlight/ 开发入门 环境搭建1 Silverlight SDK下载ArcGIS API for Microsoft Silverlight/WPF ,需要注册一个ESRI Gloab ...
Android开发使用控件入门--环境搭建
Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...
57.NodeJS入门--环境搭建 IntelliJ IDEA
NodeJS入门--环境搭建 IntelliJ IDEA
NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见. 1.首先 下载安装NodeJS,下载安装IntelliJ IDEA 2.接下 ...
Couchbase入门——环境搭建以及HelloWorld
一.引言 NoSQL(Not Only SQL),火了很久了,一直没空研究.最近手上一个项目对Cache有一定的要求,借此机会对NoSQL入门一下.支持NoSQL的数据库系统有很多, 比如Redis ...
Jenkins入门-环境搭建(1)
因为Jenkins的环境搭建比较简单,本来不想来介绍,但是发现有些入门小朋友,从各种网站上下载的各种安装包来搭建,最后导致出现了各种千奇百怪的问题,介于这种情况下我决定还是来写一下Jenkins的环境 ...
Activiti入门 -- 环境搭建和核心API简介
相关文章: 本章内容,主要讲解Activiti框架环境的搭建,能够使用Activi ...
Jenkins入门-环境搭建(1)-转
因为Jenkins的环境搭建比较简单,本来不想来介绍,但是发现有些入门小朋友,从各种网站上下载的各种安装包来搭建,最后导致出现了各种千奇百怪的问题,介于这种情况下我决定还是来写一下Jenkins的环境 ...
随机推荐
Appium学习实践(五)遇到的坑(记录自己工作中遇到的坑以及解决方案,不定时更新)
1.错误截图,有时候测试用例执行错误的话,相对于复杂的log,一张错误截图也许能更明确哪里出的问题(当然有时,截图+log还是最好了) 坑:本来是想测试用例fail的时候捕获异常来执行截图操作,但是由 ...
git 版本控制
用gitbash进入类似命令行的窗口 用命令 cd e:/learngit 进入该目录,然后在此目录下初始化$ git init, 于是该文件夹就成为了一个工作区,里面的.git文件就是版本库(rep ...
Linux下安装php加速软件Xcache
Nginx网站根目录:/usr/share/nginx/html 1.安装xcache cd /usr/local/src #进入软件包存放目录 wget http://xcache.lighttpd ...
python学习之——eclipse+pydev 环境搭建
最终选用 eclipse+pydev,网上相关资料也是极多的~~~ 1.安装python: 2.安装eclipse: 3.eclipse中安装pydev,eclipse中help—>eclipl ...
Win7安装错误提示与解决办法大全
Windows7安装时有许多提示错误,许多朋友不知道如何解决,那就看看这篇软媒整理的文章吧,或许有些帮助.本文出现的问题同样应用于其他版本的Windows 7,甚至是Vista,收藏一下本文,或者某天 ...
Apache CXF框架结构和基本原理(转)
原文链接:http://blog.sina.com.cn/s/blog_6182547f01017pak.html CXF旨在为服务创建必要的基础设施,它的整体架构主要由以下几个部分组成: 1.Bus ...
iOS开发tips总结
tip 1 : 给UIImage添加毛玻璃效果 func blurImage(value:NSNumber) -> UIImage { let context = CIContext(opti ...
Node版本管理工具-NVM的安装与使用(windows系统)
友情提示:为避免踩坑,建议浏览全文后动手操作!!! 一.nvm是什么 看到这篇文章的猿/媛们肯定不会问这个问题了,但是我还是要说,哈哈哈! 无论工作还是干嘛,就不会一直做项目,所以肯定也不会一直用一个 ...
window上安装zabbix agent使用案例
下载对应的zabbix windows版本 因为zabbix server使用的版本为3.2.0版本 所以下载window 3.2的版本 https://www.zabbix.com/download ...
solr 5.0.0 bin/start脚本详细解析
参考文档:https://cwiki.apache.org/confluence/display/solr/Solr+Start+Script+Reference#SolrStartScriptRef ...