Files
RMHook-Win/README.md
√(noham)² b9c992e3d7 Implement export forwarders and refactor hooks
Introduce a PAHO_FORWARDER_EXPORTS macro and generate Original_* FARPROC forwarder targets, replace the many hand-written fake exports with assembly forwarding stubs, and simplify exports.cpp to declare and initialize those forwarder pointers. Refactor paho-mqtt3as-proxy hook logic: improve logging, robustly load/save JSON config using std::filesystem and safe parsing, consolidate URL/host patching logic for HTTP/WS/MQTT, and add safer MQTT URI patching and resolution helpers. Update main to populate forwarder addresses at startup and make hook installation more defensive when symbols aren't found. Add docs images, update README (bump tested version and enable images), remove STATE.md, and adjust .gitignore to keep docs included.
2026-05-09 23:14:02 +02:00

4.1 KiB

RMHook-Win

A Windows port of RMHook for the reMarkable Desktop application. This repo builds a proxy DLL that hooks Qt network APIs and redirects reMarkable cloud traffic to a self-hosted rmfakecloud server.

Overview

RMHook-Win intercepts the reMarkable Desktop app's Qt networking layer and patches outgoing requests to the configured host and port. It is designed for the Windows reMarkable Desktop client and uses a DLL proxy for paho-mqtt3as.dll.

Features

  • Redirect reMarkable cloud HTTP(s) requests to a self-hosted rmfakecloud server
  • Patch Qt WebSocket connections used by the reMarkable app

Compatibility

Tested and working on:

  • reMarkable Desktop v3.27.1 (released 2026-06-05)

Installation and usage

⚠️ For legal reasons, this repository does not include a pre-patched reMarkable app. However, the latest compiled dylib is available in the Releases section.

Step 1: Build or obtain the proxy DLL

Build the paho-mqtt3as-proxy project with Visual Studio using paho-mqtt3as-proxy.slnx, or use an existing paho-mqtt3as.dll built from this repo.

Step 2: Install the hook

Use the installer script from the scripts folder. Note: Run from an elevated PowerShell session. The installer script will request administrator privileges if needed.

From PowerShell:

.\scripts\install-hook.ps1 -Action install

Or with the batch wrapper:

.\scripts\install-hook.bat -Action install

If you want to install a custom DLL build:

.\scripts\install-hook.ps1 -Action install -SourcePath "C:\path\to\paho-mqtt3as.dll"

The script expects the Windows reMarkable install folder at:

C:\Program Files\reMarkable

Step 3: Restore the original DLL

To remove the proxy and restore the original paho-mqtt3as.dll:

.\scripts\install-hook.ps1 -Action restore

Configuration

Config path:

%LOCALAPPDATA%\RMHook\config.json

Example config:

{
  "host": "your-server.example.com",
  "port": 443
}

If the config file does not exist, it will be created automatically with default values on first launch.

Troubleshooting

Hook install fails

  • Confirm the reMarkable install path is C:\Program Files\reMarkable
  • Run PowerShell as administrator
  • Verify the source DLL exists and is a valid proxy build

App crashes or misbehaves

  • Restore the original DLL with -Action restore
  • Check the config file for valid JSON
  • Make sure the host and port values point to a reachable rmfakecloud server

Credits

License

This project is licensed under the MIT License. See the LICENSE file for details.

Disclaimer

This project is not affiliated with, endorsed by, or sponsored by reMarkable AS. Use at your own risk. This tool modifies the reMarkable Desktop application and may violate the application's terms of service.

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.