# Suspicious DLLs and DLL Injection Techniques

* **Overview:** Dynamic Link Libraries (DLLs) are fundamental to Windows, containing reusable code and resources. Cheats are very often packaged as DLLs because they need to execute *within* the address space of the target game process (e.g., `javaw.exe`, `FiveM.exe`) to directly access and modify its memory, functions, and data structures (e.g., hooking game functions, reading entity positions). Understanding how malicious DLLs are loaded is key.
* **Common Injection Techniques Recap:**
  * **Standard DLL Injection:** An external injector process forces the target process to load a DLL file from disk using `LoadLibrary` (often triggered via `CreateRemoteThread`). Leaves traces related to file access (Prefetch for injector/DLL, potentially OpenSavePidlMRU if a file dialog was used) and process interaction (API calls).
  * **Reflective DLL Injection:** Stealthier; the DLL binary is written directly to the target's memory and loaded manually by code within the DLL, avoiding `LoadLibrary` and the need for the DLL file on disk at runtime. Harder to detect via simple API or module list monitoring.
  * **DLL Hijacking:** Exploits the Windows DLL search order. An attacker places a malicious DLL with the same name as a legitimate DLL required by an application in a location searched *before* the legitimate one. The application inadvertently loads the malicious DLL. Often used for persistence.
  * **DLL Proxying:** Replacing a legitimate DLL with a malicious one that forwards legitimate calls to the original (renamed/moved) DLL but also executes malicious code. Allows cheat functionality while the host application works normally.
* **Identifying Suspicious DLLs:** Beyond the injection method, the DLL itself often carries suspicious indicators:
  * **Lack of Digital Signature:** This is a **major red flag**. Legitimate software components are almost always digitally signed by their developers using trusted certificates. Most cheats or custom-coded malicious DLLs **lack a valid Authenticode signature**. While *some* legitimate niche tools or older libraries might be unsigned, an unsigned DLL loaded into a game process, especially from an unusual location (user folder, temp), is highly suspicious and warrants deep investigation (hash checking against known cheats, decompilation/disassembly if possible).
  * **Unusual Location:** Legitimate DLLs required by a game are usually located in the game's installation directory or standard system folders (`System32`, `SysWOW64`). Finding DLLs loaded by the game process from `Downloads`, `Desktop`, `%AppData%`, `%Temp%`, or other user-writable locations is highly suspect.
  * **Suspicious Name/Imports:** DLLs with names hinting at cheating (`aimbot.dll`, `esp_hook.dll`) are obvious. Examining the DLL's import table (functions it uses from other DLLs, viewable with tools like PeStudio or DiE) might reveal suspicious dependencies (e.g., extensive use of memory manipulation or input hooking functions).
* **Detection Focus:** Combine checking for injector processes/artifacts, analyzing the game process's loaded modules (System Informer Modules tab), scanning process memory (Volatility `dlllist`/`ldrmodules`), and critically, **performing signature and Yara checks** (e.g., using Spok's PathParser tool on DLLs found in `csrss` memory dumps) on any unfamiliar or suspiciously located DLLs associated with the game process.
