Xori:一款来自BlackHat 2018的二进制反汇编和静态分析工具 – 作者:周大涛

Xori是一个自动化的反汇编和静态分析库,它使用shellcode或PE二进制文件并提供分类分析数据。

体系结构:

I386 X86-64

文件格式

PE,PE + 普通的shellcode

目前的特点

1.输出json格式结果

2.反汇编函数

3.支持导入。 

管理图像和堆栈内存。 

 Light仿真 – 用于枚举所有路径(寄存器,堆栈,某些指令)。 

完全仿真 – 仅遵循代码的路径(性能缓慢)。 

模拟TEB和PEB结构。 

评估基于DLL导出的函数。

根据引用的内存位置显示字符串。

使用FLIRT样式签名(快速库识别和识别技术)。

允许使用模拟PEB。

在不返回的调用后检测填充。

尝试从偏移中识别函数引用。

它还一些的不足:

引擎是互动的。

不能转储字符串。

不处理非可执行的部分。

 对非pe文件不启用TEB和PEB。

只模拟了一部分的x86指令。

修补和组装。

没有其他插件或第三方脚本。

Requirements

rustc 1.27.0

为OSX和Linux Distros安装rust

curl https://sh.rustup.rs -sSf | sh

为Windows安装防rust

https://www.rust-lang.org/en-US/other-installers.html

选择:

x86_64-pc-windows-gnu
x86_64-pc-windows-msvc(需要Visual Studio构建工具)

安装

1.Build Xori

此命令还将创建其他二进制文件,例如 pesymbols 和 peinfo。

git clone https://github.com/endgameinc/xori.git
cd xori
cargo build --release

2.创建xori.json配置文件

cp xori.json.example xori.json
[edit if desired]

3.(可选)构建symbols文件

如果要创建自己的symbols文件,则需要将dll文件夹设置为存储Windows dll的位置。

"function_symbol32": "./src/analysis/symbols/generated_user_syswow64.json",
"function_symbol64": "./src/analysis/symbols/generated_user_system32.json",
"symbol_server": {
    "dll_folder32": "./dlls/32bit",
    "dll_folder64": "./dlls/64bit"

运行pesymbols来覆盖function_symbol json./target/release/pesymbols

运行

./target/release/xori -f test.exe

运行所有测试

cargo test

浏览器GUI

| Chrome | Firefox | Safari | IE |Opera|| :——| ——: | :——: | :——: | :——: || Latest ✔   | Latest ✔ | Latest ✔ | x | Latest ✔ |

要求

nodejs yarn(UI dev可选)

Build

cd gui
npm install

运行

在一个终端输入

cd gui
node src/server.js

在另一个终端输入

cd gui
npm start

它将打开您的默认浏览器到http://localhost:3000/。后端API正在侦听localhost:5000。

*参考来源:GitHub,周大涛编译,转载请注明来自 FreeBuf.COM

来源:freebuf.com 2018-08-14 14:00:45 by: 周大涛

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论