From 634c65afd4161095f122fc2865049d7e46ae6123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=88=9A=28noham=29=C2=B2?= <100566912+NohamR@users.noreply.github.com> Date: Sun, 10 May 2026 19:00:23 +0200 Subject: [PATCH] Add How it works section to README --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 82136ca..ba7aa89 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,9 @@ If the config file does not exist, it will be created automatically with default - Check the config file for valid JSON - Make sure the `host` and `port` values point to a reachable rmfakecloud server +## How it works +The project builds a proxy DLL for `paho-mqtt3as.dll` that re-exports all original functions. It hooks specific Qt network functions (`QNetworkAccessManager::createRequest`, `QWebSocket::open` and `MQTTAsync_createWithOptions`) to intercept and modify outgoing requests from the reMarkable Desktop app. The hooks redirect traffic to the configured host and port, allowing the app to communicate with a self-hosted rmfakecloud server instead of the official reMarkable cloud. + ## Credits - MinHook: [TsudaKageyu/minhook](https://github.com/TsudaKageyu/minhook) - API hooking framework used by the project