Skip to content

v1.1.0

Choose a tag to compare

@MyresMkG MyresMkG released this 29 Sep 05:50
· 3 commits to main since this release
b3d576c

这里是 stellaris_mod_injector.exe 的代理 DLL 版,一共五种:

文件 顶替的系统 DLL 游戏用它做什么
dxgi.dll 显示/DXGI 工厂 建 DXGI 工厂
d3d11.dll Direct3D 11 建设备
d3dcompiler_47.dll DirectX 着色器编译器 编译 HLSL(第 4 个导入)
version.dll 文件版本信息 读 exe 版本号
winmm.dll 多媒体/计时器 手柄与计时器(SDL 也用)

随便挑一个放进游戏根目录(和 stellaris.exe 同级),游戏启动时 Windows 会
优先加载它。它做两件事:

  1. 对游戏冒充那个系统 DLL:所有导出(含序号)都原样转发到
    C:\Windows\System32\ 里的真文件,游戏察觉不到区别;
  2. 加载 injected_mods:等游戏自己起来(加载器线程不再在挂接的一瞬间创建,
    而是等到游戏自己的 CRT 初始化完成),把
    injected_mods\*.dll 按文件名顺序逐个 LoadLibrary 进游戏进程 ——
    和注入器做的事完全一样,只是从进程内部做。

不需要运行 stellaris_mod_injector.exe,不修改游戏的任何文件。
注入器和它也不冲突:LoadLibrary 对已加载的模块直接返回旧句柄,DllMain 只跑一次。