All Projects → KooroshRZ → Windows-DLL-Injector

KooroshRZ / Windows-DLL-Injector

Licence: other
Some DLL Injection techniques in C++ implemented for both x86 and x64 windows OS processes

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Windows-DLL-Injector

HAPIH-2
API for supporting C++14 external memory hacking. Complete redesign from HAPIH
Stars: ✭ 18 (-89.66%)
Mutual labels:  memory-hacking, dll-injection
DLL-INJECTOR
I created a dll injector I am going to Open source its Code. But remember one thing that is any one can use it only for Educational purpose .I again say do not use it to damage anyone's Computer.But one thing if you are using it for some good purpose like to help someone who really need help then I permit you to use it.
Stars: ✭ 14 (-91.95%)
Mutual labels:  memory-hacking, dll-injection
E-Learning-freesite
This site is mainly design for those student who don't know how to start their journey in the field of programming
Stars: ✭ 57 (-67.24%)
Mutual labels:  educational-project
LunaLua
LunaLua - LunaDLL with Lua, is a free extension for SMBX 1.3 game engine, core of the X2 project.
Stars: ✭ 27 (-84.48%)
Mutual labels:  dll-injection
diepssect
A public repo for hacky diep stuff - networking protocol, WebAssembly, memory editing, & physics
Stars: ✭ 26 (-85.06%)
Mutual labels:  memory-hacking
twinject
Automated player and hooking framework for bullet hell games from the Touhou Project
Stars: ✭ 52 (-70.11%)
Mutual labels:  dll-injection
FA
Репозиторий практик факультета ИТиАБД направления Прикладной Информатики в Финансовом Университете при Правительстве РФ
Stars: ✭ 26 (-85.06%)
Mutual labels:  educational-project
zsh-launchpad
🚀 Simple, educational dotfiles template to get started with Zsh and learn about its features
Stars: ✭ 141 (-18.97%)
Mutual labels:  educational-project
AutomationShield
Arduino library and MATLAB/Simulink API for the AutomationShield Arduino expansion boards for control engineering education.
Stars: ✭ 22 (-87.36%)
Mutual labels:  educational-project
tr
linux memory hacking library
Stars: ✭ 25 (-85.63%)
Mutual labels:  memory-hacking
Phobos
Ares-compatible C&C Red Alert 2: Yuri's Revenge engine extension
Stars: ✭ 123 (-29.31%)
Mutual labels:  dll-injection
toy-arms
⚔️ my simple reusable game hack components in Rust
Stars: ✭ 71 (-59.2%)
Mutual labels:  dll-injection
injectory
command-line interface dll injector
Stars: ✭ 49 (-71.84%)
Mutual labels:  dll-injection
ZeusInjector
An Open Source Windows DLL Injector With All Known Techniques Available
Stars: ✭ 65 (-62.64%)
Mutual labels:  dll-injection
notebooks-ci-showcase
Fully Configured Example of CI/CD For Notebooks On Top Of GCP
Stars: ✭ 22 (-87.36%)
Mutual labels:  educational-project
Quickbeam
Halo memory editor
Stars: ✭ 13 (-92.53%)
Mutual labels:  memory-hacking
lua-inject
Inject any C# code into programs with lua
Stars: ✭ 18 (-89.66%)
Mutual labels:  dll-injection
Inflame
User-mode Windows DLL injector written in Assembly language (FASM syntax) with WinAPI.
Stars: ✭ 63 (-63.79%)
Mutual labels:  dll-injection
stalin-sort
A repressive sorting algorithm (not really sorting)
Stars: ✭ 13 (-92.53%)
Mutual labels:  educational-project
singlefile
featured cs:go internal hack, one file and less than 1000 lines.
Stars: ✭ 47 (-72.99%)
Mutual labels:  dll-injection

WindowsDLLInjector

Some DLL Injection techniques written in C++ for both 32bit and 64bit windows OS

Intro

There are several ways for injecting a dll or generally a process in another target process
It has many advantages such as accessing that process memory address and extending it's functionality
In abuse cases it can be used to hide malicious activity in another process and somehow bypass antivirus detection

each one has it's pros and cons

Here we have implemented 5/7 techniques

  •       CreateRemoteThread (windows Win32 API through windows.h)
  •       NtCreateThread (windows native API through ntdll.dll)
  •       QueueUserAPC
  •       SetWindowsHookEx
  •       RtlCreateUserThread (windows native API through ntdll.dll)
  •       SetThreadContext
  •       ReflectiveDllInjection

CreateRemoteThread

Maybe it's the first google search result for dll injection
This API is mapped to NtCreateThread native API Very well documented and easy to code!

Pros.
       Easy to implement (maybe just 5 lines of code)
       well documented on internet

Cons.
       Easy to detect
       not possible on all processes (specially windows NT native processes)

NtCreateThread

Acually not as easy as CreateRemoteThread method
It needs some header definitin and function pointer casting to get the address of NtCreateThread in ntdll.dll
A little hard to implement but very effective against windows native system processes

Pros.
       Can be used for windows native NT processes (like : svchost, smss, ...)
       Harder to be detected

Cons.
       A little hard to implement and debug
       no official documentation

QueueUserAPC

This method is about hijacking and using a thread in target process
As documented in msdn, the function call QueueUserAPC() adds user-mode asychronous procedure call(APC) object to the APC queue of specified thread
Actually we don't create our own thread and just use the target process's threads for loading our dll into the process address space
Notice that to make this method work, The remote target thread should be in suspended state and with alertable flag (Example SleepEx() in TargetProgram.cpp)

Pros.
       No need for creating new Threads
       It adds some stealthy abilities for injection (cause no new thead would be created)

Cons.
       Not always possible on all threads (just suspended threads with alertable flag)

SetWindowsHookEx

This method actually is for setting Windows Hook for specific events like keyboard or mouse event
But since the hook procedure should be in form of exported function in a dll file in the target process,
This makes it possible to use it as a dll injection method
This one is kinda different one because neither thread nor APC is created but A hook is set in target process for a specific thread

Pros.
       No need for creating new Threads or APC call
       Easy to use spcially with thread ID equals 0 :)

Cons.
       Too suspicious for antivirus detection because of using hooks

RtlCreatUserThread

Same as NtCreateThread with some possible wrapping

Pros.
       Can be used for windows native NT processes (like : svchost, smss, ...)
       Harder to be detected

Cons.
       A little hard to implement and debug
       no official documentation



Credit

Many thanks for fdiskyou and his InjectAllTheThings (nice name) repository
His Repo : https://github.com/fdiskyou/injectAllTheThings
His website : http://deniable.org

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].