3.9 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:
Installation and usage
Important legal note
⚠️ 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
hostandportvalues point to a reachable rmfakecloud server
Credits
- MinHook: TsudaKageyu/minhook - API hooking framework used by the project rmfakecloud: ddvk/rmfakecloud - Self-hosted reMarkable cloud
- xovi-rmfakecloud: asivery/xovi-rmfakecloud - Original hooking information
- rm-xovi-extensions: asivery/rm-xovi-extensions - Extension framework for reMarkable, used as reference for hooking Qt functions
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.