All Projects → paradoxwastaken → Poseidon

paradoxwastaken / Poseidon

Licence: other
stealthy UM <-> KM communication system without creating any system threads, permanent hooks, driver objects, section objects or device objects.

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 Poseidon

audiofile
Handling audio files in Python
Stars: ✭ 17 (-91.01%)
Mutual labels:  read, write
spark-hadoopoffice-ds
A Spark datasource for the HadoopOffice library
Stars: ✭ 36 (-80.95%)
Mutual labels:  read, write
GraphIO.jl
Graph IO functionality for various formats.
Stars: ✭ 54 (-71.43%)
Mutual labels:  read, write
PCF8591 library
Library to use i2c analog IC with arduino and esp8266. Can read analog value and write analog value with only 2 wire (perfect for ESP-01).
Stars: ✭ 24 (-87.3%)
Mutual labels:  read, write
Wordpress Android
WordPress for Android
Stars: ✭ 2,601 (+1276.19%)
Mutual labels:  read, write
python-yamlable
A thin wrapper of PyYaml to convert Python objects to YAML and back
Stars: ✭ 28 (-85.19%)
Mutual labels:  read, write
MouseInjectDetection
Simple method of checking whether or not mouse movement or buttons (<windows 10) are injected
Stars: ✭ 29 (-84.66%)
Mutual labels:  anticheat, bypass
fs-utils
Generalized file and path utils for Node.js projects.
Stars: ✭ 33 (-82.54%)
Mutual labels:  read, write
learning-growth
主要是我的一些阅读、学习、社交、研究、思考、放松娱乐记录整理。
Stars: ✭ 73 (-61.38%)
Mutual labels:  communication, read
prsdigg
Build your value net on Web3 with Quill
Stars: ✭ 60 (-68.25%)
Mutual labels:  read, write
AACS
Android Auto Server encapsulates communication with modern car infotainment system
Stars: ✭ 138 (-26.98%)
Mutual labels:  communication
DeepLearning MIMO-NOMA
Realization of MIMO-NOMA signal detection system based on **C. Lin et al., “A deep learning approach for MIMO-NOMA downlink signal detection,” MDPI Sensors, vol. 19, no. 11, pp. 2526, 2019.
Stars: ✭ 41 (-78.31%)
Mutual labels:  communication
rpc
RPC-like client-service implementation over messaging queue
Stars: ✭ 26 (-86.24%)
Mutual labels:  communication
JustEvadeBro
JustEvadeBro, a cheat sheet which will aid you through AMSI/AV evasion & bypasses.
Stars: ✭ 63 (-66.67%)
Mutual labels:  bypass
tvoip
Terminal-based P2P VoIP application (TeamSpeak-/Skype-like voice chatting over LAN or Internet)
Stars: ✭ 34 (-82.01%)
Mutual labels:  communication
CycleTLS
Spoof TLS/JA3 fingerprints in GO and Javascript
Stars: ✭ 362 (+91.53%)
Mutual labels:  bypass
philsol
Simple python library for calculating the modes of electromagnetic waveguides using finite difference frequency domain method.
Stars: ✭ 21 (-88.89%)
Mutual labels:  mode
loco-rails
Rails is awesome, but modern web needs Loco-motive.
Stars: ✭ 53 (-71.96%)
Mutual labels:  communication
anti-debugging
Anti-debugging techniques on a (bad looking) Win32 application.
Stars: ✭ 74 (-60.85%)
Mutual labels:  anticheat
README
📄 How to write a good README
Stars: ✭ 34 (-82.01%)
Mutual labels:  communication

KM-UM-Communication

stealthy UM <-> KM communication system without creating any system threads, permanent hooks, driver objects, section objects or device objects.

Process:

  • In our driver, we hook a function in ntoskrnl (.data pointer swap)
  • In usermode, we manually allocate memory and index it via custom data structures
  • We then create a thread in usermode and call the hooked function's corresponding usermode-accessible function
  • When the correct magic number is passed to the function, the driver will know it's us, and will then unhook and enter a shared memory loop, trapping our usermode thread in the kernel until we choose to break out of the loop

