Open Slinky Banner
Open Slinky
by Skid Solutions
credits to cat;

---

https://discord.gg/AEwatvnvSf

java hooks unload symbol recovery readable names

---

build proof

--- ## About Open Slinky is a readable C++ reconstruction of the Slinky client for Minecraft 1.8.9. The client is injected into the game process as a native DLL; it hooks the game at the Java bytecode level through JVMTI, dispatches events to the module system, and renders its interface through NanoVG. This edition is cleaned up for development: - address-based file and function names have been replaced with descriptive ones; the original symbols are recorded in `docs/symbol-map.json` (functions) and `docs/global-symbol-map.json` (`data_` / `rdata_` globals and the `*_part` event handlers), and inferred names are listed in `docs/renames.md`; - assembly used only for byte-exact code generation has been removed; the remaining `asm` tokens are symbol aliases, not instructions; - the client's data tables remain in `src/data` because the code links against them (fonts, strings, module descriptors). --- ## How to build ### Prerequisites - **LLVM** — clang-cl, lld-link, llvm-rc and llvm-mt on `PATH` - **CMake** 3.20 or newer - **Ninja** - **Windows x64** - **Java Development Kit 8** — runtime for Minecraft 1.8.9; not required to compile the DLL ### 1. Configure ```powershell cmake -S . -B build -G Ninja ` -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-windows-clang-cl.cmake ``` If Ninja is not on `PATH`, add `-DCMAKE_MAKE_PROGRAM=C:/path/to/ninja.exe`. ### 2. Build ```powershell cmake --build build ``` Output: - `build/slinky.dll` ### Running Inject `slinky.dll` into the running Minecraft 1.8.9 process with `LoadLibrary`. Start-up runs on its own thread; the client interface is opened with its GUI key. The last interface tab unloads the client: it saves the settings, removes the Java hooks and frees the library. --- ## Project layout ``` src/engine/ hooks, JNI/JVMTI, GUI, module manager, math, shared services src/logic/ per-module behaviour (.cpp) and its descriptor callbacks / settings page (.h) src/platform/ Windows layer, GL loader, NanoVG integration src/data/ data tables (fonts, strings, descriptors) - required to link include/slinky/ public headers docs/ design notes and the symbol map third_party/ NanoVG and GL headers ``` ## Notes - Start-up, teardown, the window hook and the unload thread were virtualised in the original image and are reconstructed in `src/engine/protected/`. - `docs/symbol-map.json` maps every original `fn_`, `logic_`, `cb_`, `reg_` and `aux_` symbol to its readable name. - Settings and profiles are stored in `~/.slinky` (`settings`, `profiles/`). - `src/data/*.s` and `src/platform/win/chkstk.s` are data/compiler-support sections, not client code, this is 1 to 1 logic but may have some issues that we didnt find. ## Credits - Original client: Slinky - Reconstruction: Claude (VMProtect devirtualization), DeepSeek (decryption), GLM and Claude (symbol recovery) ## Legal & disclaimers - **Affiliation:** This is an independent development. It is **NOT AN OFFICIAL SLINKY PRODUCT**, is not approved by or associated with the original authors, and is not affiliated with Mojang or Zelix Pty Ltd. - **Assets & code:** No un-obfuscated original source code is distributed directly within this repository. The `src/data` tables are the client's own data required for linking; all third-party assets and code belong to their respective owners. - **Purpose:** research and preservation. Use at your own risk.