Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

shark-menu-dll-cpp

A set of in-process plugin DLLs for a game client. Every variant is built from a single Visual Studio C++ project that compiles one DLL at a time, so the variants are mutually exclusive builds of the same project and only one is loaded at once. Once injected, a plugin resolves a base pointer, scans the host code for byte patterns, and hooks the located code to change the game's behaviour at runtime.

Written: ~2021-2023
Language: C++ (MSVC) and Assembly (MASM)

Variants

Each subfolder holds one variant's dllmain.cpp plus its matching main.asm. Every variant ships with the target process name and all byte patterns cleared, those have to be filled back in before building.

Variant What it does
main-menu The main menu with all of the options included.
speedhack A standalone speedhack built on the same template as the main menu.
private-server A speed and fly hack build for an older client.
auto-combat The same template as the main menu with speed and fly hack, plus extra manipulation of in game functions to move the player through auto combat.

External dependencies

Only the variant sources are included. The build also needs the following, vendored under deps/ in the original project.

  • Plugin loader SDK (pluginsdk.h, SDK 3.1) , defines the Version and PluginInfo structs and the GPluginInfo contract between the DLL and the host loader.
  • Microsoft Detours (4.0.1) , the hook install and commit (DetourTransactionBegin, DetourAttach, DetourTransactionCommit). Built from source under deps/Detours.
  • xorstr (Justas Masiulis, Apache 2.0) , compile time string encryption via xorstr_(...). The AVX path is disabled with JM_XORSTR_DISABLE_AVX_INTRINSICS.
  • PE module helper (pe/module.h) , pe::get_module(), segment and section walking, as_bytes(), and rva_to<T>(), used to grab the code section for scanning.
  • pattern searcher (searchers.h) , the pattern_searcher AoB scanner used with std::search.
  • SimpleIni (brofield) , CSimpleIniA, parses each variant's options.ini. Used by every variant except auto-combat.
  • Microsoft GSL (gsl/span) , a non owning span view, pulled in transitively by the PE module and pattern searcher headers.
  • Native NT API (ntdll.lib, phnt style headers) , NtCurrentPeb(), NtCurrentThread(), and PEB access used for anti debug and base address logic.
  • Windows SDK , comdef.h and the usual platform headers.

Notes

These are sources copied as is from the original Visual Studio project, cleaned up for publication. The target process names, module names, byte patterns, pointer chains, and any key material have been cleared or replaced with placeholders and commented as such. They are specific to one application build and have to be supplied again for the project to do anything.

Related projects

Most of these variants started as separate experiments that were later folded into the menu. They live alongside this project in the parent folder.

  • auto-assembler-scripts , the Cheat Engine Auto Assembler (.CEA) prototypes the assembly here was ported from, including the speed, fly, and quest scripts in both x86 and x64 form.
  • hardware-license-keygen-cpp , generates the machine bound keys that the main-menu key check validates.
  • process-affinity-changer-cpp , the CPU affinity and priority logic that main-menu applies on startup.
  • vigenere-cipher-cpp , the cipher behind the encrypted data files the main-menu automation thread reads.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages