djin

Crates.iodjin
lib.rsdjin
version0.1.1
sourcesrc
created_at2021-01-10 17:14:53.795826
updated_at2021-01-10 20:05:53.748446
descriptionDLL injector with support for 32-bit and 64-bit targets.
homepage
repositoryhttps://gitdab.com/lunarlambda/djin
max_upload_size
id338966
size8,441,460
Luna Saphie Mittelbach (LunarLambda)

documentation

README

Djin - Windows DLL injection library for Rust

Features

  • Custom stub code for 32-bit and 64-bit allows calling an additional initialization function
  • Includes full error handling
  • Minimal, low level interface
// DWORD WINAPI fn(void);
extern "system" fn() -> DWORD;

See examples/injector.rs for how to use this library.

Method used

CreateRemoteThread

FEP (Frequently Encountered Problems)

  • It doesn't work, the error code is 5!

Note that the bitness (32-bit or 64-bit) of the calling process, target process, and injected DLL all need to match. Also, in some cases, Windows won't let you inject certain processes.

  • It doesn't work, the error code is 126!

The injected process couldn't find your DLL. Make sure you got the path to your DLL right, and that it stays where it is until inject_dll returns.

  • It doesn't work, the error code is 127!

The system couldn't find the initialization function in your DLL. Make sure you spelled the name correctly.

  • It doesn't work, the error code is some huge number!

or

  • It doesn't work, the injected program crashes!

Make sure it's not an issue in your DLL's code. Note that some programs may implement code that can detect if they're being injected, and crash.

Otherwise, not sure how much I can help you. Debugging this stuff is not easy.

Commit count: 0

cargo fmt