刚开始上手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

kernel pwn 入门环境搭建的更多相关文章

  1. Windows C#入门环境搭建

    Windows C#入门环境搭建 1. 安装Microsoft .NET Framework目录: C:\Windows\Microsoft.NET\Framework,查看已经安装的版本. 如果未安 ...

  2. ArcGIS API for Silverlight/ 开发入门 环境搭建

    Silverlight/ 开发入门 环境搭建1 Silverlight SDK下载ArcGIS API for Microsoft Silverlight/WPF ,需要注册一个ESRI Gloab ...

  3. Android开发使用控件入门--环境搭建

    Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD  ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...

  4. 57.NodeJS入门--环境搭建 IntelliJ IDEA

    转自:https://blog.csdn.net/wang19891106/article/details/51127133 NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习N ...

  5. NodeJS入门--环境搭建 IntelliJ IDEA

    NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见. 1.首先 下载安装NodeJS,下载安装IntelliJ IDEA 2.接下 ...

  6. Couchbase入门——环境搭建以及HelloWorld

    一.引言 NoSQL(Not Only SQL),火了很久了,一直没空研究.最近手上一个项目对Cache有一定的要求,借此机会对NoSQL入门一下.支持NoSQL的数据库系统有很多,  比如Redis ...

  7. Jenkins入门-环境搭建(1)

    因为Jenkins的环境搭建比较简单,本来不想来介绍,但是发现有些入门小朋友,从各种网站上下载的各种安装包来搭建,最后导致出现了各种千奇百怪的问题,介于这种情况下我决定还是来写一下Jenkins的环境 ...

  8. Activiti入门 -- 环境搭建和核心API简介

    相关文章: <史上最权威的Activiti框架学习指南> <Activiti入门 -- 轻松解读数据库> 本章内容,主要讲解Activiti框架环境的搭建,能够使用Activi ...

  9. Jenkins入门-环境搭建(1)-转

    因为Jenkins的环境搭建比较简单,本来不想来介绍,但是发现有些入门小朋友,从各种网站上下载的各种安装包来搭建,最后导致出现了各种千奇百怪的问题,介于这种情况下我决定还是来写一下Jenkins的环境 ...

随机推荐

  1. UWB DWM1000 跟随小车原理--- 原理代码解析

    之前在上一篇博文中解释过UWB 跟踪小车原理,这里解释下具体实现方法

  2. Pandas 0 数据结构Series

    # -*- encoding:utf-8 -*- # Copyright (c) 2015 Shiye Inc. # All rights reserved. # # Author: ldq < ...

  3. TypeScript专题-Static和使用技巧

    class People { static _name: string; print() { //alert(this.name);// 编译不通过,doex not exist on type Pe ...

  4. extremecomponents

    具体教程: http://www.cnblogs.com/QQParadise/articles/1488920.html 教程中涉及到springmvc的相关知识 下载地址:http://sourc ...

  5. Multi-Get API

    multiGet API并行地在单个http请求中执行多个get请求. Multi-Get Request MultiGetRequest构造函数为空,需要你添加`MultiGetRequest.It ...

  6. swust oj 1012

    哈希表(链地址法处理冲突) 1000(ms) 10000(kb) 2542 / 6517 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用链地址法.建立链表的时候采用尾插法 ...

  7. Tomcat简单优化

    解决 有两种解决办法: 1)在Tomcat环境中解决 可以通过配置JRE使用非阻塞的Entropy Source. 在catalina.sh中加入这么一行:-Djava.security.egd=fi ...

  8. 基本类型数据转换(int,char,byte)

    public class DataUtil { public static void main(String[] args) { int a = 8; int value = charToInt(by ...

  9. ubuntu16.04安装lnmp环境

     1.安装mysql sudo apt install mysql-server 2.安装nginx和php #添加nginx和php的ppa源 sudo apt-add-repository ppa ...

  10. mybatis 批量更新 Parameter '__frch_item_0' not found. Available parameters are [list]

    一次在做批量更新数据的时候报错 Parameter '__frch_item_0' not found. Available parameters are [list] 记过反复查找,最后才发现是一个 ...