- For maintenance throwinjg everything in one class is awful..NET is OOP language. Make use of it!
- Opening/reading/writing process does not specifically require admin rights. Your check should be optional
- Dont use the inbuilt Process.Modules as it fails/does not give you all modules when the bit version of yours and target process is different. Instead use WinAPI to enumerate modules
- There is a lot of copy and paste code (duplicated code). For example all reading/writing functions nearly have 95% of equal code. Maybe making one function where all others just point to and give the 5% different as paramater? Or even better, make usage of a generic function [URL]https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/generic-methods[/URL]
- You dont check/handle the returns of WinAPI calls in Injectdll function, thus you will never know which api has failed why.