Kali Linuxに、Angrをインストールする手順


# 概要
Kali Linuxに[Ghidraをインストール](https://qiita.com/HirMtsd/items/7d5589b394c5c35f9cb2)したので、勢いでAngrもインストールした。

この資料は、既にいくつも資料が存在するのを承知の上で、自分のメモ用にWindows10上のVertualBoxで稼働する、Kali LinuxにAngrをインストールした手順を記録したもの。

VirtualBoxにKali Linuxをインストールする手順はこちら
[Kali Linux](https://qiita.com/HirMtsd/items/ba702c83c70e25670896)


# ダウンロード(実は不要)
AngrのWEBサイトは以下のもの。
https://angr.io/
![angr_001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/2c812a77-dba0-7744-7605-35bb709a9c12.png)
ただし、実際にインストールには、pythonのpipコマンドを使用するので、ここでインストールファイルをダウンロードする必要はない。


# Pythonの環境準備
## Pythonの確認
Kali Linuxをインストールする際に、[ソフトウェアの選択]画面で[large -- default selection plus additional tools]を選択しておくと、Python3がインストールされている。

[ターミナルエミュレータ]を起動し、以下のコマンドを実行。

```
python --version
python3 --version
```
![angr_101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/ed18b7cf-f2ee-0c05-3251-0cbffecbfe37.png)
python 2.7と3.9がインストールされている。


## venvとpipの確認
以下のコマンドを実行。

```
apt list | grep python3-venv
apt list | grep python3-pip
```
![angr_102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/bbf1d1b4-f703-8c20-38ab-6847d23bf66f.png)
Kali LinuxはDebianと同様、OSディストリビューションでpythonを組み込んでいるので、venvとpipを使用する場合には、
python3-venvとpython3-pipをaptでインストールすることが推奨されているようである。


## venvとpipのインストール
以下のコマンドを実行。
python3-venvのインストール。

```
sudo apt install python3-venv
```
![angr_201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/bb02c5ad-4a3e-f5c6-a86f-a88cb252a59c.png)
途中確認プロンプトが表示されたらYを入力。
![angr_202.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/8d9fc9a5-9b8b-9fc1-f361-963aa122d46f.png)
python3-venv(と、python-pip-whl、python3.9-venv)のインストールが完了。

```
sudo apt install python3-pip
```
python3-pipのインストール。
![angr_203.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/bc2e87f7-946e-efed-d36e-68976759c146.png)
途中確認プロンプトが表示されたらYを入力。
![angr_204.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/cf6664bf-3590-b122-6427-df5c9b06cf33.png)
python3-pip(と、python3-wheel)のインストールが完了。


# Angrインストール
## インストール用python仮想環境の作成
[Angrのサイト](https://angr.io/)では、virtualenvの使用を強く推奨されている。
python3からは、venvが仮想環境として一般的に使用されているようなので、venvを使用する。

以下のコマンドを実行。

```
python3 -m venv angr
cd angr
ls -la
source bin/activate
```
![angr_301.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/3f577b92-304c-eb25-5e2e-8db1ec3fa2a1.png)
angr用のpython仮想環境を作成する。


## インストール
作成した仮想環境にangrをインストール。
以下のコマンドを実行。

```
ls -la
pip3 install angr
```
![angr_302.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/a4cc2621-7a5f-1751-f4e6-5ddcb626942c.png)

![angr_303.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/4f435b50-91cf-4f8c-4f57-9ba22d63f9d7.png)
angr-9.0.6281(と必要な諸々のパッケージ)がインストールされる。

上記例では、以下の34のパッケージが追加されている。
CppHeaderParser-2.7.4 
GitPython-3.1.14 
ailment-9.0.6281 
archinfo-9.0.6281 
bitstring-3.1.7 
cachetools-4.2.1 
capstone-4.0.2 
cffi-1.14.5 
claripy-9.0.6281 
cle-9.0.6281 
decorator-4.4.2 
dpkt-1.9.5 
future-0.18.2 
gitdb-4.0.5 
itanium-demangler-1.0 
mulpyplexer-0.9 
networkx-2.5 
pefile-2019.4.18 
plumbum-1.7.0 
ply-3.11 
progressbar2-3.53.1 
protobuf-3.15.4 
psutil-5.8.0 
pycparser-2.20 
pyelftools-0.27 
pysmt-0.9.0 
python-utils-2.5.6 
pyvex-9.0.6281 
rpyc-5.0.1 
six-1.15.0 
smmap-3.0.5 
sortedcontainers-2.3.0 
unicorn-1.0.2rc4 
z3-solver-4.8.10.0


## 動作確認
以下のコマンドを実行。

```
python3
import angr
```
![angr_401.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/305fefd1-9bcd-e3e7-b908-cba89c14f3c1.png)
エラーメッセージが出なければ、インストールは完了している。


# 参考資料
AngrのGitHub上のソースコード
https://github.com/angr