https://github.com/jilwer/proton-inject
A Fyne GUI for injecting DLLs into proton processes using CRT+LL
https://github.com/jilwer/proton-inject
go gui injector linux modding proton rust
Last synced: 2 months ago
JSON representation
A Fyne GUI for injecting DLLs into proton processes using CRT+LL
- Host: GitHub
- URL: https://github.com/jilwer/proton-inject
- Owner: Jilwer
- License: gpl-3.0
- Created: 2026-04-26T21:53:24.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-26T23:55:32.000Z (2 months ago)
- Last Synced: 2026-04-27T00:16:23.735Z (2 months ago)
- Topics: go, gui, injector, linux, modding, proton, rust
- Language: Go
- Homepage:
- Size: 87.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Proton Inject
Comprehensive DLL injector for proton games, made with Go, Rust, and Fyne with a clean GUI, profile system, and mod loader.
## Requirements
- protontricks (Required for launching the injector inside the correct Proton prefix using `protontricks-launch`)
## Download
Download the latest release from the [release page](https://github.com/Jilwer/Proton-Inject/releases/latest).
## Architecture & Features
- This program is primarily written in Go and Rust and uses the Fyne GUI library.
- Both the injector and loader are embedded directly into the main program using Go's `embed.FS`.
- The GUI wraps an embedded CRT+LL injector written in Rust, which is used to inject our DLLs.
- We have a frontend wrapper for the injector, `injector_wrap.go`, that is built directly into the main program. This uses `protontricks-launch` to run the injector in the correct Proton context, ensuring DLL injection into the correct target process.
- The tool ships with an optional loader DLL that the injector can use. This creates a `proton-inject-mods` folder under the target Proton/Wine prefix's `Documents` directory, with GUI helpers to quickly access this folder.
- A profiles system lets you save game profiles so you do not need to remember details such as the Steam AppID.
- It ships as one fully portable binary, installation not required, but can be achieved manually
- Other injection methods are not supported at the moment because CRT+LL on linux at the present is sufficiently stealthy, and other methods have poor compatibility through wine/proton
## Installation
Either download the compiled binary from the release page, or build yourself. I will not be maintaining this on any package repo's, and system installation lies upon the user if it is wanted.
## F.A.Q
### Why CRT+LL only?
CRT + LoadLibrary (CreateRemoteThread + LoadLibrary) is currently the most reliable injection method under Proton/Wine.
Other techniques tend to:
- Break due to Wine translation layers
- Have inconsistent compatibility across games
In testing, CRT + LoadLibrary has been sufficiently stealthy under Proton/Wine. This differs from native Windows behavior. Additional methods may be added in the future if needed.
### Where are mods stored?
`/drive_c/users/steamuser/Documents/proton-inject-mods`
### Do I need to install it?
No. It’s fully portable—just run the binary.
## Building
Requirements:
- A C compiler (Fyne uses cgo)
- Go
- Rust
- Make
Run `make build` or `make release`.
## Contributing
Feel free to submit pull requests at will, given the time I will review them and merge them when the time becomes available
## License
This code is licensed under the GNU GPL v3. Please see the [LICENSE](LICENSE) file for more details.