/catsight

Cross-platform process memory inspector

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Catsight

Cross-platform process memory viewer inspired by x64dbg.

Features

  • Cross-platform (currently runs on Linux and Windows).
  • Attach to any process that your system user has access to.
  • Look at all the mapped pages of memory.
  • Browse and scroll through the memory of any process as an address table.
  • Disassemble code in memory regions and jump between references.
  • Byte pattern searching and generation in code sections.

Download & install

Pre-built binaries will be provided very soon on Itch.io.

Screenshots

Data tab

Code tab

Maps tab

String search

What this isn't

This is not a debugger. (At least, not yet.) It was not designed with debugging in mind, it is merely a process memory viewer.

Building

Catsight uses CMake to build.

Preparing the build

You'll need to make sure the Git submodules are initialized and updated first. For example:

$ git submodule update --init --recursive

Building on Linux

Building on Linux should work out of the box as long as the necessary dependencies are installed.

Using your favorite package manager, you will have to install lua and its development files.

Then, to actually run the CMake build:

$ mkdir build
$ cd build
$ cmake ..
$ ninja

Building on Windows

On Windows, you can optionally use vcpkg to install the lua dependency using vcpkg install lua:x64-windows. You can then run CMake with -DCMAKE_TOOLCHAIN_FILE=C:/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake before building and it will automatically find the dependencies.

To actually run the CMake build, you can use the CMake GUI application to generate a Visual Studio project, or you can use the command line:

> mkdir build
> cd build
> cmake ..

Using VSCode

VSCode is a great way to automatically configure and build the CMake project on both Linux and Windows. On Linux no additional configuration is necessary.

On Windows, you might need to add the following directive to .vscode/settings.json to make sure that the vcpkg toolchain is being used:

"cmake.configureSettings": {
	"CMAKE_TOOLCHAIN_FILE": "C:/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake",
},