icon-48x48x32 QuickChat
QuickChat is a minimalistic LAN messenger, written in pure C with the Win32 API. Does not require installation, leaves no traces, and works on any version starting from Windows 2000 up to 11.
imageBased on MicroChat Framework.
Active development is now focuses on maintenance, bug fixes and security patches.
No major features are planned.
- Portable - just 1 .exe file
- Unicode Support - any languages, any symbols.
- QC/QCS Protocol
- QC (QuickChat) - plaintext, base protocol.
- QCS (QuickChat Obfuscated) - XOR obfuscation, virtual protocol on top of QC.
- Logging - save chat history and events. Only for Server, disabled by default.
- Tiny Size - just 150 KB.
- Drag-and-Drop - drag-and-drop any compatible text file and it will extract text instantly.
- OS - Windows 2000 and newer.
- Run QuickChat.
- Click Yes.
- Select protocol.
- Select if you want to enable logs.
- Share displayed IP. Note that user should be in same network.
- Run QuickChat.
- Click No.
- Type the Host IP and click Connect.
- Select protocol.
Full chat log stored only on host side and do not contain sensitive information. It only logs:
- Session start and end.
- User messages with timestamps.
- System messages and events.
- Where server set port binding.
- Who connected (computer name and LAN IP).
For client, added option to save just chat history:
- Connection
- Save Chat
It uses a very simple yet working custom protocol. The base protocol is QuickChat Plaintext (QC).
QCS (QuickChat Obfuscated) is not a separate protocol - it is a XOR overlay that masks the data.
- Who starts first: Client. Host never sends anything until it will be QC handshake.
- Client sends handshake in following format: QC:PCNAME0円.
Replace PCNAME with your computer name or what you want remote side to see.
"0円" is required - official backend written on C, meaning you have to follow C rules.
If you are using QCS, you need to XOR everything before.
First 3 bytes should be exactly "QC:" or XORed version of it. Host reject if it is non-QC or at least 1 byte is wrong.\ - Host send its name in same format.
- Chat starts.
Host and client side can delete logs/history at any time, it is stored only locally.
Note: QCS is a virtual protocol. It does not exist without QC Plaintext. When QCS is enabled, all data is XORed before being sent, and no plaintext data leaves the application.
Read CHANGELOG.md.
- MinGW-w64 compiler
- Python any version
- Windows (7/10/11 recommended for build tools)
- 7z.exe - packaging.
- keygen.py - XOR key generator.
- keygen_fixed.py - XOR key generator, but with your own key.
- build.bat - build script.
- resource.rc - resources.
- quickchat.manifest - Common Controls v6 manifest. Mostly for visual styles.
- Clone or download a repository
- Make sure
gcc,windres, andpythonare available in PATH. - Open a command prompt in the project folder.
- If you want to define your own key before, run:
python keygen_fixed.py <your own key>
If you want to make your build compatible with official host, copy QCS key string from release. - Run depending on what you need:
build.bat- Compile QuickChat without changing key and packing.
build.bat /rekey- Compile QuickChat and regenerate key without packing.
build.bat /pack- Compile QuickChat and pack without regenerating key.
build.bat /rekey /pack- Compile QuickChat, regenerate key and pack.
build.bat /minbuild- Compile QuickChat with most minimal configuration.
build.bat /clean- Delete existing compiled files.
-
Adding error code to log write fail breaks themeing.
Adding showing error code in logging start failure breaks Common Controls v6 (disabling themeing).
Fixed: Yes. -
Client and Server show same IP address, when no route but computers connected anyways.
Sometimes IP address displayed incorrectly when routing table is wrong.
Fix: Reset routing table completely. -
Tab inserted as a character instead switching controls.
This is a known limitation of multi-line EDIT control, no known fix exist except subclassing, but it will be handled only for specific control. Default behavior since Windows 3.x.
Fix: Not available.
By default, manifest provide only Common Controls v6. DPI-aware manifest wasn't added because Windows XP compatibility breaks with SxS error.
Steps to activate high DPI (Windows 10/11):
- Open
quickchat.exeproperties. - Select "Compatiblity" tab.
- Click "Change high DPI settings".
- Check "Override high DPI scaling behavior" and select "Application" from list.
- Click OK and then Apply.
Steps to activate high DPI (Windows 7/8):
- Open
quickchat.exeproperties. - Select "Compatiblity" tab.
- Check "Disable display scaling on high DPI settings".
- Click Apply.
Note that only fonts are scaled - controls are fixed in size
image
QuickChat in 125% scaling on Windows 10
This project uses 7-Zip for archiving.
7z.exe is included for convenience and is used under the terms of the GNU LGPL license.
Enjoy! If you have questions, write me to my Discord - @pcsettings