Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

今天給大家介紹的是一款名叫Xori的自動化反編譯與靜態分析工具,廣大研究人員可以利用該工具來對PE32、32+和Shellcode進行審計分析。

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

支持架構

i386

x86-64

文件格式

PE,PE+

明文shellcode

工具功能

1、 管理棧內存;

2、 輕量級模擬:枚舉全部路徑(寄存器、棧和某些指令);

3、 完整模擬:僅跟蹤代碼路徑(性能慢);

4、 模擬TEB&PEB結構;

5、 顯示引用內存地址的字符串;

6、 使用FLIRT風格簽名;

7、 識別偏移量地址中的函數引用。

工具依賴組件

rustc 1.27.0

rust安裝-macOS & Linux發行版

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

rust安裝-Windows

rust工具集下載地址:【rustup.exe】

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

該工具將會安裝rust的編譯器-rustc,rust包管理器-cargo,以及其他用於rut環境下的實用工具。

安裝rust依賴組件

如果大家遇到了下圖所示的情況,是因為沒有安裝Build Tools for Visual Studio【解決方案】:

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

1、 按照提示要求,點擊上述鏈接,或直接點擊【這裡】;

2、 取消rustup-init.exe;

3、 回到瀏覽器,往下滑,點開“Tools forVisual Studio 2017”標籤頁,下載“Build Tools for Visual Studio2017”;

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

4、 運行下載好的可執行文件;

選擇“Visual C++ build tools”並點擊安裝,安裝完成後關閉安裝程序:

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

安裝rust工具鏈

運行rustup.exe,你將會看到如下所示的輸出:

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

成功安裝後,你將會看到rust編譯器-rustc、rust包管理器-cargo和其他實用工具已經全部安裝完成了。路徑分別為“C:\Users\%username%\.cargo“和”C:\Users\%username%\.rustu”。

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

Xori安裝與配置

下載和構建Xori代碼:

git clone https://github.com/endgameinc/xori.git

cd xori

cargo build --release

創建xori.json配置文件:

cpxori.json.example xori.json

[editif desired]

構建符號文件(可選項):

如果你想要創建自己的符號文件,你需要設置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文件:

./target/release/pesymbols

工具運行

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

運行所有測試

cargo test

瀏覽器GUI

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

工具要求

Nodejs

Yarn

構建

cd gui

npm install

運行

在一個終端下:

cd gui

node src/server.js

在另一個終端下:

cd gui

npm start

瀏覽器默認地址為http://localhost:3000/,後端API監聽地址為http://localhost:5000/。

項目地址

Xori:【GitHub傳送門】

* 參考來源:gildasio,FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM今天給大家介紹的是一款名叫Xori的自動化反編譯與靜態分析工具,廣大研究人員可以利用該工具來對PE32、32+和Shellcode進行審計分析。

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

支持架構

i386

x86-64

文件格式

PE,PE+

明文shellcode

工具功能

1、 管理棧內存;

2、 輕量級模擬:枚舉全部路徑(寄存器、棧和某些指令);

3、 完整模擬:僅跟蹤代碼路徑(性能慢);

4、 模擬TEB&PEB結構;

5、 顯示引用內存地址的字符串;

6、 使用FLIRT風格簽名;

7、 識別偏移量地址中的函數引用。

工具依賴組件

rustc 1.27.0

rust安裝-macOS & Linux發行版

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

rust安裝-Windows

rust工具集下載地址:【rustup.exe】

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

該工具將會安裝rust的編譯器-rustc,rust包管理器-cargo,以及其他用於rut環境下的實用工具。

安裝rust依賴組件

如果大家遇到了下圖所示的情況,是因為沒有安裝Build Tools for Visual Studio【解決方案】:

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

1、 按照提示要求,點擊上述鏈接,或直接點擊【這裡】;

2、 取消rustup-init.exe;

3、 回到瀏覽器,往下滑,點開“Tools forVisual Studio 2017”標籤頁,下載“Build Tools for Visual Studio2017”;

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

4、 運行下載好的可執行文件;

選擇“Visual C++ build tools”並點擊安裝,安裝完成後關閉安裝程序:

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

安裝rust工具鏈

運行rustup.exe,你將會看到如下所示的輸出:

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

成功安裝後,你將會看到rust編譯器-rustc、rust包管理器-cargo和其他實用工具已經全部安裝完成了。路徑分別為“C:\Users\%username%\.cargo“和”C:\Users\%username%\.rustu”。

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

Xori安裝與配置

下載和構建Xori代碼:

git clone https://github.com/endgameinc/xori.git

cd xori

cargo build --release

創建xori.json配置文件:

cpxori.json.example xori.json

[editif desired]

構建符號文件(可選項):

如果你想要創建自己的符號文件,你需要設置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文件:

./target/release/pesymbols

工具運行

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

運行所有測試

cargo test

瀏覽器GUI

Xori:一款針對PE32和Shellcode的自動化反編譯與靜態分析庫

工具要求

Nodejs

Yarn

構建

cd gui

npm install

運行

在一個終端下:

cd gui

node src/server.js

在另一個終端下:

cd gui

npm start

瀏覽器默認地址為http://localhost:3000/,後端API監聽地址為http://localhost:5000/。

項目地址

Xori:【https://github.com/endgameinc/xori】


分享到:


相關文章: