BitBlaze Vine和TEMU的安装

2023-11-06

在安装之前自然需要下载Vine和TEMU的源代码啦。Vine的官网(戳这里)和TEMU的官网(戳这里)分别提供了Vine和TEMU的源码下载。在下载完成后,下面开始Vine和TEMU的安装。

 

一、gcc-3.4的安装和设置

本次安装的平台是Ubuntu 12.04,使用的编译器是gcc-3.4.6。Ubuntu 12.04的默认编译器是gcc-4.6,但是TEMU安装的编译只支持gcc-3.4版本(没错,3.3不行,4.x也不行,%>_<%)。结果就是,在正式开始进行安装时,还需要先将编译器的版本“升级”为3.4.6。

1.      确认一下这些都已经安装了

sudo apt-get install ncurses-dev

sudo apt-get install bison

sudo apt-get install flex

sudo apt-get install build-essential

2.      下载安装gcc-3.4.6

下载地址:戳我呀戳我呀戳我呀

安装gcc-3.4.6需要的包有:

gcc-3.4-base_3.4.6-6ubuntu3_i386.deb

gcc-3.4_3.4.6-6ubuntu3_i386.deb

cpp-3.4_3.4.6-6ubuntu3_i386.deb

g++-3.4_3.4.6-6ubuntu3_i386.deb

libstdc++6-dev_3.4.6-6ubuntu3_i386.deb

将这些包放在一个目录下,本文中为/home/gcc-3.4。

进入该目录并执行安装命令:

cd /home/gcc-3.4

dpkg –i *.deb

3.      切换默认的gcc版本

gcc-3.4.6安装完成之后需要将它设置成默认编译器,命令如下:

update-alternatives –config gcc

可以看到系统里现有的版本如下:


选择我们需要的gcc-3.4版本为默认(automode),即输入0或1。

到这里gcc-3.4.6已经安装并且设置完毕。可以通过命令:gcc –v来查看当前的版本号。

 

二、Vine的安装

1.      本文中的Vine和TEMU都安装在目录/home/bitblaze下。首先创建该目录,并将Vine解压到该目录下:

cd ~

mkdir bitblaze

cd bitblaze

tar xvzfvine-1.0.tar.gz

此时,在解压后的目录/home/bitblaze/vine-1.0/doc下能够找到文件install-vine-release.sh文件,里面将会指导你安装vine的步骤。本文之后的步骤与之相同。

2.      安装编译Vine使用的g++:

sudo apt-get install g++

3.      由于Vine的后端使用了OCaml,需要安装OCaml支持部件:

sudo apt-get install ocamlocaml-findlib libgdome2-ocaml-dev camlidl  libextlib-ocaml-dev ocaml-native-compilers

sudo apt-get installlibocamlgraph-ocaml-dev

4.      安装BFD库:

sudo apt-get install binutils-dev

5.      安装building documentation

sudo apt-get install texlive texlive-latex-extratransfig hevea

6.      终于到了安装Vine:

cd vine-1.0

./configure

make

cd ../doc/howto

make doc

至此,Vine已经安装完成。

7.      安装Vine遇到的一些问题

1) 在执行sudo make的时候,遇到:

In file included from./disasm/asm_program.cpp:16:0:

/usr/include/libiberty.h:106:36:error: newdeclaration ‘char* basename(const char*)’

/usr/include/string.h:603:28:error:ambiguates old declaration ‘const char* basename(const char*)’

......

解决方法:

编辑文件libasmir/src/disasm/asm_program.cpp,在#include"libiberty.h"前添加:

#defineHAVE_DECL_BASENAME 1

2)再次sudo make,又出现新的错误:

./vex/irtoir-i386.cpp:In function‘std::string reg_offset_to_name(int)’:

./vex/irtoir-i386.cpp:269:14:error: a castto a type other than an integral or enumeration type cannot appearin aconstant-expression

……

在头文件libvex_basictypes.h使用offset的代码前面添加:

#include<stddef.h>

用系统的offsetof定义取代vine的定义

再次sudo make就可以通过了


三、TEMU的安装

1.      同样的,先将TEMU解压到bitblaze目录下:

cd ~

cd bitblaze

tar xvzf/tmp/temu-1.0.tar.gz

在解压后的目录/home/bitblaze/temu-1.0/doc下有文件install-temu-release.sh知道我们如何安装temu。文档中,除了安装gcc的方法不能用外,其他的都是正确的。本节,剩余的部分与文档内容相同。

2.      安装QEMU相关的内容

sudo apt-get install qemu

