bad4e5ecb4fde15c69b462b393925e52276d7967
Open Slinky
by Skid Solutions
credits to cat;
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) anddocs/global-symbol-map.json(data_<rva>/rdata_<rva>globals and the*_partevent handlers), and inferred names are listed indocs/renames.md; - assembly used only for byte-exact code generation has been removed; the
remaining
asmtokens are symbol aliases, not instructions; - the client's data tables remain in
src/databecause 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
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
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.jsonmaps every originalfn_<rva>,logic_<rva>,cb_<rva>,reg_<rva>andaux_<rva>symbol to its readable name.- Settings and profiles are stored in
~/.slinky(settings,profiles/). src/data/*.sandsrc/platform/win/chkstk.sare 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/datatables 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.
Languages
C++
72.1%
C
14.3%
Assembly
13.1%
CMake
0.4%