As long as this is set up prior to any anti-cheat being active on your system, you can communicate with the driver without being detected by the various security measures employed by invasive anti-cheat technologies such as BattlEye and EasyAntiCheat. No illicit threads, hooks or objects related to communication will be detected by their current methods.

Limitations:

  • Dodgy synchronization
  • Not many kernel features, just basic remote-process operability
  • Not designed with safety as a priority
  • Only tested on Windows 10 20H2
  • The client can only be used once. If you terminate it or call Client::Disconnect(), you'll need to remap the driver

It's meant to be manually mapped by exploiting Intel's vulnerable network adapter diagnostic driver, iqvw64e.sys

This was created for fun, I do not condone the use of this code in any program that violates the integrity of any online game. This should only be used for learning purposes or to prevent custom software from being falsely detected as a cheat.

Usage:

  • Map the driver
  • Start the client
  • Start the target process
  • Do stuff

You have to modify the client to sleep until your target process is running (since it must be set up prior to any anti-cheat being active). Basic example of how main.cpp in the client should typically look:

int main() {
	Client::Connect();

	for (;;) {
		Sleep(100);

		if (YourTargetProcessIsRunning) {
			break;
		}
	}

	// Do stuff
  
        Client::Disconnect();
  }

You can either call the functions in memory.h and process.h manually, or you can just create a KProcess object for easier use. KProcess features are as follows:


	// Make a process object for your target process
	
	KProcess Notepad(L"notepad.exe");
	
	
        // Read Memory

	int Value = Notepad.Read<int>((PVOID)0xDEADBEEF);
	Notepad.Read((PVOID)0xDEADBEEF, &Value, sizeof(int)); // Overload


	// Write Memory

	Notepad.Write<int>((PVOID)0xDEADBEEF, 2);
	Notepad.Write((PVOID)0xDEADBEEF, &Value, sizeof(int)); // Overload


	// Allocate Virtual Memory

	Notepad.AllocateVirtualMemory(PVOID Base, SIZE_T Size, DWORD AllocType, DWORD Protect);


	// Free Virtual Memory

	Notepad.FreeVirtualMemory(PVOID Base, SIZE_T Size, DWORD FreeType);


	// Change Virtual Memory Protection

	Notepad.ProtectVirtualMemory(PVOID Base, SIZE_T Size, DWORD Protect, DWORD* OldProtect);


	// Query Virtual Memory. MEMORY_BASIC_INFORMATION only.

	MEMORY_BASIC_INFORMATION MBI{ 0 };

	bool bResult = Notepad.QueryVirtualMemory(PVOID Address, MEMORY_BASIC_INFORMATION& MemoryBasicInfo, SIZE_T Size);
	MBI = Notepad.QueryVirtualMemory(PVOID Address, SIZE_T Size); // Overload


	// Query Process Information

	Notepad.QueryInformationProcess();


	// Get module info by name

	Notepad.GetModuleInfo(const char* ModuleName, DWORD& ModuleSize);


	// Pattern finder

	Notepad.PatternFinder(BYTE* Start, DWORD Size, const char* Signature, const char* Mask);


	// Get absolute address within specified asm instruction

	Notepad.AbsoluteAddress(BYTE* Rip, DWORD InstructionLength);


	// Get relative address within specified asm instruction

	Notepad.RelativeAddress(BYTE* DestinationAddress, BYTE* SourceAddress, DWORD InstructionLength);


	Notepad.BaseAddress;     // Base Address
	Notepad.ImageName;	 // Name
	Notepad.ModuleCount;     // Number of modules
	Notepad.ModuleList;      // std::vector containing all modules' base address and size
	Notepad.Peb;		 // Process Environment Block
	Notepad.ProcessId;	 // Process Id
	Notepad.Size;		 // Main module size
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].