Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
*.pyc
.DS_Store
*.swp
venv/
.idea/
24 changes: 19 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,15 @@ Fentanyl is an IDAPython script that makes patching significantly easier. Fentan

Fentanyl supercedes other tools for binary patching by being able to assemble with IDA's built in assemblers which can support more than x86 and x86_64. Fentanyl also automates commonly performed patches. One of Fentanyl's best features is that it supports Undo/Redo. We can see changes to the graph live and undo them if they aren't to our liking.

<img width=75% height=75% src="http://blog.isis.poly.edu/images/2014/03/assemble2.gif">
## Examples

### Xref Noping

<img width=75% height=75% src="https://blog.osiris.cyber.nyu.edu/images/2014/03/nopxrefs2.gif">

### Patching

<img width=75% height=75% src="https://blog.osiris.cyber.nyu.edu/images/2014/03/assemble2.gif">

## Setup (IDA 7.x / Python 3)

Expand All @@ -22,21 +30,27 @@ The `%IDA%` directory can usually be found bellow:
C:\Program Files\IDA <version>\
```

### Example Instructions

```
cd C:\Program Files\IDA <version>\plugins
git clone https://github.com/osirislab/Fentanyl.git
move Fentanyl\* .
```

Now on program start, the plugin will be loaded automatically.

## Setup (IDA 6.x / Python 2)

```
Need to add backwards compatibility with IDA 6.x / Python2 or mark as deprecated.
```
Download the release for IDA 6.x and Python2 from the repo and unarchive it.
### IDAPython

1. Download IDAPython [here](https://code.google.com/p/idapython/).
2. Move appropriate folders to IDA plugins directory as per the `README`

### IDA PySide

1. Download (custom built by ancat): Python 2.7 PySide bindings [installer](https://github.com/osirislab/Fentanyl/tree/master/pyside/PySide.zip) or [raw](https://github.com/osirislab/Fentanyl/tree/master/pyside/PySide.exe).
1. Download (custom built by ancat): Python 2.7 PySide bindings (found in the IDA 6.x / Python2 release package).
2. Extract and move PySide folder to `C:\python27\Lib\site-packages\`

## Usage
Expand Down
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion src/py3/Fentanyl.py → fentanyl_src/py3/Fentanyl.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import idautils

from src.py3.Util import *
from fentanyl_src.py3.Util import *

__all__ = ['Fentanyl']

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
10 changes: 5 additions & 5 deletions src/py3/hooks.py → fentanyl_src/py3/hooks.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import ida_kernwin
import idaapi

import src.py3.AssembleForm as AssembleForm
import src.py3.CodeCaveFinder as CodeCaveFinder
import src.py3.Neuter as Neuter
import src.py3.Util as Util
import src.py3.Fentanyl as Fentanyl
import fentanyl_src.py3.AssembleForm as AssembleForm
import fentanyl_src.py3.CodeCaveFinder as CodeCaveFinder
import fentanyl_src.py3.Neuter as Neuter
import fentanyl_src.py3.Util as Util
import fentanyl_src.py3.Fentanyl as Fentanyl
import traceback
import os

Expand Down
2 changes: 1 addition & 1 deletion main.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
VERSION = '2.0'

import idaapi
import src.py3.hooks as hooks
import fentanyl_src.py3.hooks as hooks

major, minor = map(int, idaapi.get_kernel_version().split("."))
using_ida7api = (major > 6)
Expand Down
Binary file removed pyside/PySide.exe
Binary file not shown.
Binary file removed pyside/PySide.zip
Binary file not shown.