Skip to content

mare5x/CupheadBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CupheadBot

CupheadBot is a GUI based trainer for the game Cuphead.

Usage

Inject the dll with (must run as admin):

CupheadBot.exe <absolute path to dll>

or copy the dll to Cuphead.exe directory and run:

CupheadBot.exe

Once CupheadBot.dll has been successfully injected, you will see a GUI show up right in the game. Use the GUI to enable/disable various hacks. Press F1 to show/hide the GUI. To uninject the dll, press the exit button.

Note: some hacks won't work until you're in a game. For example to enable invincibility, you must first get hit. That is because Cuphead uses just-in-time compilation (JIT). (This can be fixed by using mono functions, such as mono_compile_method.)

Demo

Available hacks:

  • map wallhack,
  • money hack,
  • invincibility,
  • HP and Super Meter hacks,
  • no cost super,
  • infinite jumping and dashing (and parrying),
  • one hit kill enemies,
  • change loadout at any time (primary weapon, secondary weapon, super and charm),
  • show in-game debug console.

Demo webm.

Setup

  1. git clone https://github.com/mare5x/CupheadBot.git
  2. Open CupheadBot.sln with Microsoft Visual Studio.
  3. Build CupheadBotCL and CupheadBotDLL to get CupheadBot.exe and CupheadBot.dll.

About

CupheadBot is a set of hacks for the game Cuphead.
The purpose of the project was to learn about various hacking and reverse engineering techniques. As such, the code is not ideal and the implementation of many hacks could have been simplified.

CupheadBotCL is the first version which features only basic hacks implemented using ReadProcessMemory, WriteProcessMemory and other process memory functions.

CupheadBotDLL is the improved version which features more hacks as well as an in-game GUI using ImGui (using d3d11 hooking). CupheadBotDLL is a dll project, so once the dll is injected, controlling program flow is simpler, since the dll lives in the target process' memory space.

Techniques used

  • dll injection,
  • vtable hooks,
  • jump hooks,
  • detour hooks,
  • nop fills,
  • memory signature scanning,
  • writing asm code,
  • trampoline functions,
  • input hooking,
  • mono.dll hooking,
  • d3d11 hooking.

Function signatures were found by memory scanning using Cheat Engine.
The x86 project was compiled using Microsoft Visual Studio Community 2017 on Windows 10.

Extras

While reverse engineering the game I found a left over developer console which can be enabled through the GUI. I also found unused weapons, which can be equipped using the GUI weapon selector.

About

A GUI based trainer for the game Cuphead.

Resources

Stars

Watchers

Forks

Packages

No packages published