All Projects → Akaion → Bleak

Akaion / Bleak

Licence: mit
A Windows native DLL injection library that supports several methods of injection.

Projects that are alternatives of or similar to Bleak

Geacon
Practice Go programming and implement CobaltStrike's Beacon in Go
Stars: ✭ 460 (-15.9%)
Mutual labels:  reverse-engineering
Golang loader assist
Making GO reversing easier in IDA Pro
Stars: ✭ 480 (-12.25%)
Mutual labels:  reverse-engineering
Dexcalibur
[Official] Android reverse engineering tool focused on dynamic instrumentation automation. Powered by Frida. It disassembles dex, analyzes it statically, generates hooks, discovers reflected methods, stores intercepted data and does new things from it. Its aim is to be an all-in-one Android reverse engineering platform.
Stars: ✭ 512 (-6.4%)
Mutual labels:  reverse-engineering
Stringsifter
A machine learning tool that ranks strings based on their relevance for malware analysis.
Stars: ✭ 469 (-14.26%)
Mutual labels:  reverse-engineering
Mjapptools
【越狱-逆向】处理iOS APP信息的命令行工具
Stars: ✭ 479 (-12.43%)
Mutual labels:  reverse-engineering
Ipv6 Hosts
Fork of https://code.google.com/archive/p/ipv6-hosts/, focusing on automation
Stars: ✭ 4,408 (+705.85%)
Mutual labels:  reverse-engineering
Terracognita
Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration
Stars: ✭ 452 (-17.37%)
Mutual labels:  reverse-engineering
Steamtracking
🕵 Tracking things, so you don't have to
Stars: ✭ 542 (-0.91%)
Mutual labels:  reverse-engineering
Anticheat Testing Framework
Framework to test any Anti-Cheat
Stars: ✭ 481 (-12.07%)
Mutual labels:  reverse-engineering
Protobuf Inspector
🕵️ Tool to reverse-engineer Protocol Buffers with unknown definition
Stars: ✭ 513 (-6.22%)
Mutual labels:  reverse-engineering
Apklab
Android Reverse-Engineering Workbench for VS Code
Stars: ✭ 470 (-14.08%)
Mutual labels:  reverse-engineering
Sark
IDAPython Made Easy
Stars: ✭ 477 (-12.8%)
Mutual labels:  reverse-engineering
Flyover Reverse Engineering
Reversing Apple's 3D satellite mode
Stars: ✭ 485 (-11.33%)
Mutual labels:  reverse-engineering
Kam1n0 Community
The Kam1n0 Assembly Analysis Platform
Stars: ✭ 467 (-14.63%)
Mutual labels:  reverse-engineering
Capstone
Capstone disassembly/disassembler framework: Core (Arm, Arm64, BPF, EVM, M68K, M680X, MOS65xx, Mips, PPC, RISCV, Sparc, SystemZ, TMS320C64x, Web Assembly, X86, X86_64, XCore) + bindings.
Stars: ✭ 5,374 (+882.45%)
Mutual labels:  reverse-engineering
Ksdumper
Dumping processes using the power of kernel space !
Stars: ✭ 454 (-17%)
Mutual labels:  reverse-engineering
Celerio Angular Quickstart
Generate an Angular 5 CRUD application from an existing database schema (we provide a sample one)
Stars: ✭ 483 (-11.7%)
Mutual labels:  reverse-engineering
Lazy importer
library for importing functions from dlls in a hidden, reverse engineer unfriendly way
Stars: ✭ 544 (-0.55%)
Mutual labels:  reverse-engineering
Jnitrace
A Frida based tool that traces usage of the JNI API in Android apps.
Stars: ✭ 534 (-2.38%)
Mutual labels:  reverse-engineering
Radare2book
Radare2 official book
Stars: ✭ 502 (-8.23%)
Mutual labels:  reverse-engineering

Bleak

Note as of 23/12/2019

This library has been deprecated and is no longer being maintained.

I have re writen an alternative library, that is in my opinion much better.

Link to new library

A Windows native DLL injection library that supports several methods of injection.


Injection Methods

  • CreateThread
  • HijackThread
  • ManualMap

Optional Extensions

  • EjectDll
  • HideDllFromPeb
  • RandomiseDllHeaders
  • RandomiseDllName

Features

  • WOW64 and x64 injection

Installation

  • Download and install Bleak using NuGet

Getting Started

After installing Bleak, you will want to ensure that your project is being compiled under AnyCPU or x64. This will ensure that you are able to inject into both WOW64 and x64 processes from the same project.


Usage

The example below describes a basic implementation of the library.

using Bleak;

using var injector = new Injector("processName", "dllPath", InjectionMethod.CreateThread, InjectionFlags.None);

// Inject the DLL into the process
	
var dllBaseAddress = injector.InjectDll();
	
// Eject the DLL from the process

injector.EjectDll();

Overloads

A process ID can be used instead of a process name.

var injector = new Injector(processId, "dllPath", InjectionMethod.CreateThread, InjectionFlags.None);

A byte array representing a DLL can be used instead of a DLL path.

var injector = new Injector("processName", dllBytes, InjectionMethod.CreateThread, InjectionFlags.None);

Caveats

  • Attemping to inject into a system level process will require your program to be run in Administrator mode.

  • Injecting a byte array (that represents a DLL) will result in a temporary DLL being written to disk in %temp%, unless the method of injection is ManualMap, in which case nothing will be written to disk.

  • Injecting with the HideDllFromPeb flag will currently result in your DLL not being able to be ejected.

  • ManualMap injection supports the intialisation of exception handling, however, this is limited to structured exception handling. Vectored exception handlers are not setup in the remote process during injection and any exceptions being handled using this type of exception handling will not be caught.

  • ManualMap injection relies on a PDB being present for ntdll.dll and, so, the first time this method is used, a PDB for ntdll.dll will be downloaded and cached in %temp%. Note that anytime your system performs an update, a new version of this PDB may need to be downloaded and re-cached. This process may take a few seconds depending on your connection speed.


Warnings

To those of you that are using the source code of this library as a reference, please note the following.

  • Many of the native structure definitions used, particularly the internal ones that are not documented on MSDN are incomplete due to only specific members being referenced in the codebase.

  • Unsigned members of the native structures used have been changed to signed members to ensure CLS compliance.


Contributing

Pull requests are welcome.

For large changes, please open an issue first to discuss what you would like to add.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].