Squalr’s functionality is broken down into separate packages, each of which are available on NuGet. The high level descriptions of each are given below. For details on the APIs, view the Cheat Development guide.
The base engine project contains utils for the other projects to use, and Process APIs.
A must-have project for any memory editor. This provides abstractions to reading, writing, allocating, and querying memory in the target process seamlessly regardless if the process is 32 or 64 bit.
The architecture project is for assembling and disassembling instructions.
The library SharpDisasm is used for disassembling. This is written entirely in C#. This supports x86/x64.
Unfortunately, there is no pure C# assembler implementations. Instead, Squalr invokes nasm.exe to perform assembly operations. While this likely isn’t very performant, assemblying generally only takes place at the beginning of scripts, so this overhead is negligable. This also supports x86/x64.
This project is responsible for debugging a target process. Debugging is what enables the highly-used “Find What Reads/Writes” feature in Squalr.
Currently, there is only one debugger supported, DbgEng (the engine behind WinDbg). This is used via COM interfaces, which C# provides a convenient way to interface with via annotations.
Work in progress. The idea is to have an abstraction over OpenGL and DirectX for rendering overlays, or manipulating graphics in the target process. This would be ideal for aimbot creation.
Mostly a wrapper over SharpDX’s input management. This serves as a way for scripts to query input events.
This library provides a set of interfaces for managing scripts, which leverage the previously mentioned project’s APIs.