A simple cheat for the game Phasmophobia. It is written in C++ and is developed using ImGui and MS-Detours.

a screenshot of the game Phasmophobia using the Asthmaphobia cheat

Some features

  • Ghost information
  • ESP
  • Anti Kick
  • Change in-game stats like player sanity
  • Force specific Tarot card
  • Godmode
  • Teleportation
  • Marco Mode (infinite stamina)
  • Be Marco (custom run/walk speed)
  • Toggle door interaction and collision
  • Custom experience reward

Download

You can download this at sipacid.com/files/asthmaphobia/loader.exe.

Technical stuff

This part is meant for nerds only.

Dynamically getting function addresses

If you have read my blog post on how to make a Phasmophobia cheat you know I used to hardcode the offsets for function addresses. This is obviously not very pratical, so instead of doing that, I now use exported IL2CPP functions from the game to retrieve those dynamically, see example below.

template <typename T>
T GetMethodPointer(const char* assemblyName, const char* namespaceName,
const char* className, const char* methodName, int argsCount = 0)
  {
    void* image = assemblyImage;
    if (strcmp(assemblyName, "Assembly-CSharp") != 0)
    {
      void* assembly = il2cpp_domain_assembly_open(domain, assemblyName);
      if (!assembly)
        return nullptr;

      image = il2cpp_assembly_get_image(assembly);
      if (!image)
        return nullptr;
    }

    void* klass = il2cpp_class_from_name(image, namespaceName, className);
    if (!klass)
      return nullptr;

    void* method = il2cpp_class_get_method_from_name(klass, methodName, argsCount);
    if (!method)
      return nullptr;

    struct MethodInfo
    {
      void* methodPointer;
    };
    void* methodPointer = static_cast<MethodInfo*>(method)->methodPointer;

    return reinterpret_cast<T>(methodPointer);
  }

Source code

The source code for this version is available on github.com/sipacid/asthmaphobia.