sudo apt-getbuild-dep qemu

3.      安装TEMU

cd temu-1.0

./configure --target-list=i386-softmmu --proj-name=tracecap  --cc=gcc-3.4--prefix=$(pwd)/install

make

make install

至此,TEMU安装完成。

4.      TEMU安装遇到的问题

在执行编译指令

./configure --target-list=i386-softmmu --proj-name=tracecap  --cc=gcc-3.4 --prefix=$(pwd)/install

时,产生错误,显示/usr/lib/ld: cannot find –lgcc_s

解决方法:

首先使用指令:locate libgcc_s.so在/usr/lib/i386-linux-gnu目录下面找到libgcc_s.so.1

进入/usr/lib目录:cd /usr/lib

建立新的链接:sudo ln –sv /lib/i386-linux-gnu/libgcc_s.co.1 libgcc_s.so。成功建立新的链接之后,问题解决。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BitBlaze Vine和TEMU的安装 的相关文章

  • 2021-07-25

    神经网络 M P神经元 感知机 感知机 神经网络 M P神经元 1 M P神经元 模拟生物行为的数学模型 接手n个输入 来自其他的神经元 并给各个输入赋予权重计算加权和 再跟自己特有的阀值 比较 通常用减法 最后经过激活函数 模拟 抑制 和
  • Markdown 语法完全指南

    这里写目录标题 简介 1 标题 2 段落和换行 3 文本样式 粗体和斜体 删除线和代码 嵌套标记 4 链接 内联链接 引用链接 5 列表 无序列表 有序列表 嵌套列表 任务列表 6 引用块 7 插入图片 8 水平线 9 代码块 10 表格
  • C++中while循环中cin语句被跳过问题解析

    今天在写代码的时候 遇到了一个非常奇怪的问题 while true int select cout lt lt 请输入查找的方式 lt lt endl cout lt lt 1 按职工编号查找 lt lt endl cout lt lt 2
  • 模型选择、欠拟合和过拟合

    训练误差 training error 模型在训练数据集上表现出的误差 泛化误差 generalization error 模型在任意一个测试数据样本上表现出的误差的期望 常常通过测试数据集上的误差来近似 机器学习模型应该关注泛化误差 模型
  • JWT(Json Web Token)的原理、渗透与防御

    关于JWT kid安全部分后期整理完毕再进行更新 2023 05 16 JWT的原理 渗透与防御 目录 JWT的原理 渗透与防御 含义 原理 JWT的起源 传统session认证问题 token与session区别 JWT的结构与内容 JW
  • 2021-03-18-C++学习之17-stack、queue、list

    一 stack容器 1 stack基本概念 stack是一种先进后出 First In Last Out FILO 的数据结构 它只有一个出口 只有顶部元素才可以被外界使用 因此栈不允许有遍历行为 通常有empty函数来判断容器是否为空 s
  • 学习笔记-Spark环境搭建与使用

    一 20 04 Ubuntu安装 清华源ISO源 https mirrors tuna tsinghua edu cn ubuntu releases 20 04 下载链接 https mirrors tuna tsinghua edu c
  • 编译器报:lambda表达式中使用的变量应为final或有效final 解决方案

    目录 问题描述 原因分析 解决方案 1 声明为final 2 使用有效final 4 使用数组或集合 错误问题的最终解决示例 总结 问题描述 今天在写代码的过程中想要在stream map 方法内部对外部变量进行赋值 结果发现编译器报错 提
  • Qiskit API架构介绍(一)

    API是一组类 函数和数据结构 用于与设备和模拟器进行接口 并运行实验 Qiskit实验概述 Qobj中的实验序列定义了运行在后端backend上的量子操作 单个Qobj定义了一批要并发运行的实验 即 Qobj中每个实验按列出的顺序运行一个
  • CentOS 7 挂载本地光盘作为镜像源

    1 上传iso文件到 usr local src 一定要确保这个ISO文件上传完毕后再进行下面的操作 2 创建挂载目录 mkdir media CentOS7 3 挂载iso文件 mount t iso9660 o loop usr loc
  • 【尚硅谷】SSM框架之SSM学习笔记

    MyBatis MyBatis简介 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis 2010年6月这个项目由Apache Software Foundation迁移到了Google Code 随着开发团队转投
  • 神经网络编程技巧(一):两个矩阵相乘报错,np.random.randn(5,)不是矩阵,np.random.randn(5,1)才能得到1*5的矩阵,np.dot()函数

    np dot函数主要用于向量的点积和矩阵的乘法 格式如下np dot a b 其中a b均为n维向量 具体例子参考下面的代码及其结果 在神经网络中经常使用这个函数 能够节约大量的时间 原来复杂的公式在编程时只需要这一行代码即可实现 在编写p
  • 《Web应用安全权威指南》学习笔记

    第1章 什么是Web应用的安全隐患 第2章 搭建试验环境 邮件发送服务器Postfix POP3服务器Dovecot SSH服务器OpenSSH Web应用调试工具Fiddler 第3章 Web安全基础 HTTP回话管理 同源策略 Cook
  • 懒人式迁移服务器深度学习环境(完全不需要重新下载)

    换服务器了 想迁移原来服务器上的深度学习环境 但又觉得麻烦懒得重新安装一遍anaconda pytorch 有没有办法能不费吹灰之力直接迁移 接下来跟着我一起 懒汉式迁移 本方法适用于在同一内网下的两台服务器之间互相迁移 不在同一局域网下的
  • 2022全国职业技能大赛-网络安全赛题解析总结④(超详细)

    2022全国职业技能大赛 网络安全赛题解析总结 自己得思路 模块A 基础设施设置与安全加固 20分 模块B 网络安全事件响应 数字取证调查和应用安全 40分 模块C CTF夺旗 攻击 20分 模块D CTF夺旗 防御 20分 有什么不懂得可
  • centos7 Jumpserver堡垒机部署以及使用详情

    一 跳板机 堡垒机的概念 1 跳板机 跳板机就是一台服务器 运维人员在使用管理服务器的时候 必须先连接上跳板机 然后才能去操控内网中的服务器 才能登录到目标设备上进行维护和操作 跳板机的缺点 仅仅实现服务器登录安全 但是没有实现对于运维人员
  • CST2020 安装包和安装步骤

    安装包和破解码的百度云链接 链接 https pan baidu com s 1RNSWxVxb DIu8dg8gkCzAw 提取码 dve7 如果失效可评论留言 谢谢 1 关闭防火墙和杀毒软件 2 解压后 以管理员模式运行setup文件
  • 【9.19】正则表达式——sed、awk

    9 19 正则表达式 sed awk 9 4 9 5 sed 1 sed 匹配 2 sed打印具体行数 3 sed 替换功能 9 6 9 7 awk 1 awk 匹配 2 awk 数学运算表达式 3 两个字段比较大小 4 内置变量 OFS
  • C 库函数 - gmtime()

    描述 C 库函数 struct tm gmtime const time t timer 使用 timer 的值来填充 tm 结构 并用协调世界时 UTC 也被称为格林尼治标准时间 GMT 表示 声明 下面是 gmtime 函数的声明 st
  • C 库函数 - mktime()

    描述 C 库函数 time t mktime struct tm timeptr 把 timeptr 所指向的结构转换为自 1970 年 1 月 1 日以来持续时间的秒数 发生错误时返回 1 声明 下面是 mktime 函数的声明 time

