15

Zelos:一款功能强大的代码模拟和测试平台

 4 years ago
source link: https://www.freebuf.com/articles/system/231609.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Zelos

Zelos是一款功能强大的代码模拟和测试平台,Zelos英文全称为“Zeropoint Emulated Lightweight Operating System”,即Zeropoint轻量级模拟操作系统,该平台基于Python开发,可帮助广大研究人员快速实现代码行为模拟和测试。

Zelos的其中一个强大功能就是能够通过命令行或Python脚本快速对目标代码的动态行为进行模拟、审计和评估。其中,所有的系统调用都会在与目标代码隔离的环境下进行模拟,并且支持Linux x86_64 (32- 和64-bit)、ARM和MIPS代码。

工具安装

广大研究人员可以使用下列命令将项目源码克隆至本地:

git clone https://github.com/zeropointdynamics/zelos.git

或者使用 pip 包管理器来下载和安装Zelos:

pip install zelos

当然了,在使用Zelos之前,请确保你的系统已安装好Python环境。

工具使用

命令行

使用默认选项模拟目标代码:

$ zelos my_binary

如需查看已执行的代码指令,请添加-v参数:

$ zelos -v my_binary

你还可以在每一个执行首次被执行时打印输出相关数据,此时需添加–fasttrace参数:

$ zelos -v --fasttrace my_binary

默认配置下,系统调用可以通过stdout发出,如需将系统调用写入至文件,可以使用–strace参数:

$ zelos --strace path/to/file my_binary

可编程处理

import zelos
z = zelos.Zelos("my_binary")
z.start(timeout=3)

本地开发环境

首先,我们需要创建一个新的Python虚拟环境,这样可以确保不存在数据包所导致的版本冲突:

$ python3 -m venv ~/.venv/zelos
$ source ~/.venv/zelos/bin/activate

接下来,克隆代码库,并切换至zelos项目目录中:

(zelos) $ git clone [email protected]:zeropointdynamics/zelos.git
(zelos) $ cd zelos

安装可编程版本的Zelos至虚拟环境中,并确保import zelos可用,此时任何针对Zelos的本地修改将会立即生效:

(zelos) $ pip install -e '.[dev]'

此时,通过测试并构建文档:

(zelos) $ pytest
(zelos) $ cd docs
(zelos) $ make html

构建的文档可以在“docs/_build/html/”路径下找到

接下来,安装Zelos预编译的钩子来确保代码风格兼容:

(zelos) $ pre-commit install
(zelos) $ pre-commit run --all-files

Windows开发

我们可以直接在Windows平台中的命令行窗口中执行下列命令:

C:\> python3 -m venv zelos_venv
C:\> zelos_venv\Scripts\activate.bat
(zelos) C:\> pip install -e .[dev]

工具运行截图

mYz2QvV.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK