安裝angr

angr是一個python庫,所以要使用它必須把它安裝進你的python環境中。 它為python2而打造:對Py3k的支持在未來是可行的,但是我們現在有些猶豫現在是否要做出那樣的承諾(歡迎pull requests?。?。

我們強烈推薦使用python虛擬環境來安裝和使用angr。 幾種不同的angr依賴(z3,pyvex)需要從它們的原始庫中fork原生代碼庫,如果你已經安裝libz3或者libVEX,你肯定不想使用我們的覆蓋官方的共享庫。 總的來說,不要期待對從非虛擬環境中安裝angr產生的問題的支持。

依賴

所有的python依賴都應該通過pip或者setup.py腳本處理。 但是你將會需要編譯一些C代碼從這里直到結束,所以你需要一個良好的編譯環境以及python開發頭文件。 在依賴安裝過程中,你需要安裝python庫cffi,但是(至少在linux上)你還需要安裝了你操作系統的libffi包它才可以運行。

在Ubuntu上,你需要:sudo apt-get install python-dev libffi-dev build-essential virtualenvwrapper

多數操作系統,全部*nix系統

mkvirtualenv angr && pip install angr?在大多數情況下用來安裝angr應該足夠了, 因為angr被發布在Python包索引中。

Fish(shell)用戶也可以使用virtualfish?或者virtualenv包。?vf new angr && vf activate angr && pip install angr

如果使用這些失敗了,你可以按照順序通過安裝下面來自https://github.com/angr的倉庫(以及在它們的requirements.txt?文件中列出來的依賴包):

Mac OS X

在你使用pip install angr之前,你需要使用pip install -I --no-use-wheel angr-only-z3-custom重新編譯我們fork來的z3庫。

Windows

在windows上你無法通過pip安裝angr。 你必須單獨安裝它的所有組件。

Capstone在windows上很難安裝。 你可能需要手動操作wheel文件來安裝它,但是有時候它會使用一個不同于“capstone”的名字安裝,所以如果如果發生了這樣的事,你只需要(在安裝它之后)在angr和archinfo的requirements.txt文件中移除Capstone就可以了。

如果你有足夠的l33t編譯環境可以在windows上編譯Z3. 如果你沒有,你需要從網上下個wheel文件。 在https://github.com/Owlz/angr-Windows可以下載預編譯好的windows的wheel文件。

如果你從源代碼編譯z3,請確保你在使用包含了浮點支持的不穩定版本的z3。并且確保?Z3PATH=path/to/libz3.dll在你的環境變量里。

開發安裝

我們使用腳本創建了一個倉庫來使一切對于angr的開發者變得更容易。 你可以把angr設置為開發模式通過:

git clone https://github.com/angr/angr-dev
cd angr-dev
mkvirtualenv angr
./setup.sh

這克隆了所有的倉庫并且把它們安裝成了可編輯模式。?setup.sh?甚至可以為你創建一個PyPy虛擬環境,這使得其有了更快的性能和更低的內存占用。

你可以對不同的模塊進行創建分支/編輯/重新編譯操作,產生的變化會自動映射到你的虛擬環境中。

使用Docker安裝

為了方便,我們只做了一個Docker鏡像并且保證99%的可用性。 你可以通過docker來安裝:

# install docker
curl -sSL https://get.docker.com/ | sudo sh

# pull the docker image
sudo docker pull angr/angr

# run it
sudo docker run -it angr

docker內外的文件同步作為留給使用者的一個練習(提示:看看?docker -v

疑難解決

libgomp.so.1: version `GOMP_4.0' not found

這個錯誤表明在預編譯版本的angr-only-z3-custom和安裝版本的libgomp存在不兼容問題。需要重新編譯Z3.你可以執行:

pip install -I --no-use-wheel angr-only-z3-custom

Can't import mulpyplexer

在安裝mulpyplexer有時會有一些問題。執行pip install --upgrade 'git+https://github.com/zardus/mulpyplexer'?可以解決這個問題。

Can't import angr because of capstone

有時capstone沒有被正確安裝。重新安裝capstone可以解決這個問題:

pip install -I --no-use-wheel capstone

Claripy and z3

Z3編譯起來很奇怪。有時它會無緣無故的完全失敗,提示由于一些文件或文件夾不存在而無法創建對象文件。你只需要重新編譯:

pip install -I --no-use-wheel angr-only-z3-custom

No such file or directory: 'pyvex_c'

你在使用12.04嗎?如果是,請升級吧! 你也可以試試升級pip(pip install -U pip),也許也可以解決這個問題。