mirror of
https://github.com/mandiant/capa.git
synced 2025-12-21 23:00:29 -08:00
setup: Add vivisect installation to setup.py
Vivisect is not available on PyPI. Tell `pip` in `setup.py` where to find it so that it is not needed to do it as a separate step.
This commit is contained in:
@@ -18,25 +18,17 @@ By default, on MacOS Catalina or greater, Gatekeeper will block execution of the
|
||||
To install capa as a Python library, you'll need to install a few dependencies, and then use `pip` to fetch the capa module.
|
||||
Note: this technique doesn't pull the default rule set, so you should check it out separately from [capa-rules](https://github.com/fireeye/capa-rules/) and pass the directory to the entrypoint using `-r`.
|
||||
|
||||
### 1. Install requirements
|
||||
First, install the requirements.
|
||||
`$ pip install https://github.com/williballenthin/vivisect/zipball/master`
|
||||
|
||||
### 2. Install capa module
|
||||
### 1. Install capa module
|
||||
Second, use `pip` to install the capa module to your local Python environment. This fetches the library code to your computer but does not keep editable source files around for you to hack on. If you'd like to edit the source files, see below.
|
||||
`$ pip install https://github.com/fireeye/capa/archive/master.zip`
|
||||
|
||||
### 3. Use capa
|
||||
### 2. Use capa
|
||||
You can now import the `capa` module from a Python script or use the IDA Pro plugins from the `capa/ida` directory. For more information please see the [usage](usage.md) documentation.
|
||||
|
||||
## Method 3: Inspecting the capa source code
|
||||
If you'd like to review and modify the capa source code, you'll need to check it out from GitHub and install it locally. By following these instructions, you'll maintain a local directory of source code that you can modify and run easily.
|
||||
|
||||
### 1. Install requirements
|
||||
First, install the requirements.
|
||||
`$ pip install https://github.com/williballenthin/vivisect/zipball/master`
|
||||
|
||||
### 2. Check out source code
|
||||
### 1. Check out source code
|
||||
Next, clone the capa git repository. We use submodules to separate code, rules, and test data. See below to get all data at once. To only get the source code and our provided rules (common), follow these steps:
|
||||
- clone repository
|
||||
- `$ git clone https://github.com/fireeye/capa.git /local/path/to/src` (HTTPS)
|
||||
@@ -56,8 +48,8 @@ To get all data at once use the `--recurse-submodules` option:
|
||||
- `$ git clone --recurse-submodules https://github.com/fireeye/capa.git /local/path/to/src` (HTTPS)
|
||||
- `$ git clone --recurse-submodules git@github.com:fireeye/capa.git /local/path/to/src` (SSH)
|
||||
|
||||
### 3. Install the local source code
|
||||
Finally, use `pip` to install the source code in "editable" mode. This means that Python will load the capa module from the local directory rather than copying it to `site-packages` or `dist-packages`. This is good because it is easy to modify files and see the effects reflected immediately. But, be careful not to remove this directory unless uninstalling capa.
|
||||
### 2. Install the local source code
|
||||
Use `pip` to install the source code in "editable" mode. This means that Python will load the capa module from the local directory rather than copying it to `site-packages` or `dist-packages`. This is good because it is easy to modify files and see the effects reflected immediately. But, be careful not to remove this directory unless uninstalling capa.
|
||||
|
||||
`$ pip install -e /local/path/to/src`
|
||||
|
||||
@@ -75,7 +67,7 @@ To install these development dependencies, run:
|
||||
|
||||
Note that some development dependencies (including the black code formatter) require Python 3.
|
||||
|
||||
### 4. Setup hooks [optional]
|
||||
### 3. Setup hooks [optional]
|
||||
|
||||
If you plan to contribute to capa, you may want to setup the hooks.
|
||||
Run `scripts/setup-hooks.sh` to set the following hooks up:
|
||||
|
||||
2
setup.py
2
setup.py
@@ -13,7 +13,7 @@ if sys.version_info >= (3, 0):
|
||||
else:
|
||||
# py2
|
||||
requirements.append("enum34")
|
||||
requirements.append("vivisect")
|
||||
requirements.append("vivisect @ https://github.com/williballenthin/vivisect/tarball/master#egg=vivisect")
|
||||
requirements.append("viv-utils")
|
||||
requirements.append("networkx==2.2") # v2.2 is last version supported by Python 2.7
|
||||
|
||||
|
||||
Reference in New Issue
Block a user