# Arc Raiders DMA Radar (Poor Man's Radar) A Direct Memory Access (DMA) based radar/ESP for **Arc Raiders**, utilizing **MemProcFS** for memory reading and **Unicorn Engine** for emulating decryption routines. This project demonstrates how to use CPU emulation to handle complex pointer decryption (GWorld, GameInstance, etc.) without manually reversing and rewriting the decryption logic. ## 🚀 Features * **DMA Based**: Reads memory externally using hardware (FPGA), making it invisible to anti-cheat software running on the gaming PC. * **Unicorn Emulation**: Uses Unicorn Engine to emulate the game's own decryption functions extracted from the binary. This allows for robust pointer resolution even when obfuscation algorithms change. * **Framework Ready**: Includes a basic structure for: * DMA Initialization (MemProcFS) * Process & Module Base Retrieval * Decryption of `GWorld`, `GameInstance`, `CameraManager`, and `BoneBase`. * Basic Player/Actor iteration logic (needs implementation of specific offsets). ## 🛠️ Prerequisites ### Hardware * **DMA Card**: A compatible FPGA device (e.g., LeechCore, RaptorDMA, Enigma, etc.). * **Second PC**: To run this radar application. * **Fuser (Optional)**: For overlaying the radar on the main screen (if implementing visual overlay). ### Software * **Windows 10/11** (x64) * **Visual Studio 2022** (with C++ Desktop Development workload) * **MemProcFS** drivers installed. ## 📦 Dependencies The project relies on the following libraries (included in `libs/` or required to be downloaded): 1. **[MemProcFS](https://github.com/ufrisk/MemProcFS)** (v5.16+) * Handles communication with the DMA hardware. 2. **[Unicorn Engine](https://github.com/unicorn-engine/unicorn)** (v2.1.1) * x86_64 CPU emulator used for executing decryption stubs. ## ⚙️ Build Instructions 1. **Clone the repository**: ```bash git clone https://github.com/yourusername/ArcRaiders-DMA-Radar.git cd ArcRaiders-DMA-Radar ``` 2. **Setup Dependencies**: * The project expects the following structure in the `libs` folder: ```text libs/ ├── MemProcFS/ │ ├── vmm.dll │ ├── leechcore.dll │ ├── vmmdll.h │ └── ... └── unicorn/ ├── unicorn.dll ├── unicorn-import.lib (or unicorn.lib) └── include/ └── unicorn/ └── unicorn.h ``` * If these are missing, please download the release binaries from the respective GitHub repositories and place them correctly. 3. **Compile with Visual Studio**: * Open `ArcRaidersRadar.sln` in Visual Studio 2022. * Select **Release** configuration and **x64** platform. * Build the solution (`Ctrl+Shift+B`). * The executable `ArcRaidersRadar.exe` will be generated in the `x64/Release` folder. ## 🖥️ Usage 1. Ensure your DMA hardware is connected and functioning. 2. Run **Arc Raiders** on your main gaming PC. 3. Run `ArcRaidersRadar.exe` on your second PC. 4. The program will: * Connect to the DMA device. * Find the `PioneerGame.exe` process. * Initialize the Unicorn emulator. * Decrypt and print the addresses of `GWorld` and other core components. ## 🤝 Credits * **yurigagarin**, **Omdihar**, **bastok**: For the original research, offsets, and decryption logic shared on UnknownCheats. * **ufrisk**: For the amazing MemProcFS project. * **Unicorn Engine**: For the emulation framework. ## ⚠️ Disclaimer This software is for **educational purposes only**. Using this software in online games may violate their Terms of Service and result in account bans. The author assumes no responsibility for any consequences resulting from the use of this software.