随机推荐

  • C\C++各种变量存放区域(代码、数据、堆、栈)

    C C 各种变量存放区域 代码 数据 堆 栈 文章目录 C C 各种变量存放区域 代码 数据 堆 栈 变量 数据 变量 数据存放区域 练习 请说明下面的指针分别指向什么位置 BSS Block Started by Symbol 区 为什么
  • numpy实现卷积两种方法

    暂时针对二维卷积 方法1 按定义计算 def numpy conv inputs myfilter h ori w ori inputs shape h k w k myfilter shape h new w new h ori h k
  • 如何控制小程序的tabBar的显示和隐藏

    1 使用wx hideTabBar 方法隐藏tabBar 2 使用wx showTabBar 方法显示tabBar 参考文档
  • 适配器模式代码示例

    package com example shipeiqi public interface ThreeElectricOutlet 用来刻画三相插座 public abstract void connectElectricCurrent p
  • maven-metadata.xml使用

    最近在开发过程中 发现工程中的一些包有问题 主要分为以下两种 1 最新包 版本号未变 只是被更新了 少了一个方法 2 jar包被更新了 但是无法更新最新的包下来 首先先确定一下更新包会导致更新哪些文件 下面都以a 1 0 1 snapsho
  • 学习笔记:机器学习之支持向量机(一、最大间隔算法)

    活动地址 CSDN21天学习挑战赛 1 简介 支持向量机也是一种二分类模型 它是通过在特征空间中建立间隔最大的分类器 这是有别于感知机模型的一点 支持向量机可分为线性可分支持向量机 线性支持向量机 非线性支持向量机 2 函数间隔 几何间隔
  • node后台快速开发框架

    任何可以用 JavaScript 来写的应用 最终都将用 JavaScript 来写 node js是用JS语言编写的 JaveScript已经是世界上最流行的语言之一 用它可以实现任何功能需求 无论是后台开发 前端 App 桌面应用程序
  • 华为OD机试 C++ 最佳植树距离

    题目 小明得到了一项任务 在一个沙地里种树 不过 有些地方不能种树 只能选特定的位置来种 为了让树之间的空间尽可能大 从而更好地防沙 你要帮小明决定每棵树应该种在哪里 举个例子 如果合适的种树地点是1 3 5 6 7 10 13 你有3棵树
  • CountDownLatch理解一:与join的区别

    首先 我们来看一个应用场景1 假设一条流水线上有三个工作者 worker0 worker1 worker2 有一个任务的完成需要他们三者协作完成 worker2可以开始这个任务的前提是worker0和worker1完成了他们的工作 而wor
  • zabbix-server无法启动

    故障现象 监控界面无数据 1 netstat lntup 先查看zabbix server进程是否正常 2 tail f var log zabbix zabbix server log 查看后台日志 表示一个子进程死掉 是一个zabbix
  • 平凯星辰合伙人余梦杰:全球化和云计算趋势下的开源生态构建

    开源是技术发展的大趋势 其开放的全球生态 敏捷的技术创新以及快速的产品迭代 都有助于企业的发展 而云的蓬勃发展则加速了企业数字化的进程 开源和云两者交融 必然会迸发更多势能 2022年7月27日 在2022开放原子全球开源峰会数据库论坛上
  • 在 IDEA 中连接数据库实现增删改查,使用dao封装数据库操作+bean封装实体类+util封装数据库连接与释放(含源码下载)

    在 IDEA 中连接数据库实现增删改查 使用dao封装数据库操作 bean封装实体类 util封装数据库连接与释放 主要内容 利用SQLyog图形化工具建立数据库 具体代码搭建 bean目录下的 用户实体类User util中对数据库的连接
  • ARM汇编指令集——跳转指令、内存传输指令、软中断产生指令、协处理器指令、伪指令、伪操作(如何从底层直接操纵CPU)

    一 跳转指令 完成程序跳转 实质就是对PC操作 赋值 b bl跳转是短跳转 跳转范围 32MB start mov r0 1 mov r1 2 mov r3 3 b func b跳转 不带返回值 mov r4 4 func mov r5 5
  • vue目录树组件(树状结构列表)

    一般数据类展示内容 大多采用树状结构展示内容 类似效果如下 关注微信公众号 查看效果 左侧是导航分类 可以进行新建 对单项导航分享和删除 单击导航 在右侧查询出当前导航下所有目录结构 可以新建目录 新增类型分为三种 目录可以无限嵌套 当然也
  • flutter开发过程坑收集(二) coding相关

    1 Row 里面套 textfield报错 The following assertion was thrown during performLayout BoxConstraints forces an infinite width Ro
  • 常用端口号与对应的服务

    在网络技术中 端口 Port 大致有两种意思 一是物理意义上的端口 比如 ADSL Modem 集线器 交换机 路由器用于连接其他网络设备的接口 如RJ 45端口 SC端口等等 二是逻辑意义上的端口 一般是指TCP IP协议中的端口 端口号
  • Mysql 5.7.21 免安装版下载配置

    下载地址为 https dev mysql com downloads mysql 最下面根据自己的操作系统选择合适的型号 下载完以后解压缩到自定义的路径 这里注意的是路径中不要存在中文 解压缩后以后 新建一个ini形式的文件 名字为my
  • 动态规划or贪心算法--剪绳子/切割杆

    需求一 剪绳子 将长度为n的绳子剪成若干段 求各段长度乘积的最大值 分析 1 动态规划 设f n 代表长度为n的绳子剪成若干段的最大乘积 如果第一刀下去 第一段长度是i 那么剩下的就需要剪n i 那么f n max f i f n i 而f
  • 树莓派使用pip安装cython

    树莓派使用pip安装cython 百度到的安装方法 pi raspberrypi pip3 install Cython Looking in indexes https pypi org simple https www piwheels
  • BitBlaze Vine和TEMU的安装

    在安装之前自然需要下载Vine和TEMU的源代码啦 Vine的官网 戳这里 和TEMU的官网 戳这里 分别提供了Vine和TEMU的源码下载 在下载完成后 下面开始Vine和TEMU的安装 一 gcc 3 4的安装和设置 本次安装的平台是U