官方文档缩略

官方链接:http://code.google.com/p/decaf-platform/wiki/build_conf

类似工作:http://blog.csdn.net/iamnewtocoding/article/details/41987835,不过这篇文章介绍的是离线安装。

主机环境:Ubuntu 12.04 i386

1.QEMU

sudo apt-get install qemu

sudo apt-get build-dep qemu

2.库

sudo apt-get install binutils-dev

sudo apt-get install libboost-all-dev

3.编译

源码下载: https://code.google.com/p/decaf-platform/

目前最新的版本是1.9,源码包里可能有Decaf和DroidScope的源码。进入decaf源码目录,进行二进制分析的话需要添加以下编译选项。

./configure --enable-tcg-taint --enable-tcg-ir-log--enable-vmi

默认打开了vmi,关闭了前两个。

make

4.创建vm

DECAF目前支持x86/ARM平台上的32位win xp,win7,linux,创建qcow格式镜像就行。网上也有qemu创建镜像的教程,按自己的需求创建即可。(对于是否使用virtualbox和vmware格式镜像那段有点无语,看来想用新版就耐心等待安装过程吧。)

然后使用qemu-system-i386安装虚拟机(可以参考教程:http://my.oschina.net/kelvinxupt/blog/265108?utm_source=tuicool&utm_medium=referral)。这里没说使用普通版本的qemu还是DECAF目录下的。

5.Linux虚拟机配置VMI

这一步对guest os为windows的用户可以跳过。

(1)将主机decaf源码目录下shared/kernelinfo/procinfo_generic/中的procinfo.c和Makefile文件拷贝到vm某目录下,然后cd到这个目录。

make
sudo insmod ./procinfo.ko
这一步安装模块时候出了 "Operation not permitted"的问题,但官方教程里说不要紧,这个模块只用来打印一些信息。

(2)更新主机decaf源码目录下shared/kernelinfo/procinfo_generic/中的procinfo.ini文件。

dmesg会打印出如下类似信息,将这些信息前面的[xxxx]去掉,然后复制到procinfo.ini里去。

  [20451.579763] strName = 3.2.0-37-generic[20451.579764] init_task_addr  = 3246178336[20451.579765] init_task_size  = 3236...[20451.579787] ti_task         = 0

将文件最上面的[info]区的total值增1,然后在文件尾端复制新的vm信息,文件格式如下。

  [info]total = 7...[7]strName = 3.2.0-37-genericinit_task_addr  = 3246178336init_task_size  = 3236...ti_task         = 0;DON'T FORGET TO UPDATE info.total

官方教程里有提到一个可能的错误,我在执行过程中没有遇到:UTS_RELEASE is not defined or utsrelease.h cannot be found. Define UTS_RELEASE as a unique string by yourself.
(3)配置共享库,这个步骤是可选的。

按照官方说法,这一步是为了给库函数下钩子配置偏移量。在主机decaf源码目录下shared/kernelinfo/procinfo_generic/lib_conf目录下存放着guest os的库配置文件,配置文件的名字是dmesg命令中得到的strName.ini(如3.2.0-37-generic.ini)。配置文件中,每个共享库都会占一个区,这个区包含一个域decaf_conf_libpath,域值为不带任何路径的库文件名,如decaf_conf_libpath = libc-2.13.so,然后每个函数都会占一个域,具体信息可以通过如下命令得到,注意库文件路径。

objdump -T [path_of_shared_library_in_guest_OS] | awk '/\.text/ && $6 !~ /\(.*\)/ {printf("%-30s= %d\n",$7,"0x"$1)}'

6.启动vm

进入主机decaf源码目录i386--softmmu,然后用这里的qemu-system-i386程序起虚拟机。

./qemu-­system­-i386 -­monitor stdio ­-m 512 ­-netdev user,id=mynet ­-device rtl8139,netdev=mynet “YOUR_IMAGE”

这里添加-snapshot可以使用快照,在5里面,我自己随意弄了一个配置文件,vm就起不来了,一直在初始状态闪屏,然后把那个文件删掉了再起,进入ubuntu画面的时候出现The disk drive for /tmp is not ready yet or not present,但是过了一会还是正常进去了,但是问题是慢得根本用不了,目前也就到这里了。

——————————————————————————————————————————————————

后来我发现了问题所在,DECAF是不支持KVM加速的,所以无论是安装和启动都无比慢,此外还和虚拟机系统有关,我尝试了ubuntu 12.04和win7慢得难以操作,而xp在可接受的速度范围内,作者说ubuntu9.04还可以,另外配置打开的选项越多会越慢,最初可以先只打开vmi。

这个问题的链接:https://groups.google.com/forum/#!msg/decaf-platform-discuss/tUgnMvOlxvM/xZce-GMDdwAJ

7.编译和安装插件

插件测试用例:http://code.google.com/p/decaf-platform/downloads/detail?name=decaf_plugins.tar.gz#makechanges

新版本的DECAF运行这个插件会出错,新版直接用decaf/plugins目录下的插件就行了。

(1)编译插件
cd ./callbacktests
./configure --decaf-path=root directory of decaf
make

这一步之后可能需要重启主机,不然加载插件的时候会提示load_plugin是未知的命令。
(2)起虚拟机然后加载插件
./qemu-­system­-i386 -­monitor stdio -­m 512 ­-netdev user,id=mynet -­device rtl8139,netdev=mynet “YOUR_IMAGE”
help
load_plugin XXX/callbacktests/callbacktests.so
(2)跟踪程序
do_callbacktests calc.exe

然后在虚拟机里运行计算器,可以看到命令行里的结果,然而我在关闭计算器然后再次打开的时候,虚拟机就再没有任何响应了。。。who knows why!

暂时不知道那几个配置选项分别是哪些功能以及如何编写插件,再接再厉!目前安装过程中遇到问题最好的解决办法是google,找到论坛里遇到相同问题的帖子。

Decaf-platform安装篇相关推荐

  1. oracle ogg下载安装,【OGG】OGG的下载和安装篇

    [OGG]OGG的下载和安装篇 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~ ...

  2. 【OGG】OGG的下载和安装篇

    [OGG]OGG的下载和安装篇 [OGG]OGG的下载和安装篇 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其 ...

  3. OracleDesigner学习笔记1――安装篇

    OracleDesigner学习笔记1――安装篇   QQ:King MSN:qiutianwh@msn.com Email:qqking@gmail.com 一.       前言 Oracle是当 ...

  4. Saltstack系列之一——安装篇

    最近,和暴雪中国区带技术的一个人聊了不少,他们在测试salt,不过目前用的是puppet,服务器数量也快要1000多台.那为什么他们会去考虑测试salt.另谋他法呢,肯定是有salt一定优势的. 其实 ...

  5. 虚拟机软件之vmware workstation安装篇

    虚拟机软件之vmware workstation安装篇 一.简单介绍 Vmware同virtualbox一样,是一款虚拟机软件,同样可以安装现今世界是主流的操作系统,是属于vmware公司开发的一款软 ...

  6. python学习历程-安装篇(一)

    python学习历程-安装篇 之前工作中数据量很少,每天也就是用excel发一下报表,函数已经足够应付工作内容,但心里一直渴望学习更深层次一点的数据分析(崇拜那些技术大神),网上看了很多有关数据分析挖 ...

  7. Mongodb学习(安装篇): 在centos下的安装

    安装篇 ###下载解压文件 [root@192 lamp]# wget http://fastdl.mongodb.org/linux/mongodb-linux-i686- 2.2.2.tgz ## ...

  8. 2、SharePoint安装篇——之安装Microsoft Office SharePoint Server 2007

    上一篇1.SharePoint安装篇--之安装Active Directory 下一篇3.SharePoint安装篇--之配置Microsoft Office SharePoint Server 20 ...

  9. Hadoop学习(source方式安装篇)

    Hadoop学习(source方式安装篇) 1.为什么要进行源码编译 网上说Hadoop官网没有提供32位的编译好的Hadoop,这其实是假的,自从2.5版本以后,官方已经提供了64位的编译好的Had ...

  10. mysql coreseek_centos+php+coreseek+sphinx+mysql之一coreseek安装篇

    首先附上coreseek4.1版本下载 前期准备工作: yum install make gcc g++ automake libtool MySQL-client libMySQLclient15- ...

最新文章

  1. 自动类型转换和强制类型转换
  2. RHEL5.5学习--安装vmtools
  3. PPF(Point Pair Features)原理及实战技巧
  4. 关于爬楼梯的lintcode代码
  5. golang 随机数 实现
  6. 计算机网络技术班会,【主题班会】17计算机网络技术三班“走出手机幻境,拥抱真实生活”主题班会...
  7. Vue电商后台B站的项目需要的材料 密码等
  8. linux修改组的选项名字为,Linux用户、组及权限管理浅析
  9. linux添加删除回环地址,CentOS7如何添加本地回环地址?CentOS7添加本地回环地址的方法...
  10. Impala命令COMPUTE STATS的解析
  11. elas源码赏析(二)sobel算子3*3行列分解快速卷积
  12. 互联网大数据应用:浅谈用户行为分析
  13. QT从入门到入土系列教程(一)——Qt5.14.2安装教程和VS2019环境配置
  14. 智能优化算法:侏儒猫鼬优化算法-附代码
  15. JavaScript随手笔记之--html拼接语句传递json数据
  16. 越狠越有饭吃,越不狠越没饭吃
  17. 数据库的应用之(智慧城市)
  18. 出海日报|巴西电动滑板车Grin与“巴西小黄车” Yellow合并了;印度OYO Rooms要花5000万美元发展菲律宾市场...
  19. 摸鱼三天,我写了一个通用的组建树TreeUtil工具
  20. 域格4G模块TTS语音使用方法

热门文章

  1. QT+FFTW库 实现傅里叶变换
  2. 教你如果混社会,绝对的火!!
  3. CV之IG之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成原始的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)案例应用
  4. PHP (八种)数据类型
  5. 周末时间学习Linux
  6. JQuery实现分页查询
  7. 物体碰撞和检测——Hit UFO改进版射箭游戏
  8. grep 用法总结
  9. 将jar包直接Buldpath所引起的问题
  10. Wi-Fi物联网设备配网的N种方式