├── .gitattributes ├── .gitignore ├── .gitmodules ├── MInjector.sln ├── MInjector ├── App.config ├── MInjector.csproj ├── Main.Designer.cs ├── Main.cs ├── Main.resx ├── MonoInjector.cs ├── PrintableProcess.cs ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings └── foxIcon.ico └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | bld/ 19 | [Bb]in/ 20 | [Oo]bj/ 21 | [Ll]og/ 22 | 23 | # Visual Studio 2015 cache/options directory 24 | .vs/ 25 | # Uncomment if you have tasks that create the project's static files in wwwroot 26 | #wwwroot/ 27 | 28 | # MSTest test Results 29 | [Tt]est[Rr]esult*/ 30 | [Bb]uild[Ll]og.* 31 | 32 | # NUNIT 33 | *.VisualState.xml 34 | TestResult.xml 35 | 36 | # Build Results of an ATL Project 37 | [Dd]ebugPS/ 38 | [Rr]eleasePS/ 39 | dlldata.c 40 | 41 | # DNX 42 | project.lock.json 43 | project.fragment.lock.json 44 | artifacts/ 45 | 46 | *_i.c 47 | *_p.c 48 | *_i.h 49 | *.ilk 50 | *.meta 51 | *.obj 52 | *.pch 53 | *.pdb 54 | *.pgc 55 | *.pgd 56 | *.rsp 57 | *.sbr 58 | *.tlb 59 | *.tli 60 | *.tlh 61 | *.tmp 62 | *.tmp_proj 63 | *.log 64 | *.vspscc 65 | *.vssscc 66 | .builds 67 | *.pidb 68 | *.svclog 69 | *.scc 70 | 71 | # Chutzpah Test files 72 | _Chutzpah* 73 | 74 | # Visual C++ cache files 75 | ipch/ 76 | *.aps 77 | *.ncb 78 | *.opendb 79 | *.opensdf 80 | *.sdf 81 | *.cachefile 82 | *.VC.db 83 | *.VC.VC.opendb 84 | 85 | # Visual Studio profiler 86 | *.psess 87 | *.vsp 88 | *.vspx 89 | *.sap 90 | 91 | # TFS 2012 Local Workspace 92 | $tf/ 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | *.DotSettings.user 101 | 102 | # JustCode is a .NET coding add-in 103 | .JustCode 104 | 105 | # TeamCity is a build add-in 106 | _TeamCity* 107 | 108 | # DotCover is a Code Coverage Tool 109 | *.dotCover 110 | 111 | # NCrunch 112 | _NCrunch_* 113 | .*crunch*.local.xml 114 | nCrunchTemp_* 115 | 116 | # MightyMoose 117 | *.mm.* 118 | AutoTest.Net/ 119 | 120 | # Web workbench (sass) 121 | .sass-cache/ 122 | 123 | # Installshield output folder 124 | [Ee]xpress/ 125 | 126 | # DocProject is a documentation generator add-in 127 | DocProject/buildhelp/ 128 | DocProject/Help/*.HxT 129 | DocProject/Help/*.HxC 130 | DocProject/Help/*.hhc 131 | DocProject/Help/*.hhk 132 | DocProject/Help/*.hhp 133 | DocProject/Help/Html2 134 | DocProject/Help/html 135 | 136 | # Click-Once directory 137 | publish/ 138 | 139 | # Publish Web Output 140 | *.[Pp]ublish.xml 141 | *.azurePubxml 142 | # TODO: Comment the next line if you want to checkin your web deploy settings 143 | # but database connection strings (with potential passwords) will be unencrypted 144 | #*.pubxml 145 | *.publishproj 146 | 147 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 148 | # checkin your Azure Web App publish settings, but sensitive information contained 149 | # in these scripts will be unencrypted 150 | PublishScripts/ 151 | 152 | # NuGet Packages 153 | *.nupkg 154 | # The packages folder can be ignored because of Package Restore 155 | **/packages/* 156 | # except build/, which is used as an MSBuild target. 157 | !**/packages/build/ 158 | # Uncomment if necessary however generally it will be regenerated when needed 159 | #!**/packages/repositories.config 160 | # NuGet v3's project.json files produces more ignoreable files 161 | *.nuget.props 162 | *.nuget.targets 163 | 164 | # Microsoft Azure Build Output 165 | csx/ 166 | *.build.csdef 167 | 168 | # Microsoft Azure Emulator 169 | ecf/ 170 | rcf/ 171 | 172 | # Windows Store app package directories and files 173 | AppPackages/ 174 | BundleArtifacts/ 175 | Package.StoreAssociation.xml 176 | _pkginfo.txt 177 | 178 | # Visual Studio cache files 179 | # files ending in .cache can be ignored 180 | *.[Cc]ache 181 | # but keep track of directories ending in .cache 182 | !*.[Cc]ache/ 183 | 184 | # Others 185 | ClientBin/ 186 | ~$* 187 | *~ 188 | *.dbmdl 189 | *.dbproj.schemaview 190 | *.jfm 191 | *.pfx 192 | *.publishsettings 193 | node_modules/ 194 | orleans.codegen.cs 195 | 196 | # Since there are multiple workflows, uncomment next line to ignore bower_components 197 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 198 | #bower_components/ 199 | 200 | # RIA/Silverlight projects 201 | Generated_Code/ 202 | 203 | # Backup & report files from converting an old project file 204 | # to a newer Visual Studio version. Backup files are not needed, 205 | # because we have git ;-) 206 | _UpgradeReport_Files/ 207 | Backup*/ 208 | UpgradeLog*.XML 209 | UpgradeLog*.htm 210 | 211 | # SQL Server files 212 | *.mdf 213 | *.ldf 214 | 215 | # Business Intelligence projects 216 | *.rdl.data 217 | *.bim.layout 218 | *.bim_*.settings 219 | 220 | # Microsoft Fakes 221 | FakesAssemblies/ 222 | 223 | # GhostDoc plugin setting file 224 | *.GhostDoc.xml 225 | 226 | # Node.js Tools for Visual Studio 227 | .ntvs_analysis.dat 228 | 229 | # Visual Studio 6 build log 230 | *.plg 231 | 232 | # Visual Studio 6 workspace options file 233 | *.opt 234 | 235 | # Visual Studio LightSwitch build output 236 | **/*.HTMLClient/GeneratedArtifacts 237 | **/*.DesktopClient/GeneratedArtifacts 238 | **/*.DesktopClient/ModelManifest.xml 239 | **/*.Server/GeneratedArtifacts 240 | **/*.Server/ModelManifest.xml 241 | _Pvt_Extensions 242 | 243 | # Paket dependency manager 244 | .paket/paket.exe 245 | paket-files/ 246 | 247 | # FAKE - F# Make 248 | .fake/ 249 | 250 | # JetBrains Rider 251 | .idea/ 252 | *.sln.iml 253 | 254 | # CodeRush 255 | .cr/ 256 | 257 | # Python Tools for Visual Studio (PTVS) 258 | __pycache__/ 259 | *.pyc -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "MInject"] 2 | path = MInject 3 | url = https://github.com/EquiFox/MInject.git 4 | -------------------------------------------------------------------------------- /MInjector.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.26730.8 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MInjector", "MInjector\MInjector.csproj", "{367BC639-5BC1-4574-9B67-348927E2B230}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BlackBone", "MInject\BlackBone\src\BlackBone\BlackBone.vcxproj", "{A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}" 9 | EndProject 10 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MInject", "MInject\MInject\MInject.vcxproj", "{284F1200-C40A-42DF-B85D-D34D972B907D}" 11 | EndProject 12 | Global 13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 14 | Debug(DLL)|Any CPU = Debug(DLL)|Any CPU 15 | Debug(DLL)|Win32 = Debug(DLL)|Win32 16 | Debug(DLL)|x64 = Debug(DLL)|x64 17 | Debug(XP)|Any CPU = Debug(XP)|Any CPU 18 | Debug(XP)|Win32 = Debug(XP)|Win32 19 | Debug(XP)|x64 = Debug(XP)|x64 20 | Debug|Any CPU = Debug|Any CPU 21 | Debug|Win32 = Debug|Win32 22 | Debug|x64 = Debug|x64 23 | Release(DLL)|Any CPU = Release(DLL)|Any CPU 24 | Release(DLL)|Win32 = Release(DLL)|Win32 25 | Release(DLL)|x64 = Release(DLL)|x64 26 | Release(XP)|Any CPU = Release(XP)|Any CPU 27 | Release(XP)|Win32 = Release(XP)|Win32 28 | Release(XP)|x64 = Release(XP)|x64 29 | Release|Any CPU = Release|Any CPU 30 | Release|Win32 = Release|Win32 31 | Release|x64 = Release|x64 32 | EndGlobalSection 33 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 34 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(DLL)|Any CPU.ActiveCfg = Debug|Any CPU 35 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(DLL)|Any CPU.Build.0 = Debug|Any CPU 36 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(DLL)|Win32.ActiveCfg = Debug|x86 37 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(DLL)|Win32.Build.0 = Debug|x86 38 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(DLL)|x64.ActiveCfg = Debug|Any CPU 39 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(DLL)|x64.Build.0 = Debug|Any CPU 40 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(XP)|Any CPU.ActiveCfg = Debug|Any CPU 41 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(XP)|Any CPU.Build.0 = Debug|Any CPU 42 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(XP)|Win32.ActiveCfg = Debug|x86 43 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(XP)|Win32.Build.0 = Debug|x86 44 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(XP)|x64.ActiveCfg = Debug|Any CPU 45 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug(XP)|x64.Build.0 = Debug|Any CPU 46 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 47 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug|Any CPU.Build.0 = Debug|Any CPU 48 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug|Win32.ActiveCfg = Debug|x86 49 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug|Win32.Build.0 = Debug|x86 50 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug|x64.ActiveCfg = Debug|x64 51 | {367BC639-5BC1-4574-9B67-348927E2B230}.Debug|x64.Build.0 = Debug|x64 52 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(DLL)|Any CPU.ActiveCfg = Release|Any CPU 53 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(DLL)|Any CPU.Build.0 = Release|Any CPU 54 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(DLL)|Win32.ActiveCfg = Release|x86 55 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(DLL)|Win32.Build.0 = Release|x86 56 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(DLL)|x64.ActiveCfg = Release|Any CPU 57 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(DLL)|x64.Build.0 = Release|Any CPU 58 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(XP)|Any CPU.ActiveCfg = Release|Any CPU 59 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(XP)|Any CPU.Build.0 = Release|Any CPU 60 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(XP)|Win32.ActiveCfg = Release|x86 61 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(XP)|Win32.Build.0 = Release|x86 62 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(XP)|x64.ActiveCfg = Release|Any CPU 63 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release(XP)|x64.Build.0 = Release|Any CPU 64 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release|Any CPU.ActiveCfg = Release|Any CPU 65 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release|Any CPU.Build.0 = Release|Any CPU 66 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release|Win32.ActiveCfg = Release|x86 67 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release|Win32.Build.0 = Release|x86 68 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release|x64.ActiveCfg = Release|x64 69 | {367BC639-5BC1-4574-9B67-348927E2B230}.Release|x64.Build.0 = Release|x64 70 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug(DLL)|Any CPU.ActiveCfg = Debug(DLL)|Win32 71 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug(DLL)|Win32.ActiveCfg = Debug(DLL)|Win32 72 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug(DLL)|Win32.Build.0 = Debug(DLL)|Win32 73 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug(DLL)|x64.ActiveCfg = Debug(DLL)|x64 74 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug(DLL)|x64.Build.0 = Debug(DLL)|x64 75 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug(XP)|Any CPU.ActiveCfg = Debug(XP)|Win32 76 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug(XP)|Win32.ActiveCfg = Debug(XP)|Win32 77 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug(XP)|Win32.Build.0 = Debug(XP)|Win32 78 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug(XP)|x64.ActiveCfg = Debug(XP)|x64 79 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug(XP)|x64.Build.0 = Debug(XP)|x64 80 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug|Any CPU.ActiveCfg = Debug|Win32 81 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug|Win32.ActiveCfg = Debug|Win32 82 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug|Win32.Build.0 = Debug|Win32 83 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug|x64.ActiveCfg = Debug|x64 84 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Debug|x64.Build.0 = Debug|x64 85 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release(DLL)|Any CPU.ActiveCfg = Release(DLL)|Win32 86 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release(DLL)|Win32.ActiveCfg = Release(DLL)|Win32 87 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release(DLL)|Win32.Build.0 = Release(DLL)|Win32 88 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release(DLL)|x64.ActiveCfg = Release(DLL)|x64 89 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release(DLL)|x64.Build.0 = Release(DLL)|x64 90 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release(XP)|Any CPU.ActiveCfg = Release(XP)|Win32 91 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release(XP)|Win32.ActiveCfg = Release(XP)|Win32 92 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release(XP)|Win32.Build.0 = Release(XP)|Win32 93 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release(XP)|x64.ActiveCfg = Release(XP)|x64 94 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release(XP)|x64.Build.0 = Release(XP)|x64 95 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release|Any CPU.ActiveCfg = Release|Win32 96 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release|Win32.ActiveCfg = Release|Win32 97 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release|Win32.Build.0 = Release|Win32 98 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release|x64.ActiveCfg = Release|x64 99 | {A2C53563-46F5-4D87-903F-3F1F2FDB2DEB}.Release|x64.Build.0 = Release|x64 100 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(DLL)|Any CPU.ActiveCfg = Release|x64 101 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(DLL)|Any CPU.Build.0 = Release|x64 102 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(DLL)|Win32.ActiveCfg = Debug|Win32 103 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(DLL)|Win32.Build.0 = Debug|Win32 104 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(DLL)|x64.ActiveCfg = Debug|x64 105 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(DLL)|x64.Build.0 = Debug|x64 106 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(XP)|Any CPU.ActiveCfg = Release|x64 107 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(XP)|Any CPU.Build.0 = Release|x64 108 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(XP)|Win32.ActiveCfg = Debug|Win32 109 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(XP)|Win32.Build.0 = Debug|Win32 110 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(XP)|x64.ActiveCfg = Debug|x64 111 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug(XP)|x64.Build.0 = Debug|x64 112 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug|Any CPU.ActiveCfg = Debug|Win32 113 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug|Win32.ActiveCfg = Debug|Win32 114 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug|Win32.Build.0 = Debug|Win32 115 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug|x64.ActiveCfg = Debug|x64 116 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Debug|x64.Build.0 = Debug|x64 117 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(DLL)|Any CPU.ActiveCfg = Release|x64 118 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(DLL)|Any CPU.Build.0 = Release|x64 119 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(DLL)|Win32.ActiveCfg = Release|Win32 120 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(DLL)|Win32.Build.0 = Release|Win32 121 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(DLL)|x64.ActiveCfg = Release|x64 122 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(DLL)|x64.Build.0 = Release|x64 123 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(XP)|Any CPU.ActiveCfg = Release|x64 124 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(XP)|Any CPU.Build.0 = Release|x64 125 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(XP)|Win32.ActiveCfg = Release|Win32 126 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(XP)|Win32.Build.0 = Release|Win32 127 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(XP)|x64.ActiveCfg = Release|x64 128 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release(XP)|x64.Build.0 = Release|x64 129 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release|Any CPU.ActiveCfg = Release|Win32 130 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release|Win32.ActiveCfg = Release|Win32 131 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release|Win32.Build.0 = Release|Win32 132 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release|x64.ActiveCfg = Release|x64 133 | {284F1200-C40A-42DF-B85D-D34D972B907D}.Release|x64.Build.0 = Release|x64 134 | EndGlobalSection 135 | GlobalSection(SolutionProperties) = preSolution 136 | HideSolutionNode = FALSE 137 | EndGlobalSection 138 | GlobalSection(ExtensibilityGlobals) = postSolution 139 | SolutionGuid = {A6259B33-9AAD-4891-88FD-8570821AB851} 140 | EndGlobalSection 141 | EndGlobal 142 | -------------------------------------------------------------------------------- /MInjector/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MInjector/MInjector.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {367BC639-5BC1-4574-9B67-348927E2B230} 8 | WinExe 9 | MInjector 10 | MInjector 11 | v4.5 12 | 512 13 | 14 | 15 | AnyCPU 16 | true 17 | full 18 | false 19 | bin\Debug\ 20 | DEBUG;TRACE 21 | prompt 22 | 4 23 | 24 | 25 | AnyCPU 26 | pdbonly 27 | true 28 | bin\Release\ 29 | TRACE 30 | prompt 31 | 4 32 | 33 | 34 | true 35 | bin\x86\Debug\ 36 | DEBUG;TRACE 37 | full 38 | x86 39 | prompt 40 | MinimumRecommendedRules.ruleset 41 | true 42 | 43 | 44 | bin\x86\Release\ 45 | TRACE 46 | true 47 | pdbonly 48 | x86 49 | prompt 50 | MinimumRecommendedRules.ruleset 51 | true 52 | 53 | 54 | foxIcon.ico 55 | 56 | 57 | true 58 | bin\x64\Debug\ 59 | DEBUG;TRACE 60 | full 61 | x64 62 | prompt 63 | MinimumRecommendedRules.ruleset 64 | true 65 | 66 | 67 | bin\x64\Release\ 68 | TRACE 69 | true 70 | pdbonly 71 | x64 72 | prompt 73 | MinimumRecommendedRules.ruleset 74 | true 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | Form 92 | 93 | 94 | Main.cs 95 | 96 | 97 | 98 | 99 | 100 | 101 | Main.cs 102 | 103 | 104 | ResXFileCodeGenerator 105 | Resources.Designer.cs 106 | Designer 107 | 108 | 109 | True 110 | Resources.resx 111 | 112 | 113 | SettingsSingleFileGenerator 114 | Settings.Designer.cs 115 | 116 | 117 | True 118 | Settings.settings 119 | True 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | {284f1200-c40a-42df-b85d-d34d972b907d} 131 | MInject 132 | 133 | 134 | 135 | -------------------------------------------------------------------------------- /MInjector/Main.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace MInjector 2 | { 3 | partial class Main 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main)); 32 | this.targetGroupBox = new System.Windows.Forms.GroupBox(); 33 | this.refreshBtn = new System.Windows.Forms.Button(); 34 | this.processList = new System.Windows.Forms.ComboBox(); 35 | this.settingsGroupBox = new System.Windows.Forms.GroupBox(); 36 | this.hideAssemblyLoadCheck = new System.Windows.Forms.CheckBox(); 37 | this.loadAsmBtn = new System.Windows.Forms.Button(); 38 | this.asmPathTextBox = new System.Windows.Forms.TextBox(); 39 | this.label4 = new System.Windows.Forms.Label(); 40 | this.methodTxtBox = new System.Windows.Forms.TextBox(); 41 | this.classTxtBox = new System.Windows.Forms.TextBox(); 42 | this.namespaceTxtBox = new System.Windows.Forms.TextBox(); 43 | this.label3 = new System.Windows.Forms.Label(); 44 | this.label2 = new System.Windows.Forms.Label(); 45 | this.label1 = new System.Windows.Forms.Label(); 46 | this.injectBtn = new System.Windows.Forms.Button(); 47 | this.aboutLbl = new System.Windows.Forms.Label(); 48 | this.targetGroupBox.SuspendLayout(); 49 | this.settingsGroupBox.SuspendLayout(); 50 | this.SuspendLayout(); 51 | // 52 | // targetGroupBox 53 | // 54 | this.targetGroupBox.Controls.Add(this.refreshBtn); 55 | this.targetGroupBox.Controls.Add(this.processList); 56 | this.targetGroupBox.Location = new System.Drawing.Point(11, 15); 57 | this.targetGroupBox.Name = "targetGroupBox"; 58 | this.targetGroupBox.Size = new System.Drawing.Size(319, 79); 59 | this.targetGroupBox.TabIndex = 0; 60 | this.targetGroupBox.TabStop = false; 61 | this.targetGroupBox.Text = "Target"; 62 | // 63 | // refreshBtn 64 | // 65 | this.refreshBtn.Location = new System.Drawing.Point(230, 31); 66 | this.refreshBtn.Name = "refreshBtn"; 67 | this.refreshBtn.Size = new System.Drawing.Size(59, 23); 68 | this.refreshBtn.TabIndex = 1; 69 | this.refreshBtn.Text = "Refresh"; 70 | this.refreshBtn.UseVisualStyleBackColor = true; 71 | this.refreshBtn.Click += new System.EventHandler(this.refreshBtn_Click); 72 | // 73 | // processList 74 | // 75 | this.processList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 76 | this.processList.FormattingEnabled = true; 77 | this.processList.Location = new System.Drawing.Point(29, 32); 78 | this.processList.Name = "processList"; 79 | this.processList.Size = new System.Drawing.Size(195, 21); 80 | this.processList.TabIndex = 0; 81 | this.processList.SelectedIndexChanged += new System.EventHandler(this.processList_SelectedIndexChanged); 82 | // 83 | // settingsGroupBox 84 | // 85 | this.settingsGroupBox.Controls.Add(this.hideAssemblyLoadCheck); 86 | this.settingsGroupBox.Controls.Add(this.loadAsmBtn); 87 | this.settingsGroupBox.Controls.Add(this.asmPathTextBox); 88 | this.settingsGroupBox.Controls.Add(this.label4); 89 | this.settingsGroupBox.Controls.Add(this.methodTxtBox); 90 | this.settingsGroupBox.Controls.Add(this.classTxtBox); 91 | this.settingsGroupBox.Controls.Add(this.namespaceTxtBox); 92 | this.settingsGroupBox.Controls.Add(this.label3); 93 | this.settingsGroupBox.Controls.Add(this.label2); 94 | this.settingsGroupBox.Controls.Add(this.label1); 95 | this.settingsGroupBox.Enabled = false; 96 | this.settingsGroupBox.Location = new System.Drawing.Point(11, 98); 97 | this.settingsGroupBox.Name = "settingsGroupBox"; 98 | this.settingsGroupBox.Size = new System.Drawing.Size(319, 181); 99 | this.settingsGroupBox.TabIndex = 1; 100 | this.settingsGroupBox.TabStop = false; 101 | this.settingsGroupBox.Text = "Settings"; 102 | // 103 | // hideAssemblyLoadCheck 104 | // 105 | this.hideAssemblyLoadCheck.AutoSize = true; 106 | this.hideAssemblyLoadCheck.Cursor = System.Windows.Forms.Cursors.Hand; 107 | this.hideAssemblyLoadCheck.Location = new System.Drawing.Point(32, 149); 108 | this.hideAssemblyLoadCheck.Name = "hideAssemblyLoadCheck"; 109 | this.hideAssemblyLoadCheck.Size = new System.Drawing.Size(255, 17); 110 | this.hideAssemblyLoadCheck.TabIndex = 6; 111 | this.hideAssemblyLoadCheck.Text = "Hide from AssemblyLoad Callback (Experimental)"; 112 | this.hideAssemblyLoadCheck.UseVisualStyleBackColor = true; 113 | // 114 | // loadAsmBtn 115 | // 116 | this.loadAsmBtn.Location = new System.Drawing.Point(263, 24); 117 | this.loadAsmBtn.Name = "loadAsmBtn"; 118 | this.loadAsmBtn.Size = new System.Drawing.Size(26, 23); 119 | this.loadAsmBtn.TabIndex = 2; 120 | this.loadAsmBtn.Text = "..."; 121 | this.loadAsmBtn.UseVisualStyleBackColor = true; 122 | this.loadAsmBtn.Click += new System.EventHandler(this.loadAsmBtn_Click); 123 | // 124 | // asmPathTextBox 125 | // 126 | this.asmPathTextBox.Location = new System.Drawing.Point(118, 25); 127 | this.asmPathTextBox.Name = "asmPathTextBox"; 128 | this.asmPathTextBox.ReadOnly = true; 129 | this.asmPathTextBox.Size = new System.Drawing.Size(142, 20); 130 | this.asmPathTextBox.TabIndex = 8; 131 | // 132 | // label4 133 | // 134 | this.label4.AutoSize = true; 135 | this.label4.Location = new System.Drawing.Point(26, 32); 136 | this.label4.Name = "label4"; 137 | this.label4.Size = new System.Drawing.Size(54, 13); 138 | this.label4.TabIndex = 7; 139 | this.label4.Text = "Assembly:"; 140 | // 141 | // methodTxtBox 142 | // 143 | this.methodTxtBox.Location = new System.Drawing.Point(118, 113); 144 | this.methodTxtBox.Name = "methodTxtBox"; 145 | this.methodTxtBox.Size = new System.Drawing.Size(171, 20); 146 | this.methodTxtBox.TabIndex = 5; 147 | // 148 | // classTxtBox 149 | // 150 | this.classTxtBox.Location = new System.Drawing.Point(118, 85); 151 | this.classTxtBox.Name = "classTxtBox"; 152 | this.classTxtBox.Size = new System.Drawing.Size(171, 20); 153 | this.classTxtBox.TabIndex = 4; 154 | // 155 | // namespaceTxtBox 156 | // 157 | this.namespaceTxtBox.Location = new System.Drawing.Point(118, 57); 158 | this.namespaceTxtBox.Name = "namespaceTxtBox"; 159 | this.namespaceTxtBox.Size = new System.Drawing.Size(171, 20); 160 | this.namespaceTxtBox.TabIndex = 3; 161 | // 162 | // label3 163 | // 164 | this.label3.AutoSize = true; 165 | this.label3.Location = new System.Drawing.Point(26, 116); 166 | this.label3.Name = "label3"; 167 | this.label3.Size = new System.Drawing.Size(46, 13); 168 | this.label3.TabIndex = 2; 169 | this.label3.Text = "Method:"; 170 | // 171 | // label2 172 | // 173 | this.label2.AutoSize = true; 174 | this.label2.Location = new System.Drawing.Point(26, 88); 175 | this.label2.Name = "label2"; 176 | this.label2.Size = new System.Drawing.Size(35, 13); 177 | this.label2.TabIndex = 1; 178 | this.label2.Text = "Class:"; 179 | // 180 | // label1 181 | // 182 | this.label1.AutoSize = true; 183 | this.label1.Location = new System.Drawing.Point(26, 60); 184 | this.label1.Name = "label1"; 185 | this.label1.Size = new System.Drawing.Size(70, 13); 186 | this.label1.TabIndex = 0; 187 | this.label1.Text = "Namespace: "; 188 | // 189 | // injectBtn 190 | // 191 | this.injectBtn.Enabled = false; 192 | this.injectBtn.Location = new System.Drawing.Point(11, 285); 193 | this.injectBtn.Name = "injectBtn"; 194 | this.injectBtn.Size = new System.Drawing.Size(319, 44); 195 | this.injectBtn.TabIndex = 8; 196 | this.injectBtn.Text = "Inject !"; 197 | this.injectBtn.UseVisualStyleBackColor = true; 198 | this.injectBtn.Click += new System.EventHandler(this.injectBtn_Click); 199 | // 200 | // aboutLbl 201 | // 202 | this.aboutLbl.AutoSize = true; 203 | this.aboutLbl.Cursor = System.Windows.Forms.Cursors.Hand; 204 | this.aboutLbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 205 | this.aboutLbl.ForeColor = System.Drawing.Color.Blue; 206 | this.aboutLbl.Location = new System.Drawing.Point(301, 4); 207 | this.aboutLbl.Name = "aboutLbl"; 208 | this.aboutLbl.Size = new System.Drawing.Size(30, 12); 209 | this.aboutLbl.TabIndex = 9; 210 | this.aboutLbl.Text = "About"; 211 | this.aboutLbl.Click += new System.EventHandler(this.aboutLbl_Click); 212 | // 213 | // Main 214 | // 215 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 216 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 217 | this.ClientSize = new System.Drawing.Size(341, 336); 218 | this.Controls.Add(this.aboutLbl); 219 | this.Controls.Add(this.injectBtn); 220 | this.Controls.Add(this.settingsGroupBox); 221 | this.Controls.Add(this.targetGroupBox); 222 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; 223 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 224 | this.MaximizeBox = false; 225 | this.Name = "Main"; 226 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 227 | this.Text = "MInjector - By EquiFox"; 228 | this.targetGroupBox.ResumeLayout(false); 229 | this.settingsGroupBox.ResumeLayout(false); 230 | this.settingsGroupBox.PerformLayout(); 231 | this.ResumeLayout(false); 232 | this.PerformLayout(); 233 | 234 | } 235 | 236 | #endregion 237 | 238 | private System.Windows.Forms.GroupBox targetGroupBox; 239 | private System.Windows.Forms.Button refreshBtn; 240 | private System.Windows.Forms.ComboBox processList; 241 | private System.Windows.Forms.GroupBox settingsGroupBox; 242 | private System.Windows.Forms.TextBox methodTxtBox; 243 | private System.Windows.Forms.TextBox classTxtBox; 244 | private System.Windows.Forms.TextBox namespaceTxtBox; 245 | private System.Windows.Forms.Label label3; 246 | private System.Windows.Forms.Label label2; 247 | private System.Windows.Forms.Label label1; 248 | private System.Windows.Forms.Button injectBtn; 249 | private System.Windows.Forms.Button loadAsmBtn; 250 | private System.Windows.Forms.TextBox asmPathTextBox; 251 | private System.Windows.Forms.Label label4; 252 | private System.Windows.Forms.CheckBox hideAssemblyLoadCheck; 253 | private System.Windows.Forms.Label aboutLbl; 254 | } 255 | } 256 | 257 | -------------------------------------------------------------------------------- /MInjector/Main.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.IO; 4 | using System.Text; 5 | using System.Windows.Forms; 6 | 7 | namespace MInjector 8 | { 9 | public partial class Main : Form 10 | { 11 | public Main() 12 | { 13 | InitializeComponent(); 14 | RefreshMonoProcesses(); 15 | Text += !Environment.Is64BitProcess ? " (x86)" : " (x64)"; 16 | } 17 | 18 | private void refreshBtn_Click(object sender, EventArgs e) 19 | { 20 | RefreshMonoProcesses(); 21 | } 22 | 23 | private void RefreshMonoProcesses() 24 | { 25 | processList.Items.Clear(); 26 | settingsGroupBox.Enabled = false; 27 | injectBtn.Enabled = false; 28 | 29 | foreach (Process process in Process.GetProcesses()) 30 | { 31 | try 32 | { 33 | foreach (ProcessModule module in process.Modules) 34 | { 35 | if (module.FileName.Contains("mono.dll")) 36 | { 37 | processList.Items.Add(new PrintableProcess(process)); 38 | } 39 | } 40 | } 41 | catch { } 42 | } 43 | 44 | if (processList.Items.Count > 0) 45 | { 46 | processList.SelectedIndex = 0; 47 | } 48 | } 49 | 50 | private void processList_SelectedIndexChanged(object sender, EventArgs e) 51 | { 52 | bool flag = (processList.SelectedItem != null && processList.SelectedItem is PrintableProcess); 53 | 54 | settingsGroupBox.Enabled = flag; 55 | injectBtn.Enabled = flag && !string.IsNullOrEmpty(asmPathTextBox.Text); 56 | } 57 | 58 | private void loadAsmBtn_Click(object sender, EventArgs e) 59 | { 60 | asmPathTextBox.Text = ""; 61 | injectBtn.Enabled = false; 62 | 63 | using (OpenFileDialog ofd = new OpenFileDialog()) 64 | { 65 | ofd.Filter = "DLL Files|*.dll"; 66 | 67 | if (ofd.ShowDialog() == DialogResult.OK) 68 | { 69 | asmPathTextBox.Text = ofd.FileName; 70 | injectBtn.Enabled = true; 71 | } 72 | } 73 | } 74 | 75 | private void injectBtn_Click(object sender, EventArgs e) 76 | { 77 | PrintableProcess printableProcess = processList.SelectedItem as PrintableProcess; 78 | MonoInjector.Settings injectionSettings = new MonoInjector.Settings 79 | { 80 | AssemblyBytes = File.ReadAllBytes(asmPathTextBox.Text), 81 | Namespace = namespaceTxtBox.Text, 82 | ClassName = classTxtBox.Text, 83 | MethodName = methodTxtBox.Text, 84 | HideAssemblyLoad = hideAssemblyLoadCheck.Checked, 85 | }; 86 | 87 | if (MonoInjector.Inject(printableProcess.InternalProcess, injectionSettings)) 88 | { 89 | MessageBox.Show("Injection was successful !"); 90 | } 91 | else 92 | { 93 | MessageBox.Show("An error occured while injecting..."); 94 | 95 | asmPathTextBox.Text = ""; 96 | namespaceTxtBox.Text = ""; 97 | classTxtBox.Text = ""; 98 | methodTxtBox.Text = ""; 99 | RefreshMonoProcesses(); 100 | } 101 | } 102 | 103 | private void aboutLbl_Click(object sender, EventArgs e) 104 | { 105 | StringBuilder sb = new StringBuilder(); 106 | sb.AppendLine("This program is brought to you by EquiFox !\n"); 107 | sb.AppendLine("MInjector: https://github.com/EquiFox/MInjector (This project)"); 108 | sb.AppendLine("MInject: https://github.com/EquiFox/MInject (Mono injection library used by this software)"); 109 | 110 | MessageBox.Show(sb.ToString(), "MInjector - About", MessageBoxButtons.OK, MessageBoxIcon.Information); 111 | } 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /MInjector/Main.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | 123 | 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 151 | //9Lovn/S6L5/0ul//+HxP//uN//z7fe/xq33v8AAAAAAAAAAAC43v8AuN7/ALje/wC43v8AMZf/CKvY 152 | /yG94f9EvuL/E8Dj/wK84f8Aud//Frrg/5Oq1//9Xa///0qk//9Lpf//S6X//0qk//9dr///qtf//brg 153 | /5O53/8WvOH/AMDj/wK+4v8TveH/RKvY/yExl/8IR6P/Ol2v/6yZzv/qrtn/zbbd/6a43v+itd3/zabV 154 | //txuv//S6X//0ul//9Lpf//S6X//0ul//9Lpf//cbr//6bV//u13f/NuN7/orbd/6au2f/Nmc7/6l2v 155 | /6xHo/86S6X/GEul/8xQqP//YbH//3G5//93vP//brf//1is//9Mmur/TJ7x/0ul//9Lpf//S6X//0ul 156 | //9MnvH/TJrq/1is//9ut///d7z//3G5//9hsf//UKj//0ul/8xLpf8YS6X/AEul/39Lpf//SqT//0mk 157 | //9JpP//SaT//0ug9v9SYHn/UHWh/0um//9Lpf//S6X//0um//9QdaH/UmB5/0ug9v9JpP//SaT//0mk 158 | //9KpP//S6X//0ul/39Lpf8AS6X/AEul/ytLpf/iS6X//0ul//9Lpf//S6X//0uk/P9OiMf/TZLa/0ul 159 | //9Lpf//S6X//0ul//9Nktr/TojH/0uk/P9Lpf//S6X//0ul//9Lpf//S6X/4kul/ytLpf8AS6X/AEul 160 | /wFLpf+IS6X//0ul//9Lpf//S6X//0ul//9Lpv//S6b//0ul//9Lpf//S6X//0ul//9Lpv//S6b//0ul 161 | //9Lpf//S6X//0ul//9Lpf//S6X/iEul/wFLpf8AAAAAAEul/wBLpf8hS6X/0kul//9Lpf//S6X//0ul 162 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf/RS6X/IUul 163 | /wAAAAAAAAAAAEeQ/wBDfv8DSZn/qUuj//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 164 | //9Lpf//S6X//0ul//9Lpf//S6X//0uk//9Kn/9xSZz/AEun/wAAAAAAAAAAAEaM/wBGjP8ZRoz/1UiY 165 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0iY 166 | //9GjP+IR5L/AEaL/wAAAAAAAAAAAEaM/wBGjP9CRoz/9UaN//9Jmv//S6X//0ul//9Lpf//S6X//0ul 167 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//SZr//0aN//9GjP/ARoz/DEaM/wAAAAAARoz/AEaM 168 | /wBGjP90Roz//0aM//9Gjf//SZn//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0uk 169 | //9ImP//Ro3//0aM//9GjP/mRoz/KEaM/wAAAAAARoz/AEaM/wNGjP+mRoz//0aM//9GjP//SJX//0ul 170 | //9Lpf/9S6X/+Uul//9Lpf//S6X//0ul//9Lpf/9S6X//0qi//9Hj///Roz//0aM//9GjP/6Roz/UUaM 171 | /wAAAAAARoz/AEaM/xJGjP/ORoz//0aM//9Gjf//SZ3//0ul//9Lpf+5S6X/Ukul/4RLpf+mS6X/pkul 172 | /4JLpf9zS6X/6Eul//9Ilf//Roz//0aM//9GjP//Roz/fkaM/wBGjP8ARoz/AEaM/yxGjP/qRoz//0aM 173 | //9Hkv//S6P//0ul/89LpP8rS6X/AEul/wBLpf8CS6X/Akuj/wBKoP8BS6X/aEul//RKnv//Ro3//0aM 174 | //9GjP//Roz/qUaM/wNGjP8ARoz/AEaM/0xGjP/5Roz//0aM//9Jm///S6X/3Uuk/z1Lpv8ASqL/AAAA 175 | AAAAAAAAAAAAAAAAAABLpP8AS6P/BUul/39LpP/5R5P//0aM//9GjP//Roz/y0aM/xBGjP8ARoz/AEaM 176 | /2xGjP//Roz//0eT//9Lo//kS6X/S0yo/wBLo/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS6T/AEuk 177 | /wpLpf+PSp7/+0aO//9GjP//Roz/40aM/yJGjP8ARoz/AEaM/4dGjP//R47//0qe/+ZLpf9SXf3/AEuj 178 | /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEuk/wBLpP8OS6T/lUiY//tGjP//Roz/8EaM 179 | /zVGjP8ARoz/AEaM/5ZGjf//SZn/20ul/0xLpv8AS6P/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 180 | AAAAAAAAAAAAAAAAAABLpf8AS6f/Dkqh/4pIlP/2Roz/90aM/0FGjP8AR5P/AEaN/4xIlv/LS6P/PDhI 181 | /wBLp/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS6b/AEyr 182 | /wlKnv90R5H/3kaM/zpGjP8A/4H/AP8A/wD/AP8A/wD/AP4AfwAEACAAAAAAAAAAAACAAAEAgAABAIAA 183 | AQDAAAMAwAAHAMAABwDAAAMAwAADAIAAAwCAAAMAgGQBAID+AQCB/wEAg/+BAIf/wQCP/+EAKAAAACAA 184 | AABAAAAAAQAgAAAAAAAAEAAA1w0AANcNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 185 | AAAAAAAAAAAAAAAAAAAAAAAAt97/AAA4/wCm1P8uns//tpzN//eczf/3ns//tqbU/y4AOP8At97/AAAA 186 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 187 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAALfe/wC33v8Dt97/YrXd/9ay3P//r9r//6/a//+y3P//td3/1rfe 188 | /2K33v8Dt97/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 189 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt97/ALfe/za33v/ouN///63O6v+IlKT/iJSk/63O 190 | 6v+43///t97/6Lfe/za33v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 191 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALfe/wC33v8At97/ebfe//+23Pz/e4GN/1ND 192 | Qf9TQ0H/e4GN/7bc/P+33v//t97/ebfe/wC33v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 193 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt97/ALfe/wS33v+suN7//5TK 194 | /f9YeJ//VE5W/1ROVv9YeJ//lMr9/7je//+33v+st97/BLfe/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 195 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC33v8At97/Irjf 196 | /92o1v//W67//0qi+f9NluH/TZbh/0qi+f9brv//qNb//7jf/9233v8it97/AAAAAAAAAAAAAAAAAAAA 197 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAALfe/wC33v8At97/Abfe/wC33v8AAAAAAAAAAAAAAAAAt97/ALfe 198 | /wG33v96uN7//oHB//9Kpf//S6X//0um//9Lpv//S6X//0ql//+Bwf//uN7//rfe/3q33v8Bt97/AAAA 199 | AAAAAAAAAAAAALfe/wC33v8At97/Abfe/wC33v8ASqX/CEym/wm74P9Rud//Trfe/xO33v8Bt97/ALfe 200 | /wC33v8Kt97/Ybnf/+qn1f//Wq3//0ql//9Lpf//S6X//0ul//9Lpf//SqX//1qt//+n1f//ud//6rfe 201 | /2G33v8Kt97/ALfe/wC33v8Bt97/E7nf/0674P9RTKb/CUql/whLpf8gSaT/jobE/7Gw2v/2uN//zbrg 202 | /5+64P+Dut//irnf/7q43//0qtf//263//9Kpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//SqX//263 203 | //+q1///uN//9Lnf/7q63/+KuuD/g7rg/5+43//NsNr/9obE/7FJpP+OS6X/IEul/wZLpf+qTqb//2Kx 204 | //99wP//k8v//57R//+g0v//mM3//4HB//9dr///S6b//0um//9Lpf//S6X//0ul//9Lpf//S6X//0ul 205 | //9Lpv//S6b//12v//+Bwf//mM3//6DS//+e0f//k8v//33A//9isf//Tqb//0ul/6pLpf8GS6X/AEul 206 | /1xLpf/7SqT//0qk//9Mpv//UKj//1Go//9Opv//SqX//0qg9f9Pf7b/TozP/0ul//9Lpf//S6X//0ul 207 | //9Lpf//S6X//06Mz/9Pf7b/SqD1/0ql//9Opv//Uaj//1Co//9Mpv//SqT//0qk//9Lpf/7S6X/XEul 208 | /wBLpf8AS6X/G0ul/9NLpf//S6X//0ul//9Lpf//S6X//0ul//9Lpv//TZDV/1VIS/9SX3f/S6L5/0ul 209 | //9Lpf//S6X//0ul//9Lovn/Ul93/1VIS/9NkNX/S6b//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 210 | /9NLpf8bS6X/AEul/wBLpf8AS6X/fUul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Mn/P/UHmp/06I 211 | xv9Lpf//S6X//0ul//9Lpf//S6X//0ul//9OiMb/UHmp/0yf8/9Lpf//S6X//0ul//9Lpf//S6X//0ul 212 | //9Lpf//S6X/fUul/wBLpf8AAAAAAEul/wBLpf8kS6X/2Uul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 213 | //9Lpv//S6b//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0um//9Lpv//S6X//0ul//9Lpf//S6X//0ul 214 | //9Lpf//S6X//0ul/9lLpf8kS6X/AAAAAAAAAAAAS6X/AEul/wBLpf90S6X//Uul//9Lpf//S6X//0ul 215 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 216 | //9Lpf//S6X//0ul//9Lpf/9S6X/dEul/wBLpf8AAAAAAAAAAAAAAAAAS6X/AEul/xVLpf+/S6X//0ul 217 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 218 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul/75Lpf8VS6X/AAAAAAAAAAAAAAAAAAAAAABHkv8ATKn/AEiY 219 | /4dLo///S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 220 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9LpP/0SqL/S0qg/wBLpf8AAAAAAAAAAAAAAAAAAAAAAEaM 221 | /wBGi/8KRoz/ukiX//9LpP//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 222 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6T//0iX//hGjP9LRo3/AAAAAAAAAAAAAAAAAAAA 223 | AAAAAAAARoz/AEaM/yhGjP/lRo3//0ma//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 224 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Jmv//Ro3//0aM/4ZGjP8ARoz/AAAA 225 | AAAAAAAAAAAAAAAAAABGjP8ARoz/WEaM//xGjP//Ro3//0ma//9Lpf//S6X//0ul//9Lpf//S6X//0ul 226 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//SZr//0aN//9GjP//Roz/vUaM 227 | /wpGjP8AAAAAAAAAAAAAAAAARoz/AEaM/wBGjP+MRoz//0aM//9GjP//Ro3//0iY//9LpP//S6X//0ul 228 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6T//0iY//9Gjf//Roz//0aM 229 | //9GjP/jRoz/JUaM/wAAAAAAAAAAAAAAAABGjP8ARoz/CkaM/71GjP//Roz//0aM//9GjP//R4///0qi 230 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Jm///Roz//0aM 231 | //9GjP//Roz//0aM//lGjP9NRoz/AAAAAAAAAAAAAAAAAEaM/wBGjP8iRoz/4UaM//9GjP//Roz//0aM 232 | //9IlP//S6X//0ul//9Lpf/3S6X/3Uul//ZLpf//S6X//0ul//9Lpf//S6X/9kul//BLpf//S6X//0qe 233 | //9Gjf//Roz//0aM//9GjP//Roz//0aM/31GjP8ARoz/AAAAAAAAAAAARoz/AEaM/0NGjP/2Roz//0aM 234 | //9GjP//Roz//0md//9Lpf//S6X//kul/5ZLpP8fS6X/SEul/3hLpf+SS6X/kkul/3hLpf9GS6T/UEul 235 | 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 291 | /wC43/9Zt97/p7fe/0233v8Vt97/Arfe/wAAAAAAAAAAALfe/wC33v8Bt97/I7fe/6C33v/7ud///53Q 292 | //9Tqf//SqX//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//SqX//1Op//+d0P//ud///7fe 293 | //u33v+gt97/I7fe/wG33v8AAAAAAAAAAAC33v8At97/Arfe/xW33v9Nt97/p7jf/1n///8AS6X/EUul 294 | /wJLpf8BS6X/ckij/3qQyf9it97/87nf//e43v/Pt97/mrfe/2y33v9Rt97/S7fe/1233v+Ot97/2Lfe 295 | //653///qNb//2Wz//9KpP//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0qk 296 | //9ls///qNb//7nf//+33v/+t97/2Lfe/4633v9dt97/S7fe/1G33v9st97/mrje/8+53//3t97/85DJ 297 | /2JIo/96S6X/ckul/wFLpf8AS6X/VUul//hQp//meb3/+JvP//+v2v//t97//7nf//653//7ud//+bnf 298 | //253///uN///7Hb//+UzP//YrH//0ql//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 299 | //9Lpf//S6X//0ul//9Kpf//YrH//5TM//+x2///uN///7nf//+53//9ud//+bnf//u53//+t97//6/a 300 | //+bz///eb3/+FCn/+ZLpf/4S6X/VUul/wBLpf8AS6X/Hkul/9hLpf//SqT//1Co//9gsP//dbv//4jF 301 | //+UzP//ms///5nO//+Qyf//fsD//2Sy//9Pp///SqX//0um//9Lpv//S6X//0ul//9Lpf//S6X//0ul 302 | //9Lpf//S6X//0ul//9Lpf//S6X//0um//9Lpv//SqX//0+n//9ksv//fsD//5DJ//+Zzv//ms///5TM 303 | //+Ixf//dbv//2Cw//9QqP//SqT//0ul//9Lpf/YS6X/Hkul/wBLpf8AS6X/AUul/5RLpf//S6X//0ul 304 | //9KpP//SaT//0ql//9Npv//Tqf//06n//9Mpf//SqT//0qk//9Lpf//TKD0/02N0f9MmOT/S6X//0ul 305 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0yY5P9NjdH/TKD0/0ul//9KpP//SqT//0yl 306 | //9Op///Tqf//02m//9Kpf//SaT//0qk//9Lpf//S6X//0ul//9Lpf+US6X/AUul/wAAAAAAS6X/AEul 307 | /0ZLpf/zS6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9LpP3/UHGZ/1VJ 308 | S/9TWGn/TJfk/0um//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpv//TJfk/1NYaf9VSUv/UHGZ/0uk 309 | /f9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//NLpf9GS6X/AAAA 310 | AAAAAAAAS6X/AEul/w5Lpf+7S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 311 | //9Loff/U11z/1VDQP9VSEr/TozO/0um//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpv//TozO/1VI 312 | Sv9VQ0D/U11z/0uh9/9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 313 | /7tLpf8OS6X/AAAAAAAAAAAAS6X/AEul/wBLpf9gS6X/+kul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 314 | //9Lpf//S6X//0ul//9Lpf//ToXB/1Nccf9Rb5b/TJ/z/0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 315 | //9Lpf//TJ/z/1Fvlv9TXHH/ToXB/0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 316 | //9Lpf//S6X/+kul/2BLpf8AS6X/AAAAAAAAAAAAAAAAAEul/wBLpf8WS6X/yEul//9Lpf//S6X//0ul 317 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X+/0uh9v9Lo/v/S6X//0ul//9Lpf//S6X//0ul 318 | //9Lpf//S6X//0ul//9Lpf//S6X//0uj+/9Lofb/S6X+/0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 319 | //9Lpf//S6X//0ul//9Lpf//S6X/yEul/xZLpf8AAAAAAAAAAAAAAAAAAAAAAEul/wBLpf8AS6X/Ykul 320 | //pLpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 321 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 322 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf/6S6X/Ykul/wBLpf8AAAAAAAAAAAAAAAAAAAAAAAAA 323 | AABLpf8AS6X/Ekul/7xLpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 324 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 325 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf+8S6X/Ekul/wAAAAAAAAAAAAAA 326 | AAAAAAAAAAAAAAAAAABLpf8AS6X/AEul/0lLpf/vS6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 327 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 328 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul/+9Lpf9JS6X/AEul 329 | /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS6X/AEul/wVLpf+SS6X//0ul//9Lpf//S6X//0ul 330 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 331 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 332 | /5NLpf8FS6X/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEiY/wBIl/9GSqH/9kul 333 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 334 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 335 | //9Lpf//S6X/zEul/x9Lpf8AS6X/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARoz/AEaM 336 | /wBGi/92R5P//0uj//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 337 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 338 | //9Lpf//S6X//0ul//9Lo///SJf/qUOA/wRGjv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 339 | AAAAAAAARoz/AEaM/wdGjP+zRoz//0iX//9LpP//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 340 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 341 | //9Lpf//S6X//0ul//9Lpf//S6X//0uk//9Il///Roz/10aM/xtGjP8AAAAAAAAAAAAAAAAAAAAAAAAA 342 | AAAAAAAAAAAAAAAAAAAAAAAARoz/AEaM/yNGjP/gRoz//0aN//9Jmv//S6X//0ul//9Lpf//S6X//0ul 343 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 344 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ma//9Gjf//Roz/9UaM/0ZGjP8AAAAAAAAA 345 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARoz/AEaM/1FGjP/5Roz//0aM//9Gjf//SZv//0ul 346 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 347 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//SZv//0aN//9GjP//Roz//0aM 348 | /35GjP8ARoz/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGjP8ARoz/AEaM/4lGjP//Roz//0aM 349 | //9GjP//Ro7//0mb//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 350 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Jm///Ro7//0aM 351 | //9GjP//Roz//0aM/7VGjP8IRoz/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGjP8ARoz/CkaM 352 | /7pGjP//Roz//0aM//9GjP//Roz//0aN//9Jmf//S6T//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 353 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6T//0mZ 354 | //9Gjf//Roz//0aM//9GjP//Roz//0aM/91GjP8gRoz/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 355 | AABGjP8ARoz/IkaM/+BGjP//Roz//0aM//9GjP//Roz//0aM//9GjP//SJj//0ul//9Lpf//S6X//0ul 356 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 357 | //9Kov//SJb//0aM//9GjP//Roz//0aM//9GjP//Roz//0aM//ZGjP9FRoz/AAAAAAAAAAAAAAAAAAAA 358 | AAAAAAAAAAAAAAAAAABGjP8ARoz/SUaM//dGjP//Roz//0aM//9GjP//Roz//0aM//9GjP//SZn//0ul 359 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 360 | //9Lpf//S6X//0ul//9Knv//Ro3//0aM//9GjP//Roz//0aM//9GjP//Roz//0aM//9GjP92Roz/AEaM 361 | /wAAAAAAAAAAAAAAAAAAAAAAAAAAAEaM/wBGjP8ARoz/eUaM//9GjP//Roz//0aM//9GjP//Roz//0aM 362 | //9Gjv//SqD//0ul//9Lpf//S6X//0ul//9Lpf/8S6X//0ul//9Lpf//S6X//0ul//9Lpf//S6X//0ul 363 | //9Lpf//S6X//0ul//9Lpf//S6X//0ul//9Lo///R5D//0aM//9GjP//Roz//0aM//9GjP//Roz//0aM 364 | //9GjP+nRoz/A0aM/wAAAAAAAAAAAAAAAAAAAAAAAAAAAEaM/wBGjP8DRoz/pkaM//9GjP//Roz//0aM 365 | //9GjP//Roz//0aM//9Hk///S6T//0ul//9Lpf//S6X//0ul/9hLpf9qS6X/nEul/9VLpf/xS6X//Eul 366 | //9Lpf//S6X//Eul//FLpf/VS6X/n0ul/8ZLpf//S6X//0ul//9Lpf//SJj//0aM//9GjP//Roz//0aM 367 | //9GjP//Roz//0aM//9GjP/ORoz/E0aM/wAAAAAAAAAAAAAAAAAAAAAAAAAAAEaM/wBGjP8RRoz/y0aM 368 | //9GjP//Roz//0aM//9GjP//Roz//0aM//9Jm///S6X//0ul//9Lpf//S6X/6kuk/1BLqf8AS6X/A0ul 369 | /xlLpf86S6X/V0ul/2dLpf9nS6X/V0ul/zpLpf8ZS6X/AUuk/zBLpf/US6X//0ul//9Lpf//Sp///0aO 370 | //9GjP//Roz//0aM//9GjP//Roz//0aM//9GjP/pRoz/LUaM/wAAAAAAAAAAAAAAAAAAAAAAAAAAAEaM 371 | /wBGjP8qRoz/50aM//9GjP//Roz//0aM//9GjP//Roz//0eQ//9Kov//S6X//0ul//9Lpf/1S6T/a0qe 372 | /wFLov8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASqD/AEun/wBLpP9GS6X/5Uul 373 | //9Lpf//S6T//0iU//9GjP//Roz//0aM//9GjP//Roz//0aM//9GjP/6Roz/UUaM/wAAAAAAAAAAAAAA 374 | AAAAAAAAAAAAAEaM/wBGjP9NRoz/+UaM//9GjP//Roz//0aM//9GjP//Roz//0mZ//9Lpf//S6X//0ul 375 | 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 637 | 638 | 639 | -------------------------------------------------------------------------------- /MInjector/MonoInjector.cs: -------------------------------------------------------------------------------- 1 | using MInject; 2 | using System; 3 | using System.Diagnostics; 4 | 5 | namespace MInjector 6 | { 7 | public static class MonoInjector 8 | { 9 | public static bool Inject(Process p_TargetProcess, Settings p_InjectionSettings) 10 | { 11 | MonoProcess monoProcess; 12 | 13 | if (MonoProcess.Attach(p_TargetProcess, out monoProcess)) 14 | { 15 | try 16 | { 17 | IntPtr monoDomain = monoProcess.GetRootDomain(); 18 | monoProcess.ThreadAttach(monoDomain); 19 | monoProcess.SecuritySetMode(0); 20 | 21 | if (p_InjectionSettings.HideAssemblyLoad) 22 | { 23 | monoProcess.DisableAssemblyLoadCallback(); 24 | } 25 | 26 | IntPtr rawAssemblyImage = monoProcess.ImageOpenFromDataFull(p_InjectionSettings.AssemblyBytes); 27 | IntPtr assemblyPointer = monoProcess.AssemblyLoadFromFull(rawAssemblyImage); 28 | IntPtr assemblyImage = monoProcess.AssemblyGetImage(assemblyPointer); 29 | IntPtr classPointer = monoProcess.ClassFromName(assemblyImage, p_InjectionSettings.Namespace, p_InjectionSettings.ClassName); 30 | IntPtr methodPointer = monoProcess.ClassGetMethodFromName(classPointer, p_InjectionSettings.MethodName); 31 | 32 | monoProcess.RuntimeInvoke(methodPointer); 33 | 34 | if (p_InjectionSettings.HideAssemblyLoad) 35 | { 36 | monoProcess.EnableAssemblyLoadCallback(); 37 | } 38 | 39 | monoProcess.Dispose(); 40 | return true; 41 | } 42 | catch { } 43 | } 44 | 45 | return false; 46 | } 47 | 48 | public class Settings 49 | { 50 | public byte[] AssemblyBytes { get; set; } 51 | 52 | public string Namespace { get; set; } 53 | 54 | public string ClassName { get; set; } 55 | 56 | public string MethodName { get; set; } 57 | 58 | public bool HideAssemblyLoad { get; set; } 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /MInjector/PrintableProcess.cs: -------------------------------------------------------------------------------- 1 | using System.Diagnostics; 2 | 3 | namespace MInjector 4 | { 5 | public class PrintableProcess 6 | { 7 | public Process InternalProcess { get; private set; } 8 | 9 | public PrintableProcess(Process p_Process) 10 | { 11 | InternalProcess = p_Process; 12 | } 13 | 14 | public override string ToString() 15 | { 16 | return string.Format("{0}.exe - (PID: {1})", InternalProcess.ProcessName, InternalProcess.Id); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /MInjector/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace MInjector 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// The main entry point for the application. 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new Main()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /MInjector/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MInjector")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MInjector")] 13 | [assembly: AssemblyCopyright("Copyright © EquiFox 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("367bc639-5bc1-4574-9b67-348927e2b230")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /MInjector/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace MInjector.Properties 12 | { 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources 26 | { 27 | 28 | private static global::System.Resources.ResourceManager resourceMan; 29 | 30 | private static global::System.Globalization.CultureInfo resourceCulture; 31 | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 33 | internal Resources() 34 | { 35 | } 36 | 37 | /// 38 | /// Returns the cached ResourceManager instance used by this class. 39 | /// 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 41 | internal static global::System.Resources.ResourceManager ResourceManager 42 | { 43 | get 44 | { 45 | if ((resourceMan == null)) 46 | { 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MInjector.Properties.Resources", typeof(Resources).Assembly); 48 | resourceMan = temp; 49 | } 50 | return resourceMan; 51 | } 52 | } 53 | 54 | /// 55 | /// Overrides the current thread's CurrentUICulture property for all 56 | /// resource lookups using this strongly typed resource class. 57 | /// 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 59 | internal static global::System.Globalization.CultureInfo Culture 60 | { 61 | get 62 | { 63 | return resourceCulture; 64 | } 65 | set 66 | { 67 | resourceCulture = value; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /MInjector/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /MInjector/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace MInjector.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /MInjector/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MInjector/foxIcon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EquiFox/MInjector/a539817fcb9e1bd2a49bb96e41d6cc059dd719df/MInjector/foxIcon.ico -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MInjector 2 | Mono Framework Injector (C#) using MInject Library 3 | 4 | ![Alt text](http://i.imgur.com/DOQ0KYY.png "MInjector") 5 | 6 | ## Features 7 | - Auto-detect injectable Mono processes 8 | - Call remote static method after injection 9 | - Remove any traces of injection (Experimental) 10 | 11 | ## Download 12 | You can find the most recent releases here: https://github.com/EquiFox/MInjector/releases 13 | 14 | ## Compile Yourself 15 | - Requires Visual Studio 2017 16 | - Don't forget to `git submodule update --init --recursive` after cloning this repo to include the `MInject` dependency. 17 | --------------------------------------------------------------------------------