{
  "added_at": "2026-11-10",
  "additional_evidence_urls": [
    "https://gitlab.com/bwrsandman/blackhack/-/blob/d4f2a517f52d174cf5429b304797d01c3221e1b6/launcher.c",
    "https://gitlab.com/bwrsandman/blackhack/-/blob/d4f2a517f52d174cf5429b304797d01c3221e1b6/Libs/SetupThing/src/SetupButton.cpp",
    "https://gitlab.com/bwrsandman/blackhack/-/blob/d4f2a517f52d174cf5429b304797d01c3221e1b6/src/Game.h"
  ],
  "category": "reconstruction-cases",
  "class": "game",
  "description_en": "blackhack rebuilds the SetupControl UI widget classes of runblack.exe as hand-decompiled C, covering buttons, big and tab buttons, check boxes, lists, sliders, edit fields, colour pickers, pictures and graph widgets, along with parts of Lionhead's lhlib. A Detours launcher checks the executable's md5, injects a DLL and swaps original functions for the rebuilt ones through per-version tables of function and data addresses. It also patches the fullscreen setter so runblack.exe always runs windowed.",
  "description_zh": "blackhack 用手工反编译的 C 代码重建 runblack.exe 的 SetupControl 界面控件类，涵盖按钮、大按钮与标签按钮、复选框、列表、滑块、输入框、取色器、图片和图表控件，并重建了部分 Lionhead lhlib 库。基于 Detours 的启动器先校验可执行文件的 md5，再注入 DLL，按各版本的函数与数据地址表把原函数替换为重建版本。项目还修改了全屏设置函数，使 runblack.exe 始终以窗口模式运行。",
  "entry_url": "https://awesomerea.org/resources/blackhack-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/blackhack-case/",
  "evidence_url": "https://gitlab.com/bwrsandman/blackhack/-/blob/d4f2a517f52d174cf5429b304797d01c3221e1b6/README.md",
  "group": "cases",
  "id": "blackhack-case",
  "json_url": "https://awesomerea.org/resources/blackhack-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/blackhack-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/blackhack-case/index.md",
  "name": "blackhack: runblack.exe UI widget decompilation",
  "name_zh": "blackhack：runblack.exe 界面控件类反编译",
  "reconstruction_method": "decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "prerequisites",
    "limits",
    "license"
  ],
  "requirements": [
    "Requires runblack.exe version 1.41 with the no-CD patch (md5 174b1a64e74b2321f3c38ccc8a511e78); other versions need new function and global address tables.",
    "Builds with CMake 3.14 or later and the Detours library.",
    "The SetupControl implementation is almost complete.",
    "No licence file in the repository."
  ],
  "requirements_zh": [
    "需要打过免 CD 补丁的 runblack.exe 1.41 版（md5 为 174b1a64e74b2321f3c38ccc8a511e78）；支持其他版本需要新增函数和全局变量地址表。",
    "使用 CMake 3.14 及以上版本和 Detours 库构建。",
    "SetupControl 类的实现接近完成。",
    "仓库中没有许可证文件。"
  ],
  "targets": [
    "binary",
    "game"
  ],
  "url": "https://gitlab.com/bwrsandman/blackhack",
  "verification": "source-reviewed",
  "verified_at": "2026-11-09"
}
