Skip to content

Commit 8c5716d

Browse files
committed
Initial commit
0 parents  commit 8c5716d

17 files changed

+1800
-0
lines changed

.gitattributes

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Auto detect text files and perform LF normalization
2+
* text=auto

.gitignore

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# If you prefer the allow list template instead of the deny list, see community template:
2+
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
3+
#
4+
# Binaries for programs and plugins
5+
*.exe
6+
*.exe~
7+
*.dll
8+
*.so
9+
*.dylib
10+
11+
# Test binary, built with `go test -c`
12+
*.test
13+
14+
# Output of the go coverage tool, specifically when used with LiteIDE
15+
*.out
16+
17+
# Dependency directories (remove the comment below to include it)
18+
# vendor/
19+
20+
# Go workspace file
21+
go.work

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2022 tjandy98
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

+144
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
2+
<br />
3+
<div align="center">
4+
5+
6+
<h3 align="center">GoInject</h3>
7+
8+
<p align="center">
9+
GoInject is a dynamic-link library injection program written in Go.
10+
</p>
11+
</div>
12+
13+
14+
15+
<!-- TABLE OF CONTENTS -->
16+
<details>
17+
<summary>Table of Contents</summary>
18+
<ol>
19+
<li>
20+
<a href="#about-the-project">About The Project</a>
21+
<ul>
22+
<li><a href="#built-with">Built With</a></li>
23+
</ul>
24+
</li>
25+
<li>
26+
<a href="#getting-started">Getting Started</a>
27+
<ul>
28+
<li><a href="#installation">Installation</a></li>
29+
</ul>
30+
</li>
31+
<li><a href="#usage">Usage</a></li>
32+
<li><a href="#roadmap">Roadmap</a></li>
33+
<li><a href="#contributing">Contributing</a></li>
34+
<li><a href="#license">License</a></li>
35+
</ol>
36+
</details>
37+
38+
39+
40+
<!-- ABOUT THE PROJECT -->
41+
## About The Project
42+
43+
![Alt text](/docs/goinject.PNG "GoInject")
44+
45+
GoInject is a dynamic-link library injector that is written in Go. It makes use of Windows system calls and wrappers. The graphical user interface is based on the Fyne toolkit.
46+
47+
<p align="right">(<a href="#top">back to top</a>)</p>
48+
49+
50+
51+
### Built With
52+
53+
* [Go](https://go.dev/)
54+
* [Fyne](https://fyne.io/)
55+
56+
57+
<p align="right">(<a href="#top">back to top</a>)</p>
58+
59+
60+
61+
<!-- GETTING STARTED -->
62+
## Getting Started
63+
64+
To build the executable from source, follow these steps.
65+
66+
67+
### Installation
68+
69+
1. Clone the repo
70+
```sh
71+
git clone https://github.com/tjandy98/goinject.git
72+
```
73+
3. Install dependencies
74+
```sh
75+
go mod tidy
76+
```
77+
4. Generate executable binary
78+
```sh
79+
go build
80+
```
81+
82+
> To build for 32-bit and 64-bit, set the environment variable `GOARCH` to `amd64` for 64-bit and `386` for 32-bit.
83+
84+
<p align="right">(<a href="#top">back to top</a>)</p>
85+
86+
87+
88+
<!-- USAGE EXAMPLES -->
89+
## Usage
90+
91+
A target process should be selected from the list of active processes. Upon selecting a process, the target process name and the target process ID will be displayed.
92+
A valid DLL path should be set either by manually entering the path, or using the built-in file dialog.
93+
94+
Finally, the DLL can be injected into the target process by clicking on the Inject button.
95+
96+
97+
98+
<p align="right">(<a href="#top">back to top</a>)</p>
99+
100+
101+
102+
<!-- ROADMAP -->
103+
## Roadmap
104+
- [ ] Add process filter
105+
- [ ] Save configurations
106+
- [ ] Add more injection techniques
107+
108+
109+
110+
<p align="right">(<a href="#top">back to top</a>)</p>
111+
112+
113+
114+
<!-- CONTRIBUTING -->
115+
## Contributing
116+
117+
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
118+
119+
If you have a suggestion that would make this better, please fork the repo and create a pull request.
120+
Don't forget to give the project a star! Thanks again!
121+
122+
1. Fork the Project
123+
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
124+
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
125+
4. Push to the Branch (`git push origin feature/AmazingFeature`)
126+
5. Open a Pull Request
127+
128+
<p align="right">(<a href="#top">back to top</a>)</p>
129+
130+
131+
132+
<!-- LICENSE -->
133+
## License
134+
135+
Distributed under the MIT License.
136+
137+
138+
139+
140+
141+
142+
<p align="right">(<a href="#top">back to top</a>)</p>
143+
144+

docs/goinject.PNG

43.8 KB
Loading

go.mod

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
module goinject
2+
3+
go 1.18
4+
5+
require (
6+
fyne.io/fyne/v2 v2.2.0
7+
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad
8+
)
9+
10+
require (
11+
fyne.io/systray v1.9.1-0.20220523202515-bb6f1d955cff // indirect
12+
github.com/davecgh/go-spew v1.1.1 // indirect
13+
github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 // indirect
14+
github.com/fsnotify/fsnotify v1.5.4 // indirect
15+
github.com/fyne-io/gl-js v0.0.0-20220119005834-d2da28d9ccfe // indirect
16+
github.com/fyne-io/glfw-js v0.0.0-20220120001248-ee7290d23504 // indirect
17+
github.com/fyne-io/image v0.0.0-20220602074514-4956b0afb3d2 // indirect
18+
github.com/go-gl/gl v0.0.0-20211210172815-726fda9656d6 // indirect
19+
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20211213063430-748e38ca8aec // indirect
20+
github.com/godbus/dbus/v5 v5.1.0 // indirect
21+
github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff // indirect
22+
github.com/gopherjs/gopherjs v1.17.2 // indirect
23+
github.com/jsummers/gobmp v0.0.0-20151104160322-e2ba15ffa76e // indirect
24+
github.com/pmezard/go-difflib v1.0.0 // indirect
25+
github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 // indirect
26+
github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 // indirect
27+
github.com/stretchr/testify v1.7.1 // indirect
28+
github.com/yuin/goldmark v1.4.0 // indirect
29+
golang.org/x/image v0.0.0-20220601225756-64ec528b34cd // indirect
30+
golang.org/x/mobile v0.0.0-20211207041440-4e6c2922fdee // indirect
31+
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d // indirect
32+
golang.org/x/text v0.3.7 // indirect
33+
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
34+
honnef.co/go/js/dom v0.0.0-20210725211120-f030747120f2 // indirect
35+
)

0 commit comments

Comments
 (0)