A Win32 hook for the ro client's send() function to intercept and transform outgoing network packets before they reach the target server.
- On
DllMain(DLL_PROCESS_ATTACH), the hook installs an inline detour hook onws2_32.dll's send() - Every outgoing
send()call passes throughsend_intercept(), which reads the 2-byte opcode - Matching opcodes are dispatched to handler functions, unmatched packets continues to the original
send()
- Login packet handler intercepts
CA_LOGIN(0x0064), hashes the plaintext password with BLAKE2b-256 using the username as the key, and sends the replacement packetCA_LOGIN_HASHED(0x0C50) to the server.
- Open
interceptor.vcxprojin Visual Studio 2022 - Select Release | Win32
- Build — outputs
interceptor.dlltobuild/
- Add the following to
DLLSpec.yml:
Name: interceptor.dll
Funcs:
- Name: "interceptor_init"
- Ordinal: 1- Enable the Add custom DLLs patch
- Open the game executable in CFF Explorer
- Go to Import Adder
- Browse and select
interceptor.dll - Select the
interceptor_initfunction from the export list - Click Add then Rebuild Import Table
- Save the patched executable
- Define the original and replacement packet structs in
packets.hpp - Write a handler function in
handler.hpp/cpp - Add a
caseto the switch insend_intercept()ininterceptor.cpp
- Visual Studio 2022
- C++17
2025-06-04
Use at your own risk.