Adds fake imports to a 64 bit PE file.
Find a file
2025-04-22 23:12:59 +02:00
images Create output.png 2025-04-22 23:10:47 +02:00
src updated imports command. 2025-04-22 21:39:55 +02:00
.gitignore added deps, get dos header. 2025-04-17 12:02:47 +02:00
Cargo.lock added imports command, and added logging crate. 2025-04-21 23:12:12 +02:00
Cargo.toml added imports command, and added logging crate. 2025-04-21 23:12:12 +02:00
LICENSE Initial commit 2025-04-17 10:48:18 +02:00
README.md Update README.md 2025-04-22 23:12:59 +02:00

impbind

Adds fake imports to an executable.

Motivation

The motivation for this project is twofold. Firstly, is to provide a new import hash for a binary. Some import hashes are a huge red flag for antiviruses (an import hash is just a hash of all the imports in an executable file).

Previous Imphash: 6d28f0f849482928a2a297579e647cb5

New Imphash: 3017cd49a9ed31511425915c04b902af

Secondly, is to make an executable binary seem less suspicious from analyzing imports alone.

Install

$ git clone https://github.com/UnwindSafe/impbind.git
$ cd impbind
$ cargo build --release

Usage

impbind - PE import spoofer tool

Usage: impbind.exe [OPTIONS] --imports <IMPORTS> <FILE>

Arguments:
  <FILE>

Options:
  -l, --list                         Show the current imports for target file
  -s, --section-name <SECTION_NAME>  The name of the custom section added for imports. default = .idata
  -i, --imports <IMPORTS>            The list of imports you want to add to target file
  -h, --help                         Print help
  -V, --version                      Print version

Example:

./impbind test.exe -i kernel32.dll!CreateFileW,kernel32.dll!AddAtomW
./impbind test.exe -l
╭───────────────────────────────────┬────────────────────────────────────────────╮
│ DLL                               ┆ Function(s)                                │
╞═══════════════════════════════════╪════════════════════════════════════════════╡
│ d3d11.dll                         ┆ D3D11CreateDeviceAndSwapChain              │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ D3DCOMPILER_43.dll                ┆ D3DCompile                                 │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ KERNEL32.dll                      ┆ GetLocaleInfoA                             │
│                                   ┆ LoadLibraryA                               │
│                                   ┆ QueryPerformanceFrequency                  │
│                                   ┆ GetProcAddress                             │
│                                   ┆ FreeLibrary                                │
│                                   ┆ QueryPerformanceCounter                    │

Output

Imports added to the target executable file.

picture showing new imports