├── .gitignore ├── .vs └── Empire │ └── v14 │ └── .suo ├── ChangeLog.txt ├── Empire.VC.db ├── Empire.sln ├── Empire ├── Empire.inf ├── Empire.vcxproj ├── Empire.vcxproj.backup ├── Empire.vcxproj.filters ├── Empire.vcxproj.user ├── Main.c ├── Main.h ├── Win8.1Debug │ ├── Empire.inf │ ├── Empire.log │ └── Empire.tlog │ │ ├── Empire.lastbuildstate │ │ ├── stampinf.command.1.tlog │ │ ├── stampinf.read.1.tlog │ │ ├── stampinf.write.1.tlog │ │ ├── tracewpp.command.1.tlog │ │ ├── tracewpp.read.1.tlog │ │ └── unsuccessfulbuild ├── memory_module.c └── memory_module.h ├── Empire_DLL ├── Empire_DLL.vcxproj ├── Empire_DLL.vcxproj.filters ├── Empire_DLL.vcxproj.user ├── main.cpp └── x64 │ └── Release │ ├── DLL.tlog │ ├── CL.command.1.tlog │ ├── CL.read.1.tlog │ ├── CL.write.1.tlog │ ├── DLL.lastbuildstate │ ├── DLL.write.1u.tlog │ ├── link.command.1.tlog │ ├── link.read.1.tlog │ └── link.write.1.tlog │ ├── Empire.Build.CppClean.log │ ├── Empire_DLL.log │ ├── Empire_DLL.tlog │ ├── CL.command.1.tlog │ ├── CL.read.1.tlog │ ├── CL.write.1.tlog │ ├── Empire_DLL.lastbuildstate │ ├── Empire_DLL.write.1u.tlog │ ├── link.command.1.tlog │ ├── link.read.1.tlog │ └── link.write.1.tlog │ ├── main.obj │ └── vc140.pdb ├── Images └── Main_Form.png ├── Main ├── About_Form.Designer.cs ├── About_Form.cs ├── About_Form.resx ├── App.config ├── ListViewEx.cs ├── Main.csproj ├── Main.csproj.user ├── Main_Form.Designer.cs ├── Main_Form.cs ├── Main_Form.resx ├── NewDesc_Form.Designer.cs ├── NewDesc_Form.cs ├── NewDesc_Form.resx ├── Process_Form.Designer.cs ├── Process_Form.cs ├── Process_Form.resx ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ ├── Settings.settings │ └── app.manifest ├── Resources │ └── About_Image.png ├── Settings_Form.Designer.cs ├── Settings_Form.cs ├── Settings_Form.resx ├── VEdit_Form.Designer.cs ├── VEdit_Form.cs └── VEdit_Form.resx ├── README.md └── Win8.1Debug └── Empire.inf /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/.gitignore -------------------------------------------------------------------------------- /.vs/Empire/v14/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/.vs/Empire/v14/.suo -------------------------------------------------------------------------------- /ChangeLog.txt: -------------------------------------------------------------------------------- 1 | 2018/05/03 : 2 | Error Fix 3 | 4 | 2018/05/04 : 5 | Add Settings_Form 6 | Add About_Form 7 | Modify Main_Form 8 | 9 | -------------------------------------------------------------------------------- /Empire.VC.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire.VC.db -------------------------------------------------------------------------------- /Empire.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Empire", "Empire\Empire.vcxproj", "{DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Empire_DLL", "Empire_DLL\Empire_DLL.vcxproj", "{E69F2B3B-A77A-4949-9A7C-25FF03583B44}" 9 | EndProject 10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Main", "Main\Main.csproj", "{BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}" 11 | EndProject 12 | Global 13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 14 | Debug|Any CPU = Debug|Any CPU 15 | Debug|Mixed Platforms = Debug|Mixed Platforms 16 | Debug|Win32 = Debug|Win32 17 | Debug|x64 = Debug|x64 18 | Release_|Any CPU = Release_|Any CPU 19 | Release_|Mixed Platforms = Release_|Mixed Platforms 20 | Release_|Win32 = Release_|Win32 21 | Release_|x64 = Release_|x64 22 | Release|Any CPU = Release|Any CPU 23 | Release|Mixed Platforms = Release|Mixed Platforms 24 | Release|Win32 = Release|Win32 25 | Release|x64 = Release|x64 26 | Win7 Debug|Any CPU = Win7 Debug|Any CPU 27 | Win7 Debug|Mixed Platforms = Win7 Debug|Mixed Platforms 28 | Win7 Debug|Win32 = Win7 Debug|Win32 29 | Win7 Debug|x64 = Win7 Debug|x64 30 | Win7 Release|Any CPU = Win7 Release|Any CPU 31 | Win7 Release|Mixed Platforms = Win7 Release|Mixed Platforms 32 | Win7 Release|Win32 = Win7 Release|Win32 33 | Win7 Release|x64 = Win7 Release|x64 34 | Win8 Debug|Any CPU = Win8 Debug|Any CPU 35 | Win8 Debug|Mixed Platforms = Win8 Debug|Mixed Platforms 36 | Win8 Debug|Win32 = Win8 Debug|Win32 37 | Win8 Debug|x64 = Win8 Debug|x64 38 | Win8 Release|Any CPU = Win8 Release|Any CPU 39 | Win8 Release|Mixed Platforms = Win8 Release|Mixed Platforms 40 | Win8 Release|Win32 = Win8 Release|Win32 41 | Win8 Release|x64 = Win8 Release|x64 42 | Win8.1 Debug|Any CPU = Win8.1 Debug|Any CPU 43 | Win8.1 Debug|Mixed Platforms = Win8.1 Debug|Mixed Platforms 44 | Win8.1 Debug|Win32 = Win8.1 Debug|Win32 45 | Win8.1 Debug|x64 = Win8.1 Debug|x64 46 | Win8.1 Release|Any CPU = Win8.1 Release|Any CPU 47 | Win8.1 Release|Mixed Platforms = Win8.1 Release|Mixed Platforms 48 | Win8.1 Release|Win32 = Win8.1 Release|Win32 49 | Win8.1 Release|x64 = Win8.1 Release|x64 50 | EndGlobalSection 51 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 52 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Debug|Any CPU.ActiveCfg = Win8.1 Debug|Win32 53 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Debug|Mixed Platforms.ActiveCfg = Win8.1 Debug|Win32 54 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Debug|Mixed Platforms.Build.0 = Win8.1 Debug|Win32 55 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Debug|Win32.ActiveCfg = Win8.1 Debug|Win32 56 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Debug|Win32.Build.0 = Win8.1 Debug|Win32 57 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Debug|x64.ActiveCfg = Win8.1 Debug|x64 58 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Debug|x64.Build.0 = Win8.1 Debug|x64 59 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Debug|x64.Deploy.0 = Win8.1 Debug|x64 60 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release_|Any CPU.ActiveCfg = Release_|Win32 61 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release_|Mixed Platforms.ActiveCfg = Release_|x64 62 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release_|Mixed Platforms.Build.0 = Release_|x64 63 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release_|Mixed Platforms.Deploy.0 = Release_|x64 64 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release_|Win32.ActiveCfg = Release_|Win32 65 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release_|Win32.Build.0 = Release_|Win32 66 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release_|Win32.Deploy.0 = Release_|Win32 67 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release_|x64.ActiveCfg = Release_|x64 68 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release_|x64.Build.0 = Release_|x64 69 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release_|x64.Deploy.0 = Release_|x64 70 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release|Any CPU.ActiveCfg = Win8.1 Release|Win32 71 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release|Mixed Platforms.ActiveCfg = Release_|x64 72 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release|Mixed Platforms.Build.0 = Release_|x64 73 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release|Win32.ActiveCfg = Win8.1 Release|Win32 74 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release|Win32.Build.0 = Win8.1 Release|Win32 75 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release|x64.ActiveCfg = Win8.1 Release|x64 76 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release|x64.Build.0 = Win8.1 Release|x64 77 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Release|x64.Deploy.0 = Win8.1 Release|x64 78 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Debug|Any CPU.ActiveCfg = Win7 Debug|Win32 79 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Debug|Mixed Platforms.ActiveCfg = Win7 Debug|Win32 80 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Debug|Mixed Platforms.Build.0 = Win7 Debug|Win32 81 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Debug|Win32.ActiveCfg = Win7 Debug|Win32 82 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Debug|Win32.Build.0 = Win7 Debug|Win32 83 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Debug|x64.ActiveCfg = Win7 Debug|x64 84 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Debug|x64.Build.0 = Win7 Debug|x64 85 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Debug|x64.Deploy.0 = Win7 Debug|x64 86 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Release|Any CPU.ActiveCfg = Win7 Release|Win32 87 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Release|Mixed Platforms.ActiveCfg = Win7 Release|x64 88 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Release|Mixed Platforms.Build.0 = Win7 Release|x64 89 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Release|Win32.ActiveCfg = Win7 Release|Win32 90 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Release|Win32.Build.0 = Win7 Release|Win32 91 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Release|x64.ActiveCfg = Win7 Release|x64 92 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Release|x64.Build.0 = Win7 Release|x64 93 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win7 Release|x64.Deploy.0 = Win7 Release|x64 94 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Debug|Any CPU.ActiveCfg = Win8 Debug|Win32 95 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Debug|Mixed Platforms.ActiveCfg = Win8 Debug|Win32 96 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Debug|Mixed Platforms.Build.0 = Win8 Debug|Win32 97 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Debug|Win32.ActiveCfg = Win8 Debug|Win32 98 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Debug|Win32.Build.0 = Win8 Debug|Win32 99 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Debug|x64.ActiveCfg = Win8 Debug|x64 100 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Debug|x64.Build.0 = Win8 Debug|x64 101 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Debug|x64.Deploy.0 = Win8 Debug|x64 102 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Release|Any CPU.ActiveCfg = Win8 Release|Win32 103 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Release|Mixed Platforms.ActiveCfg = Win8 Release|Win32 104 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Release|Mixed Platforms.Build.0 = Win8 Release|Win32 105 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Release|Win32.ActiveCfg = Win8 Release|Win32 106 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Release|Win32.Build.0 = Win8 Release|Win32 107 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Release|x64.ActiveCfg = Win8 Release|x64 108 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Release|x64.Build.0 = Win8 Release|x64 109 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8 Release|x64.Deploy.0 = Win8 Release|x64 110 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Debug|Any CPU.ActiveCfg = Win8.1 Debug|Win32 111 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Debug|Mixed Platforms.ActiveCfg = Win8.1 Debug|Win32 112 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Debug|Mixed Platforms.Build.0 = Win8.1 Debug|Win32 113 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Debug|Win32.ActiveCfg = Win8.1 Debug|Win32 114 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Debug|Win32.Build.0 = Win8.1 Debug|Win32 115 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Debug|x64.ActiveCfg = Win8.1 Debug|x64 116 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Debug|x64.Build.0 = Win8.1 Debug|x64 117 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Debug|x64.Deploy.0 = Win8.1 Debug|x64 118 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Release|Any CPU.ActiveCfg = Win8.1 Release|Win32 119 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Release|Mixed Platforms.ActiveCfg = Win8.1 Release|Win32 120 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Release|Mixed Platforms.Build.0 = Win8.1 Release|Win32 121 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Release|Win32.ActiveCfg = Win8.1 Release|Win32 122 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Release|Win32.Build.0 = Win8.1 Release|Win32 123 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Release|x64.ActiveCfg = Win8.1 Release|x64 124 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Release|x64.Build.0 = Win8.1 Release|x64 125 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9}.Win8.1 Release|x64.Deploy.0 = Win8.1 Release|x64 126 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Debug|Any CPU.ActiveCfg = Debug|Win32 127 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 128 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Debug|Mixed Platforms.Build.0 = Debug|Win32 129 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Debug|Win32.ActiveCfg = Debug|Win32 130 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Debug|Win32.Build.0 = Debug|Win32 131 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Debug|x64.ActiveCfg = Debug|Win32 132 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release_|Any CPU.ActiveCfg = Release|Win32 133 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release_|Any CPU.Build.0 = Release|Win32 134 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release_|Mixed Platforms.ActiveCfg = Release|Win32 135 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release_|Mixed Platforms.Build.0 = Release|Win32 136 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release_|Win32.ActiveCfg = Release|Win32 137 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release_|Win32.Build.0 = Release|Win32 138 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release_|x64.ActiveCfg = Release|Win32 139 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release_|x64.Build.0 = Release|Win32 140 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release|Any CPU.ActiveCfg = Release|Win32 141 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release|Mixed Platforms.ActiveCfg = Release|x64 142 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release|Mixed Platforms.Build.0 = Release|x64 143 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release|Win32.ActiveCfg = Release|Win32 144 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release|Win32.Build.0 = Release|Win32 145 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Release|x64.ActiveCfg = Release|Win32 146 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Debug|Any CPU.ActiveCfg = Debug|Win32 147 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Debug|Mixed Platforms.ActiveCfg = Debug|Win32 148 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Debug|Mixed Platforms.Build.0 = Debug|Win32 149 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Debug|Win32.ActiveCfg = Debug|Win32 150 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Debug|Win32.Build.0 = Debug|Win32 151 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Debug|x64.ActiveCfg = Debug|Win32 152 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Release|Any CPU.ActiveCfg = Release|Win32 153 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Release|Mixed Platforms.ActiveCfg = Release|Win32 154 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Release|Mixed Platforms.Build.0 = Release|Win32 155 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Release|Win32.ActiveCfg = Release|Win32 156 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Release|Win32.Build.0 = Release|Win32 157 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win7 Release|x64.ActiveCfg = Release|Win32 158 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Debug|Any CPU.ActiveCfg = Debug|Win32 159 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Debug|Mixed Platforms.ActiveCfg = Debug|Win32 160 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Debug|Mixed Platforms.Build.0 = Debug|Win32 161 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Debug|Win32.ActiveCfg = Debug|Win32 162 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Debug|Win32.Build.0 = Debug|Win32 163 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Debug|x64.ActiveCfg = Debug|Win32 164 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Release|Any CPU.ActiveCfg = Release|Win32 165 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Release|Mixed Platforms.ActiveCfg = Release|Win32 166 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Release|Mixed Platforms.Build.0 = Release|Win32 167 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Release|Win32.ActiveCfg = Release|Win32 168 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Release|Win32.Build.0 = Release|Win32 169 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8 Release|x64.ActiveCfg = Release|Win32 170 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Debug|Any CPU.ActiveCfg = Debug|Win32 171 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Debug|Mixed Platforms.ActiveCfg = Debug|Win32 172 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Debug|Mixed Platforms.Build.0 = Debug|Win32 173 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Debug|Win32.ActiveCfg = Debug|Win32 174 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Debug|Win32.Build.0 = Debug|Win32 175 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Debug|x64.ActiveCfg = Debug|Win32 176 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Release|Any CPU.ActiveCfg = Release|Win32 177 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Release|Mixed Platforms.ActiveCfg = Release|Win32 178 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Release|Mixed Platforms.Build.0 = Release|Win32 179 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Release|Win32.ActiveCfg = Release|Win32 180 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Release|Win32.Build.0 = Release|Win32 181 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44}.Win8.1 Release|x64.ActiveCfg = Release|Win32 182 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 183 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Debug|Any CPU.Build.0 = Debug|Any CPU 184 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 185 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 186 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Debug|Win32.ActiveCfg = Debug|Any CPU 187 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Debug|x64.ActiveCfg = Debug|Any CPU 188 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release_|Any CPU.ActiveCfg = Release|Any CPU 189 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release_|Any CPU.Build.0 = Release|Any CPU 190 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release_|Mixed Platforms.ActiveCfg = Release|Any CPU 191 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release_|Mixed Platforms.Build.0 = Release|Any CPU 192 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release_|Win32.ActiveCfg = Release|Any CPU 193 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release_|Win32.Build.0 = Release|Any CPU 194 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release_|x64.ActiveCfg = Release|Any CPU 195 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release_|x64.Build.0 = Release|Any CPU 196 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release|Any CPU.ActiveCfg = Release|Any CPU 197 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release|Any CPU.Build.0 = Release|Any CPU 198 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 199 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release|Mixed Platforms.Build.0 = Release|Any CPU 200 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release|Win32.ActiveCfg = Release|Any CPU 201 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Release|x64.ActiveCfg = Release|Any CPU 202 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Debug|Any CPU.ActiveCfg = Debug|Any CPU 203 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Debug|Any CPU.Build.0 = Debug|Any CPU 204 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 205 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Debug|Mixed Platforms.Build.0 = Debug|Any CPU 206 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Debug|Win32.ActiveCfg = Debug|Any CPU 207 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Debug|x64.ActiveCfg = Debug|Any CPU 208 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Release|Any CPU.ActiveCfg = Release|Any CPU 209 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Release|Any CPU.Build.0 = Release|Any CPU 210 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Release|Mixed Platforms.ActiveCfg = Release|Any CPU 211 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Release|Mixed Platforms.Build.0 = Release|Any CPU 212 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Release|Win32.ActiveCfg = Release|Any CPU 213 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win7 Release|x64.ActiveCfg = Release|Any CPU 214 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Debug|Any CPU.ActiveCfg = Debug|Any CPU 215 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Debug|Any CPU.Build.0 = Debug|Any CPU 216 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 217 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Debug|Mixed Platforms.Build.0 = Debug|Any CPU 218 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Debug|Win32.ActiveCfg = Debug|Any CPU 219 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Debug|x64.ActiveCfg = Debug|Any CPU 220 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Release|Any CPU.ActiveCfg = Release|Any CPU 221 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Release|Any CPU.Build.0 = Release|Any CPU 222 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Release|Mixed Platforms.ActiveCfg = Release|Any CPU 223 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Release|Mixed Platforms.Build.0 = Release|Any CPU 224 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Release|Win32.ActiveCfg = Release|Any CPU 225 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8 Release|x64.ActiveCfg = Release|Any CPU 226 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Debug|Any CPU.ActiveCfg = Debug|Any CPU 227 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Debug|Any CPU.Build.0 = Debug|Any CPU 228 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 229 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Debug|Mixed Platforms.Build.0 = Debug|Any CPU 230 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Debug|Win32.ActiveCfg = Debug|Any CPU 231 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Debug|x64.ActiveCfg = Debug|Any CPU 232 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Release|Any CPU.ActiveCfg = Release|Any CPU 233 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Release|Any CPU.Build.0 = Release|Any CPU 234 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Release|Mixed Platforms.ActiveCfg = Release|Any CPU 235 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Release|Mixed Platforms.Build.0 = Release|Any CPU 236 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Release|Win32.ActiveCfg = Release|Any CPU 237 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F}.Win8.1 Release|x64.ActiveCfg = Release|Any CPU 238 | EndGlobalSection 239 | GlobalSection(SolutionProperties) = preSolution 240 | HideSolutionNode = FALSE 241 | EndGlobalSection 242 | EndGlobal 243 | -------------------------------------------------------------------------------- /Empire/Empire.inf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Empire.inf 3 | ; 4 | 5 | [Version] 6 | Signature="$WINDOWS NT$" 7 | Class=Sample ; TODO: edit Class 8 | ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid 9 | Provider=ASF%ManufacturerName% 10 | CatalogFile=Empire.cat 11 | DriverVer= ; TODO: set DriverVer in stampinf property pages 12 | 13 | ;[DestinationDirs] 14 | ;DefaultDestDir = 12 15 | 16 | ; ================= Class section ===================== 17 | 18 | [ClassInstall32] 19 | Addreg=SampleClassReg 20 | 21 | [SampleClassReg] 22 | HKR,,,0,%ClassName% 23 | HKR,,Icon,,-5 24 | 25 | [SourceDisksNames] 26 | 1 = %DiskName%,,,"" 27 | 28 | ;[SourceDisksFiles] 29 | ;Empire.sys = 1,, 30 | 31 | ;***************************************** 32 | ; Install Section 33 | ;***************************************** 34 | 35 | [Manufacturer] 36 | %ManufacturerName%=Standard,NT$ARCH$ 37 | 38 | [Standard.NT$ARCH$] 39 | %Empire.DeviceDesc%=Empire_Device, Root\Empire ; TODO: edit hw-id 40 | 41 | [Empire_Device.NT] 42 | CopyFiles=Drivers_Dir 43 | 44 | [Drivers_Dir] 45 | Empire.sys 46 | 47 | 48 | ;-------------- Service installation 49 | [Empire_Device.NT.Services] 50 | AddService = Empire,%SPSVCINST_ASSOCSERVICE%, Empire_Service_Inst 51 | 52 | ; -------------- Empire driver install sections 53 | [Empire_Service_Inst] 54 | DisplayName = %Empire.SVCDESC% 55 | ServiceType = 1 ; SERVICE_KERNEL_DRIVER 56 | StartType = 3 ; SERVICE_DEMAND_START 57 | ErrorControl = 1 ; SERVICE_ERROR_NORMAL 58 | ServiceBinary = %12%\Empire.sys 59 | LoadOrderGroup = Extended Base 60 | 61 | ; 62 | ;--- Empire_Device Coinstaller installation ------ 63 | ; 64 | 65 | [DestinationDirs] 66 | Empire_Device_CoInstaller_CopyFiles = 11 67 | 68 | [Empire_Device.NT.CoInstallers] 69 | AddReg=Empire_Device_CoInstaller_AddReg 70 | CopyFiles=Empire_Device_CoInstaller_CopyFiles 71 | 72 | [Empire_Device_CoInstaller_AddReg] 73 | HKR,,CoInstallers32,0x00010000, "WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll,WdfCoInstaller" 74 | 75 | [Empire_Device_CoInstaller_CopyFiles] 76 | WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll 77 | 78 | [SourceDisksFiles] 79 | WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll=1 ; make sure the number matches with SourceDisksNames 80 | Empire.sys = 1,, 81 | 82 | [Empire_Device.NT.Wdf] 83 | KmdfService = Empire, Empire_wdfsect 84 | [Empire_wdfsect] 85 | KmdfLibraryVersion = $KMDFVERSION$ 86 | 87 | [Strings] 88 | SPSVCINST_ASSOCSERVICE= 0x00000002 89 | ManufacturerName="" ; TODO: add ManufacturerName 90 | ClassName="Samples" ; TODO: edit ClassName 91 | DiskName = "Empire Installation Disk" 92 | Empire.DeviceDesc = "Empire Device" 93 | Empire.SVCDESC = "Empire Service" 94 | -------------------------------------------------------------------------------- /Empire/Empire.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Release_ 6 | Win32 7 | 8 | 9 | Release_ 10 | x64 11 | 12 | 13 | Win8.1 Debug 14 | Win32 15 | 16 | 17 | Win8.1 Release 18 | Win32 19 | 20 | 21 | Win8 Debug 22 | Win32 23 | 24 | 25 | Win8 Release 26 | Win32 27 | 28 | 29 | Win7 Debug 30 | Win32 31 | 32 | 33 | Win7 Release 34 | Win32 35 | 36 | 37 | Win8.1 Debug 38 | x64 39 | 40 | 41 | Win8.1 Release 42 | x64 43 | 44 | 45 | Win8 Debug 46 | x64 47 | 48 | 49 | Win8 Release 50 | x64 51 | 52 | 53 | Win7 Debug 54 | x64 55 | 56 | 57 | Win7 Release 58 | x64 59 | 60 | 61 | 62 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9} 63 | {1bc93793-694f-48fe-9372-81e2b05556fd} 64 | v4.5 65 | 11.0 66 | Win8.1 Debug 67 | Win32 68 | Empire 69 | Empire 70 | 71 | 72 | 73 | WindowsV6.3 74 | true 75 | WindowsKernelModeDriver10.0 76 | Driver 77 | KMDF 78 | 79 | 80 | WindowsV6.3 81 | false 82 | WindowsKernelModeDriver10.0 83 | Driver 84 | KMDF 85 | 86 | 87 | Windows8 88 | true 89 | WindowsKernelModeDriver10.0 90 | Driver 91 | KMDF 92 | 93 | 94 | Windows8 95 | false 96 | WindowsKernelModeDriver10.0 97 | Driver 98 | KMDF 99 | 100 | 101 | Windows7 102 | true 103 | WindowsKernelModeDriver10.0 104 | Driver 105 | KMDF 106 | 107 | 108 | Windows7 109 | false 110 | WindowsKernelModeDriver10.0 111 | Driver 112 | KMDF 113 | 114 | 115 | Windows7 116 | false 117 | WindowsKernelModeDriver10.0 118 | Driver 119 | KMDF 120 | 121 | 122 | WindowsV6.3 123 | true 124 | WindowsKernelModeDriver10.0 125 | Driver 126 | KMDF 127 | 128 | 129 | WindowsV6.3 130 | false 131 | WindowsKernelModeDriver10.0 132 | Driver 133 | KMDF 134 | 135 | 136 | Windows8 137 | true 138 | WindowsKernelModeDriver10.0 139 | Driver 140 | KMDF 141 | 142 | 143 | Windows8 144 | false 145 | WindowsKernelModeDriver10.0 146 | Driver 147 | KMDF 148 | 149 | 150 | Windows7 151 | true 152 | WindowsKernelModeDriver10.0 153 | Driver 154 | KMDF 155 | 156 | 157 | Windows7 158 | false 159 | WindowsKernelModeDriver10.0 160 | Driver 161 | KMDF 162 | 163 | 164 | 165 | 166 | false 167 | WindowsKernelModeDriver10.0 168 | Driver 169 | KMDF 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | DbgengKernelDebugger 181 | 182 | 183 | DbgengKernelDebugger 184 | 185 | 186 | DbgengKernelDebugger 187 | 188 | 189 | DbgengKernelDebugger 190 | 191 | 192 | DbgengKernelDebugger 193 | 194 | 195 | DbgengKernelDebugger 196 | 197 | 198 | DbgengKernelDebugger 199 | 200 | 201 | DbgengKernelDebugger 202 | 203 | 204 | DbgengKernelDebugger 205 | 206 | 207 | DbgengKernelDebugger 208 | 209 | 210 | DbgengKernelDebugger 211 | 212 | 213 | DbgengKernelDebugger 214 | 215 | 216 | DbgengKernelDebugger 217 | true 218 | $(SolutionDir)bin 219 | $(Platform)\$(ConfigurationName) 220 | 221 | 222 | DbgengKernelDebugger 223 | true 224 | $(SolutionDir)bin 225 | $(Platform)\$(ConfigurationName) 226 | 227 | 228 | 229 | true 230 | trace.h 231 | true 232 | 233 | 234 | 235 | 236 | true 237 | trace.h 238 | true 239 | 240 | 241 | 242 | 243 | true 244 | trace.h 245 | true 246 | 247 | 248 | 249 | 250 | true 251 | trace.h 252 | true 253 | 254 | 255 | 256 | 257 | true 258 | trace.h 259 | true 260 | 261 | 262 | 263 | 264 | true 265 | trace.h 266 | true 267 | 268 | 269 | 270 | 271 | true 272 | trace.h 273 | true 274 | 275 | 276 | 277 | 278 | true 279 | trace.h 280 | true 281 | 282 | 283 | 284 | 285 | true 286 | trace.h 287 | true 288 | 289 | 290 | 291 | 292 | true 293 | trace.h 294 | true 295 | 296 | 297 | 298 | 299 | true 300 | trace.h 301 | true 302 | 303 | 304 | 305 | 306 | true 307 | trace.h 308 | true 309 | 310 | 311 | 312 | 313 | false 314 | trace.h 315 | true 316 | false 317 | 318 | 319 | false 320 | 321 | 322 | 323 | 324 | false 325 | trace.h 326 | true 327 | false 328 | 329 | 330 | false 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | -------------------------------------------------------------------------------- /Empire/Empire.vcxproj.backup: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Win8.1 Debug 6 | Win32 7 | 8 | 9 | Win8.1 Release 10 | Win32 11 | 12 | 13 | Win8 Debug 14 | Win32 15 | 16 | 17 | Win8 Release 18 | Win32 19 | 20 | 21 | Win7 Debug 22 | Win32 23 | 24 | 25 | Win7 Release 26 | Win32 27 | 28 | 29 | Win8.1 Debug 30 | x64 31 | 32 | 33 | Win8.1 Release 34 | x64 35 | 36 | 37 | Win8 Debug 38 | x64 39 | 40 | 41 | Win8 Release 42 | x64 43 | 44 | 45 | Win7 Debug 46 | x64 47 | 48 | 49 | Win7 Release 50 | x64 51 | 52 | 53 | 54 | {DCEC27DD-9DFF-493C-AB0E-801BB5430CC9} 55 | {1bc93793-694f-48fe-9372-81e2b05556fd} 56 | v4.5 57 | 11.0 58 | Win8.1 Debug 59 | Win32 60 | Empire 61 | 62 | 63 | 64 | WindowsV6.3 65 | true 66 | WindowsKernelModeDriver8.1 67 | Driver 68 | KMDF 69 | 70 | 71 | WindowsV6.3 72 | false 73 | WindowsKernelModeDriver8.1 74 | Driver 75 | KMDF 76 | 77 | 78 | Windows8 79 | true 80 | WindowsKernelModeDriver8.1 81 | Driver 82 | KMDF 83 | 84 | 85 | Windows8 86 | false 87 | WindowsKernelModeDriver8.1 88 | Driver 89 | KMDF 90 | 91 | 92 | Windows7 93 | true 94 | WindowsKernelModeDriver8.1 95 | Driver 96 | KMDF 97 | 98 | 99 | Windows7 100 | false 101 | WindowsKernelModeDriver8.1 102 | Driver 103 | KMDF 104 | 105 | 106 | WindowsV6.3 107 | true 108 | WindowsKernelModeDriver8.1 109 | Driver 110 | KMDF 111 | 112 | 113 | WindowsV6.3 114 | false 115 | WindowsKernelModeDriver8.1 116 | Driver 117 | KMDF 118 | 119 | 120 | Windows8 121 | true 122 | WindowsKernelModeDriver8.1 123 | Driver 124 | KMDF 125 | 126 | 127 | Windows8 128 | false 129 | WindowsKernelModeDriver8.1 130 | Driver 131 | KMDF 132 | 133 | 134 | Windows7 135 | true 136 | WindowsKernelModeDriver8.1 137 | Driver 138 | KMDF 139 | 140 | 141 | Windows7 142 | false 143 | WindowsKernelModeDriver8.1 144 | Driver 145 | KMDF 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | DbgengKernelDebugger 157 | 158 | 159 | DbgengKernelDebugger 160 | 161 | 162 | DbgengKernelDebugger 163 | 164 | 165 | DbgengKernelDebugger 166 | 167 | 168 | DbgengKernelDebugger 169 | 170 | 171 | DbgengKernelDebugger 172 | 173 | 174 | DbgengKernelDebugger 175 | 176 | 177 | DbgengKernelDebugger 178 | 179 | 180 | DbgengKernelDebugger 181 | 182 | 183 | DbgengKernelDebugger 184 | 185 | 186 | DbgengKernelDebugger 187 | 188 | 189 | DbgengKernelDebugger 190 | true 191 | $(SolutionDir)bin 192 | $(Platform)\$(ConfigurationName) 193 | 194 | 195 | 196 | true 197 | trace.h 198 | true 199 | 200 | 201 | 202 | 203 | true 204 | trace.h 205 | true 206 | 207 | 208 | 209 | 210 | true 211 | trace.h 212 | true 213 | 214 | 215 | 216 | 217 | true 218 | trace.h 219 | true 220 | 221 | 222 | 223 | 224 | true 225 | trace.h 226 | true 227 | 228 | 229 | 230 | 231 | true 232 | trace.h 233 | true 234 | 235 | 236 | 237 | 238 | true 239 | trace.h 240 | true 241 | 242 | 243 | 244 | 245 | true 246 | trace.h 247 | true 248 | 249 | 250 | 251 | 252 | true 253 | trace.h 254 | true 255 | 256 | 257 | 258 | 259 | true 260 | trace.h 261 | true 262 | 263 | 264 | 265 | 266 | true 267 | trace.h 268 | true 269 | 270 | 271 | 272 | 273 | false 274 | trace.h 275 | true 276 | false 277 | 278 | 279 | false 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | -------------------------------------------------------------------------------- /Empire/Empire.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | {8E41214B-6785-4CFE-B992-037D68949A14} 18 | inf;inv;inx;mof;mc; 19 | 20 | 21 | 22 | 23 | Driver Files 24 | 25 | 26 | 27 | 28 | Driver Files 29 | 30 | 31 | Driver Files 32 | 33 | 34 | 35 | 36 | Header Files 37 | 38 | 39 | Header Files 40 | 41 | 42 | -------------------------------------------------------------------------------- /Empire/Empire.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | TestSign 5 | CN="WDKTestCert KMS,131315459388349609" | D831F99D360851D3EF7353958BDB21C6848B2D0A 6 | 7 | 8 | TestSign 9 | CN="WDKTestCert Kang,131650640467560325" | D647884682B1F6178AEF7ADFBED271A7A5DA7B7A 10 | 11 | -------------------------------------------------------------------------------- /Empire/Main.c: -------------------------------------------------------------------------------- 1 | #pragma warning( disable: 4703) 2 | 3 | /* 4 | #include /// IfsKit\Inc 5 | #include /// Inc 6 | #include /// Inc\WDF\KMDF\1.9 7 | #include /// Inc 8 | #include /// Inc 9 | #include /// Inc 10 | #include /// Inc 11 | #include /// Inc 12 | #include /// Inc 13 | #include /// SDK\Inc\CRT 14 | 15 | */ 16 | 17 | 18 | 19 | 20 | 21 | #include "Main.h" 22 | // 23 | NTSTATUS UnLoadDriver(PDRIVER_OBJECT DriverObject); 24 | NTSTATUS DisPatchKMS(PDEVICE_OBJECT DeviceObject, PIRP pIrp); 25 | 26 | 27 | UNICODE_STRING linkNameUnicodeString; 28 | UNICODE_STRING deviceNameUnicodeString; 29 | 30 | NTSTATUS DefaultPass(PDEVICE_OBJECT DeviceObject, PIRP pIrp) 31 | { 32 | pIrp->IoStatus.Status = STATUS_SUCCESS; 33 | IoCompleteRequest(pIrp, IO_NO_INCREMENT); 34 | return STATUS_SUCCESS; 35 | } 36 | 37 | NTSTATUS MyControl(PDEVICE_OBJECT DeviceObject, PIRP pIrp) 38 | { 39 | pIrp->IoStatus.Status = STATUS_SUCCESS; 40 | 41 | NTSTATUS ntStatus = STATUS_UNSUCCESSFUL; 42 | PIO_STACK_LOCATION IrpSp; 43 | ULONG FunctionCode; 44 | IrpSp = IoGetCurrentIrpStackLocation(pIrp); 45 | FunctionCode = IrpSp->Parameters.DeviceIoControl.IoControlCode; 46 | //DbgPrint("code=%x",FunctionCode); 47 | switch (FunctionCode) 48 | { 49 | case IOCTL_READ_MEMORY: 50 | 51 | __try 52 | { 53 | struct input 54 | { 55 | UINT64 processid; 56 | UINT64 startaddress; 57 | WORD bytestoread; 58 | } *pinp; 59 | 60 | pinp = pIrp->AssociatedIrp.SystemBuffer; 61 | //ReadProcessMemory(); 62 | 63 | ntStatus = ReadProcessMemory((DWORD)pinp->processid, NULL, (PVOID)pinp->startaddress, pinp->bytestoread, pinp) ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL; 64 | } 65 | __except (1) 66 | { 67 | ntStatus = STATUS_UNSUCCESSFUL; 68 | }; 69 | ntStatus = STATUS_SUCCESS; 70 | break; 71 | 72 | 73 | 74 | case IOCTL_WRITE_MEMORY: 75 | __try 76 | { 77 | struct input 78 | { 79 | UINT64 processid; 80 | UINT64 startaddress; 81 | WORD bytestowrite; 82 | } *pinp, inp; 83 | 84 | pinp = pIrp->AssociatedIrp.SystemBuffer; 85 | //DbgPrint("%x %x %x", (DWORD)pinp->processid, (PVOID)pinp->startaddress, pinp->bytestowrite); 86 | ntStatus = WriteProcessMemory((DWORD)pinp->processid, NULL, (PVOID)pinp->startaddress, pinp->bytestowrite, (PVOID)((UINT_PTR)pinp + sizeof(inp))) ? STATUS_SUCCESS : STATUS_UNSUCCESSFUL; 87 | } 88 | __except (1) 89 | { 90 | //something went wrong and I don't know what 91 | ntStatus = STATUS_UNSUCCESSFUL; 92 | }; 93 | 94 | ntStatus = STATUS_SUCCESS; 95 | break; 96 | 97 | 98 | case IOCTL_OPEN_PROCESS: 99 | { 100 | PEPROCESS selectedprocess; 101 | ULONG processid = *(PULONG)pIrp->AssociatedIrp.SystemBuffer; 102 | HANDLE ProcessHandle; 103 | 104 | ntStatus = STATUS_SUCCESS; 105 | 106 | __try 107 | { 108 | ProcessHandle = 0; 109 | 110 | if (PsLookupProcessByProcessId((PVOID)(UINT_PTR)(processid), &selectedprocess) == STATUS_SUCCESS) 111 | { 112 | ntStatus = ObOpenObjectByPointer( 113 | selectedprocess, 114 | 0, 115 | NULL, 116 | PROCESS_ALL_ACCESS, 117 | *PsProcessType, 118 | KernelMode, //UserMode, 119 | &ProcessHandle); 120 | 121 | //DbgPrint("ntStatus=%x", ntStatus); 122 | } 123 | } 124 | __except (1) 125 | { 126 | ntStatus = STATUS_UNSUCCESSFUL; 127 | } 128 | 129 | *(PUINT64)pIrp->AssociatedIrp.SystemBuffer = (UINT64)ProcessHandle; 130 | break; 131 | } 132 | default: 133 | 134 | ntStatus = STATUS_SUCCESS; 135 | break; 136 | } 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | pIrp->IoStatus.Status = ntStatus; 148 | 149 | if (IrpSp) //only NULL when loaded by dbvm 150 | { 151 | if (ntStatus == STATUS_SUCCESS) 152 | pIrp->IoStatus.Information = IrpSp->Parameters.DeviceIoControl.OutputBufferLength; 153 | else 154 | pIrp->IoStatus.Information = 0; 155 | 156 | IoCompleteRequest(pIrp, IO_NO_INCREMENT); 157 | } 158 | return ntStatus; 159 | } 160 | 161 | 162 | NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegisterPath) 163 | { 164 | NTSTATUS Status = STATUS_UNSUCCESSFUL; 165 | 166 | PDEVICE_OBJECT pMyDevice; 167 | 168 | DbgPrint("___[Empire Kernel Load]___"); 169 | 170 | 171 | RtlInitUnicodeString(&deviceNameUnicodeString, L"\\Device\\Empire2"); 172 | Status = IoCreateDevice(DriverObject, 4, &deviceNameUnicodeString, FILE_DEVICE_UNKNOWN, 0, TRUE, &pMyDevice); 173 | if (!NT_SUCCESS(Status)) 174 | { 175 | DbgPrint("Failed to create the device!\n"); 176 | return Status; 177 | } 178 | 179 | RtlInitUnicodeString(&linkNameUnicodeString, L"\\DosDevices\\Empire2"); 180 | Status = IoCreateSymbolicLink(&linkNameUnicodeString, &deviceNameUnicodeString); 181 | if (!NT_SUCCESS(Status)) 182 | { 183 | DbgPrint("Failed to create the symlink\n"); 184 | return Status; 185 | } 186 | 187 | for (int nIndex = 0; nIndex < IRP_MJ_MAXIMUM_FUNCTION; nIndex++) 188 | { 189 | DriverObject->MajorFunction[nIndex] = DefaultPass; 190 | 191 | } 192 | 193 | DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = MyControl; 194 | 195 | 196 | 197 | 198 | DriverObject->DriverUnload = UnLoadDriver; 199 | Status = STATUS_SUCCESS; 200 | 201 | return Status; 202 | } 203 | 204 | 205 | NTSTATUS UnLoadDriver(PDRIVER_OBJECT DriverObject) 206 | { 207 | 208 | NTSTATUS Status = STATUS_SUCCESS; 209 | DbgPrint("___[Empire Kernel Unload Success!]___"); 210 | IoDeleteSymbolicLink(&linkNameUnicodeString); 211 | IoDeleteDevice(DriverObject->DeviceObject); 212 | 213 | Exit0: 214 | return Status; 215 | } 216 | 217 | -------------------------------------------------------------------------------- /Empire/Main.h: -------------------------------------------------------------------------------- 1 | #ifndef __MAIN__ 2 | #define __MAIN__ 1 3 | 4 | #include 5 | #include 6 | #include 7 | //#include 8 | //#include /// Inc 9 | #include /// Inc 10 | //#include /// Inc 11 | #include "memory_module.h" 12 | #define IOCTL_READ_MEMORY CTL_CODE(FILE_DEVICE_UNKNOWN, 0x2000, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 13 | #define IOCTL_WRITE_MEMORY CTL_CODE(FILE_DEVICE_UNKNOWN, 0x2001, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 14 | #define IOCTL_OPEN_PROCESS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x2002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) 15 | 16 | 17 | 18 | 19 | #endif // !__MAIN__ 20 | 21 | 22 | -------------------------------------------------------------------------------- /Empire/Win8.1Debug/Empire.inf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Empire.inf 3 | ; 4 | 5 | [Version] 6 | Signature="$WINDOWS NT$" 7 | Class=Sample ; TODO: edit Class 8 | ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid 9 | Provider=ASF%ManufacturerName% 10 | CatalogFile=Empire.cat 11 | DriverVer = 08/13/2019,22.12.28.200 12 | 13 | ;[DestinationDirs] 14 | ;DefaultDestDir = 12 15 | 16 | ; ================= Class section ===================== 17 | 18 | [ClassInstall32] 19 | Addreg=SampleClassReg 20 | 21 | [SampleClassReg] 22 | HKR,,,0,%ClassName% 23 | HKR,,Icon,,-5 24 | 25 | [SourceDisksNames] 26 | 1 = %DiskName%,,,"" 27 | 28 | ;[SourceDisksFiles] 29 | ;Empire.sys = 1,, 30 | 31 | ;***************************************** 32 | ; Install Section 33 | ;***************************************** 34 | 35 | [Manufacturer] 36 | %ManufacturerName%=Standard,NTx86 37 | 38 | [Standard.NTx86] 39 | %Empire.DeviceDesc%=Empire_Device, Root\Empire ; TODO: edit hw-id 40 | 41 | [Empire_Device.NT] 42 | CopyFiles=Drivers_Dir 43 | 44 | [Drivers_Dir] 45 | Empire.sys 46 | 47 | 48 | ;-------------- Service installation 49 | [Empire_Device.NT.Services] 50 | AddService = Empire,%SPSVCINST_ASSOCSERVICE%, Empire_Service_Inst 51 | 52 | ; -------------- Empire driver install sections 53 | [Empire_Service_Inst] 54 | DisplayName = %Empire.SVCDESC% 55 | ServiceType = 1 ; SERVICE_KERNEL_DRIVER 56 | StartType = 3 ; SERVICE_DEMAND_START 57 | ErrorControl = 1 ; SERVICE_ERROR_NORMAL 58 | ServiceBinary = %12%\Empire.sys 59 | LoadOrderGroup = Extended Base 60 | 61 | ; 62 | ;--- Empire_Device Coinstaller installation ------ 63 | ; 64 | 65 | [DestinationDirs] 66 | Empire_Device_CoInstaller_CopyFiles = 11 67 | 68 | [Empire_Device.NT.CoInstallers] 69 | AddReg=Empire_Device_CoInstaller_AddReg 70 | CopyFiles=Empire_Device_CoInstaller_CopyFiles 71 | 72 | [Empire_Device_CoInstaller_AddReg] 73 | HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" 74 | 75 | [Empire_Device_CoInstaller_CopyFiles] 76 | WdfCoInstaller01011.dll 77 | 78 | [SourceDisksFiles] 79 | WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames 80 | Empire.sys = 1,, 81 | 82 | [Empire_Device.NT.Wdf] 83 | KmdfService = Empire, Empire_wdfsect 84 | [Empire_wdfsect] 85 | KmdfLibraryVersion = 1.11 86 | 87 | [Strings] 88 | SPSVCINST_ASSOCSERVICE= 0x00000002 89 | ManufacturerName="" ; TODO: add ManufacturerName 90 | ClassName="Samples" ; TODO: edit ClassName 91 | DiskName = "Empire Installation Disk" 92 | Empire.DeviceDesc = "Empire Device" 93 | Empire.SVCDESC = "Empire Service" 94 | -------------------------------------------------------------------------------- /Empire/Win8.1Debug/Empire.log: -------------------------------------------------------------------------------- 1 |  Building 'Empire' with toolset 'WindowsKernelModeDriver10.0' and the 'Desktop' target platform. 2 | Stamping Win8.1Debug\Empire.inf [Version] section with DriverVer=08/13/2019,22.12.28.200 3 | tracewpp : error wpp: (FileMapping::Open) Unable to open file 'trace.h', error code 2 4 | tracewpp : error wpp: (RealMain) Fatal error: CreateFile error 5 | -------------------------------------------------------------------------------- /Empire/Win8.1Debug/Empire.tlog/Empire.lastbuildstate: -------------------------------------------------------------------------------- 1 | #TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver10.0:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.15063.0 2 | Win8.1 Debug|Win32|C:\Users\Kang\Documents\Visual Studio 2015\Projects\MemoryEditor\| 3 | -------------------------------------------------------------------------------- /Empire/Win8.1Debug/Empire.tlog/stampinf.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire/Win8.1Debug/Empire.tlog/stampinf.command.1.tlog -------------------------------------------------------------------------------- /Empire/Win8.1Debug/Empire.tlog/stampinf.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire/Win8.1Debug/Empire.tlog/stampinf.read.1.tlog -------------------------------------------------------------------------------- /Empire/Win8.1Debug/Empire.tlog/stampinf.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire/Win8.1Debug/Empire.tlog/stampinf.write.1.tlog -------------------------------------------------------------------------------- /Empire/Win8.1Debug/Empire.tlog/tracewpp.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire/Win8.1Debug/Empire.tlog/tracewpp.command.1.tlog -------------------------------------------------------------------------------- /Empire/Win8.1Debug/Empire.tlog/tracewpp.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire/Win8.1Debug/Empire.tlog/tracewpp.read.1.tlog -------------------------------------------------------------------------------- /Empire/Win8.1Debug/Empire.tlog/unsuccessfulbuild: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire/Win8.1Debug/Empire.tlog/unsuccessfulbuild -------------------------------------------------------------------------------- /Empire/memory_module.c: -------------------------------------------------------------------------------- 1 | #include "Main.h" 2 | #include "memory_module.h" 3 | 4 | 5 | BOOLEAN WriteProcessMemory(DWORD PID, PEPROCESS PEProcess, PVOID Address, DWORD Size, PVOID Buffer) 6 | { 7 | PEPROCESS selectedprocess = PEProcess; 8 | KAPC_STATE apc_state; 9 | NTSTATUS ntStatus = STATUS_UNSUCCESSFUL; 10 | 11 | if (selectedprocess == NULL) 12 | { 13 | //DbgPrint("WriteProcessMemory:Getting PEPROCESS\n"); 14 | if (!NT_SUCCESS(PsLookupProcessByProcessId((PVOID)(UINT_PTR)PID, &selectedprocess))) 15 | return FALSE; //couldn't get the PID 16 | 17 | //DbgPrint("Retrieved peprocess"); 18 | } 19 | 20 | //selectedprocess now holds a valid peprocess value 21 | __try 22 | { 23 | UINT_PTR temp = (UINT_PTR)Address; 24 | 25 | RtlZeroMemory(&apc_state, sizeof(apc_state)); 26 | 27 | KeAttachProcess((PEPROCESS)selectedprocess); 28 | 29 | __try 30 | { 31 | char* target; 32 | char* source; 33 | unsigned int i; 34 | 35 | //DbgPrint("Checking safety of memory\n"); 36 | 37 | if ((IsAddressSafe((UINT_PTR)Address)) && (IsAddressSafe((UINT_PTR)Address + Size - 1))) 38 | { 39 | 40 | target = (char *)Address; 41 | source = (char *)Buffer; 42 | 43 | 44 | __writecr0(__readcr0() & ~0x10000); 45 | //DbgPrint("%x %x", target[0], source[0]); 46 | // Size = 1; 47 | for (i = 0; i> 47); 175 | if (toppart & 1) 176 | { 177 | //toppart must be 0x1ffff 178 | if (toppart != 0x1ffff) 179 | return FALSE; 180 | } 181 | else 182 | { 183 | //toppart must be 0 184 | if (toppart != 0) 185 | return FALSE; 186 | 187 | } 188 | 189 | #endif 190 | 191 | //return TRUE; 192 | 193 | 194 | 195 | { 196 | #ifdef AMD64 197 | UINT_PTR kernelbase = 0x7fffffffffffffffULL; 198 | 199 | 200 | if (StartAddressP == 0) && (x->A2 == 0)) 245 | { 246 | //Not present or paged, and since paging in this area isn't such a smart thing to do just skip it 247 | //perhaps this is only for the 4 mb pages, but those should never be paged out, so it should be 1 248 | //bah, I've got no idea what this is used for 249 | return FALSE; 250 | } 251 | 252 | if (x->PS == 1) 253 | { 254 | //This is a 4 MB page (no pte list) 255 | //so, (startaddress/0x400000*0x400000) till ((startaddress/0x400000*0x400000)+(0x400000-1) ) ) is specified by this page 256 | } 257 | else //if it's not a 4 MB page then check the PTE 258 | { 259 | //still here so the page table directory agreed that it is a usable page table entry 260 | x = (PVOID)PTE; 261 | if ((x->P == 0) && (x->A2 == 0)) 262 | return FALSE; //see for explenation the part of the PDE 263 | } 264 | 265 | return TRUE; 266 | } 267 | #endif 268 | } 269 | 270 | } -------------------------------------------------------------------------------- /Empire/memory_module.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | BOOLEAN IsAddressSafe(UINT_PTR StartAddress); 5 | UINT_PTR getPEThread(UINT_PTR threadid); 6 | BOOLEAN WriteProcessMemory(DWORD PID, PEPROCESS PEProcess, PVOID Address, DWORD Size, PVOID Buffer); 7 | BOOLEAN ReadProcessMemory(DWORD PID, PEPROCESS PEProcess, PVOID Address, DWORD Size, PVOID Buffer); 8 | -------------------------------------------------------------------------------- /Empire_DLL/Empire_DLL.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {E69F2B3B-A77A-4949-9A7C-25FF03583B44} 23 | Win32Proj 24 | Empire_DLL 25 | 8.1 26 | Empire_DLL 27 | 28 | 29 | 30 | DynamicLibrary 31 | true 32 | v140 33 | Unicode 34 | 35 | 36 | DynamicLibrary 37 | true 38 | v140 39 | Unicode 40 | 41 | 42 | DynamicLibrary 43 | false 44 | v140 45 | false 46 | Unicode 47 | false 48 | 49 | 50 | DynamicLibrary 51 | false 52 | v140 53 | false 54 | Unicode 55 | false 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | true 75 | 76 | 77 | true 78 | 79 | 80 | false 81 | $(SolutionDir)bin 82 | Empire 83 | 84 | 85 | Empire 86 | false 87 | $(SolutionDir)bin 88 | 89 | 90 | 91 | 92 | 93 | Level3 94 | Disabled 95 | WIN32;_DEBUG;_WINDOWS;_USRDLL;EMPIRE_DLL_EXPORTS;%(PreprocessorDefinitions) 96 | 97 | 98 | Windows 99 | true 100 | 101 | 102 | 103 | 104 | 105 | 106 | Level3 107 | Disabled 108 | WIN32;_DEBUG;_WINDOWS;_USRDLL;EMPIRE_DLL_EXPORTS;%(PreprocessorDefinitions) 109 | 110 | 111 | Windows 112 | true 113 | 114 | 115 | 116 | 117 | Level3 118 | 119 | 120 | Disabled 121 | true 122 | true 123 | WIN32;NDEBUG;_WINDOWS;_USRDLL;EMPIRE_DLL_EXPORTS;%(PreprocessorDefinitions) 124 | ProgramDatabase 125 | 126 | 127 | Windows 128 | false 129 | true 130 | true 131 | 132 | 133 | 134 | 135 | Level3 136 | 137 | 138 | Disabled 139 | true 140 | true 141 | WIN32;NDEBUG;_WINDOWS;_USRDLL;EMPIRE_DLL_EXPORTS;%(PreprocessorDefinitions) 142 | ProgramDatabase 143 | 144 | 145 | Windows 146 | false 147 | true 148 | true 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /Empire_DLL/Empire_DLL.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 소스 파일 20 | 21 | 22 | -------------------------------------------------------------------------------- /Empire_DLL/Empire_DLL.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Empire_DLL/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | HANDLE kernel = 0; 4 | 5 | //extern __declspec(dllimport) bool test(); 6 | 7 | BOOL LoadDriver(void); 8 | BOOL UnloadDriver(void); 9 | 10 | const wchar_t MY_DRIVER[] = L"EMPIRE"; 11 | wchar_t MY_PATH[MAX_PATH] = L""; 12 | wchar_t MY_DRIVER_NAME[MAX_PATH] = L"\\Empire.sys"; 13 | BOOL LoadDriver(){ 14 | SC_HANDLE hSCM; 15 | SC_HANDLE hService; 16 | 17 | hSCM = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); 18 | if (!hSCM){ 19 | printf("Unable to open the service control manager...\n"); 20 | return FALSE; 21 | } 22 | 23 | 24 | GetCurrentDirectory(MAX_PATH, MY_PATH); 25 | 26 | wcscat(MY_PATH, MY_DRIVER_NAME); 27 | 28 | hService = CreateService(hSCM, MY_DRIVER, MY_DRIVER, SERVICE_ALL_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, 29 | MY_PATH, NULL, NULL, NULL, NULL, NULL); 30 | if (!hService){ 31 | hService = OpenService(hSCM, MY_DRIVER, SERVICE_ALL_ACCESS); 32 | if (!hService) 33 | { 34 | printf("Unable to create/open the service....\n"); 35 | CloseServiceHandle(hSCM); 36 | return FALSE; 37 | } 38 | } 39 | 40 | if (!StartService(hService, 0, NULL) && 41 | (GetLastError() != ERROR_SERVICE_ALREADY_RUNNING)){ 42 | printf("Unable to start the service....%d\n", GetLastError()); 43 | CloseServiceHandle(hSCM); 44 | CloseServiceHandle(hService); 45 | return FALSE; 46 | } 47 | 48 | CloseServiceHandle(hSCM); 49 | CloseServiceHandle(hService); 50 | 51 | return TRUE; 52 | } 53 | 54 | 55 | BOOL UnloadDriver(){ 56 | SC_HANDLE hSCM; 57 | SC_HANDLE hService; 58 | SERVICE_STATUS svcStatus; 59 | 60 | hSCM = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); 61 | if (!hSCM){ 62 | printf("Unable to open the service control manager...\n"); 63 | return FALSE; 64 | } 65 | 66 | hService = OpenService(hSCM, MY_DRIVER, SERVICE_ALL_ACCESS); 67 | if (!hService){ 68 | printf("Unable to open the service...\n"); 69 | return FALSE; 70 | } 71 | 72 | 73 | if (!ControlService(hService, SERVICE_CONTROL_STOP, &svcStatus)) 74 | { 75 | printf("Unable to stop the service..\n"); 76 | CloseServiceHandle(hSCM); 77 | CloseServiceHandle(hService); 78 | return FALSE; 79 | } 80 | 81 | 82 | if (!DeleteService(hService)) 83 | { 84 | printf("Unable to delete the service..\n"); 85 | CloseServiceHandle(hSCM); 86 | CloseServiceHandle(hService); 87 | return FALSE; 88 | } 89 | 90 | CloseServiceHandle(hSCM); 91 | CloseServiceHandle(hService); 92 | } 93 | 94 | 95 | extern "C" __declspec(dllexport) void init() 96 | { 97 | //MessageBoxA(NULL, "A", "B", MB_OK); 98 | 99 | } 100 | extern "C" __declspec(dllexport) BOOL WPM(UINT64 pid, UINT64 startaddress, WORD bytestowrite,DWORD *w) 101 | { 102 | DWORD BytesReturned; 103 | 104 | BYTE data[512] = { 0x20, }; 105 | 106 | 107 | struct input 108 | { 109 | UINT64 processid; 110 | UINT64 startaddress; 111 | WORD bytestoread; 112 | } i; 113 | 114 | i.processid = pid; 115 | i.startaddress = startaddress; 116 | i.bytestoread = bytestowrite; 117 | 118 | memcpy(data, &i, sizeof(input)); 119 | //memset(data + sizeof(input), 0x0, bytestowrite); 120 | memcpy(data + sizeof(input), w, bytestowrite); 121 | 122 | DWORD cc = CTL_CODE(FILE_DEVICE_UNKNOWN, 0x2001, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS); 123 | 124 | 125 | DeviceIoControl(kernel, cc, (LPVOID)&data, 512, (LPVOID)&data, 512, &BytesReturned, 0); 126 | 127 | return 0; 128 | } 129 | 130 | 131 | extern "C" __declspec(dllexport) BOOL RPM(UINT64 pid, UINT64 startaddress, WORD bytestoread, DWORD *r) 132 | { 133 | DWORD BytesReturned=1; 134 | DWORD OutBuffer[512]; 135 | struct input 136 | { 137 | UINT64 processid; 138 | UINT64 startaddress; 139 | WORD bytestoread; 140 | } i; 141 | 142 | i.processid = pid; 143 | i.startaddress = startaddress; 144 | i.bytestoread = bytestoread; 145 | 146 | DWORD cc = CTL_CODE(FILE_DEVICE_UNKNOWN, 0x2000, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS); 147 | 148 | 149 | DeviceIoControl(kernel,cc, (LPVOID)&i, sizeof(i), (LPVOID)r, bytestoread, &BytesReturned, 0); 150 | 151 | 152 | 153 | return 0; 154 | 155 | } 156 | 157 | extern "C" __declspec(dllexport) BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) 158 | { 159 | switch (fdwReason) 160 | { 161 | case DLL_PROCESS_ATTACH: 162 | LoadDriver(); 163 | kernel = CreateFileW(L"\\\\.\\Empire2", 0xC0000000, 3u, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); 164 | 165 | //if (LoadDriver()){ 166 | // printf("Loaded the driver successfully!\n"); 167 | // printf("Press ENTER to unload the driver: "); 168 | //} 169 | //else printf("Failed to load the driver!\n"); 170 | break; 171 | 172 | case DLL_PROCESS_DETACH: 173 | //kernel = CreateFileW(L"\\\\.\\Empire2", 0xC0000000, 3u, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); 174 | 175 | 176 | CloseHandle(kernel); 177 | 178 | //if (UnloadDriver()) printf("Unloaded the driver successfully!\n"); 179 | //else printf("Failed to unload the driver!\n"); 180 | UnloadDriver(); 181 | break; 182 | 183 | case DLL_THREAD_ATTACH: 184 | break; 185 | 186 | case DLL_THREAD_DETACH: 187 | break; 188 | } 189 | return TRUE; // succesful 190 | } 191 | -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/DLL.tlog/CL.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/DLL.tlog/CL.command.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/DLL.tlog/CL.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/DLL.tlog/CL.read.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/DLL.tlog/CL.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/DLL.tlog/CL.write.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/DLL.tlog/DLL.lastbuildstate: -------------------------------------------------------------------------------- 1 | #TargetFrameworkVersion=v4.0:PlatformToolSet=v140:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=8.1 2 | Release|x64|C:\Users\Kang\Documents\Visual Studio 2015\Projects\MemoryEditor\| 3 | -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/DLL.tlog/DLL.write.1u.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/DLL.tlog/DLL.write.1u.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/DLL.tlog/link.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/DLL.tlog/link.command.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/DLL.tlog/link.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/DLL.tlog/link.read.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/DLL.tlog/link.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/DLL.tlog/link.write.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/Empire.Build.CppClean.log: -------------------------------------------------------------------------------- 1 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\empire_dll\x64\release\vc140.pdb 2 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\empire_dll\x64\release\main.obj 3 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\bin\empire.lib 4 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\bin\empire.exp 5 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\bin\empire.dll 6 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\bin\empire.pdb 7 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\empire_dll\x64\release\empire_dll.tlog\cl.command.1.tlog 8 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\empire_dll\x64\release\empire_dll.tlog\cl.read.1.tlog 9 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\empire_dll\x64\release\empire_dll.tlog\cl.write.1.tlog 10 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\empire_dll\x64\release\empire_dll.tlog\empire_dll.write.1u.tlog 11 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\empire_dll\x64\release\empire_dll.tlog\link.command.1.tlog 12 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\empire_dll\x64\release\empire_dll.tlog\link.read.1.tlog 13 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\empire_dll\x64\release\empire_dll.tlog\link.write.1.tlog 14 | -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/Empire_DLL.log: -------------------------------------------------------------------------------- 1 | C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(368,5): warning MSB8004: Output Directory does not end with a trailing slash. This build instance will add the slash as it is required to allow proper evaluation of the Output Directory. 2 | C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(392,5): warning MSB8028: The intermediate directory (x64\Release\) contains files shared from another project (DLL.vcxproj). This can lead to incorrect clean and rebuild behavior. 3 | main.cpp 4 | main.cpp(26): warning C4996: 'wcscat': This function or variable may be unsafe. Consider using wcscat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 5 | C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\corecrt_wstring.h(101): note: 'wcscat' 선언을 참조하십시오. 6 | main.cpp(134): warning C4101: 'OutBuffer' :참조되지 않은 지역 변수입니다. 7 | c:\users\kang\documents\visual studio 2015\projects\memoryeditor\empire_dll\main.cpp(92): warning C4715: 'UnloadDriver': 모든 제어 경로에서 값을 반환하지는 않습니다. 8 | C:\Users\Kang\Documents\Visual Studio 2015\Projects\MemoryEditor\bin\Empire.lib 라이브러리 및 C:\Users\Kang\Documents\Visual Studio 2015\Projects\MemoryEditor\bin\Empire.exp 개체를 생성하고 있습니다. 9 | Empire_DLL.vcxproj -> C:\Users\Kang\Documents\Visual Studio 2015\Projects\MemoryEditor\bin\Empire.dll 10 | -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/Empire_DLL.tlog/CL.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/Empire_DLL.tlog/CL.command.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/Empire_DLL.tlog/CL.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/Empire_DLL.tlog/CL.read.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/Empire_DLL.tlog/CL.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/Empire_DLL.tlog/CL.write.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/Empire_DLL.tlog/Empire_DLL.lastbuildstate: -------------------------------------------------------------------------------- 1 | #TargetFrameworkVersion=v4.0:PlatformToolSet=v140:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=8.1 2 | Release|x64|C:\Users\Kang\Documents\Visual Studio 2015\Projects\MemoryEditor\| 3 | -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/Empire_DLL.tlog/Empire_DLL.write.1u.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/Empire_DLL.tlog/Empire_DLL.write.1u.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/Empire_DLL.tlog/link.command.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/Empire_DLL.tlog/link.command.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/Empire_DLL.tlog/link.read.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/Empire_DLL.tlog/link.read.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/Empire_DLL.tlog/link.write.1.tlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/Empire_DLL.tlog/link.write.1.tlog -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/main.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/main.obj -------------------------------------------------------------------------------- /Empire_DLL/x64/Release/vc140.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Empire_DLL/x64/Release/vc140.pdb -------------------------------------------------------------------------------- /Images/Main_Form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Images/Main_Form.png -------------------------------------------------------------------------------- /Main/About_Form.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Main 2 | { 3 | partial class About_Form 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 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 32 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 33 | this.SuspendLayout(); 34 | // 35 | // pictureBox1 36 | // 37 | this.pictureBox1.Image = global::Main.Properties.Resources.About_Image; 38 | this.pictureBox1.Location = new System.Drawing.Point(1, 1); 39 | this.pictureBox1.Name = "pictureBox1"; 40 | this.pictureBox1.Size = new System.Drawing.Size(328, 368); 41 | this.pictureBox1.TabIndex = 0; 42 | this.pictureBox1.TabStop = false; 43 | // 44 | // About_Form 45 | // 46 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 47 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 48 | this.ClientSize = new System.Drawing.Size(329, 371); 49 | this.Controls.Add(this.pictureBox1); 50 | this.Name = "About_Form"; 51 | this.Text = "About"; 52 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 53 | this.ResumeLayout(false); 54 | 55 | } 56 | 57 | #endregion 58 | 59 | private System.Windows.Forms.PictureBox pictureBox1; 60 | } 61 | } -------------------------------------------------------------------------------- /Main/About_Form.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace Main 11 | { 12 | public partial class About_Form : Form 13 | { 14 | public About_Form() 15 | { 16 | InitializeComponent(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Main/About_Form.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 | -------------------------------------------------------------------------------- /Main/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 1 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Main/ListViewEx.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Windows.Forms; 6 | using System.Runtime.InteropServices; 7 | 8 | namespace Main 9 | { 10 | public class ListViewEx : ListView 11 | { 12 | 13 | [DllImport("uxtheme", CharSet = CharSet.Auto)] 14 | static extern Boolean SetWindowTheme(IntPtr hWindow, String subAppName, String subIDList); 15 | 16 | public ListViewEx() 17 | { 18 | SetStyle((ControlStyles)0x22010, true); 19 | } 20 | 21 | protected override void OnHandleCreated(EventArgs e) 22 | { 23 | base.OnHandleCreated(e); 24 | 25 | // 핸들이 생성된 후에 테마를 적용한다. 26 | SetWindowTheme(Handle, "explorer", null); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Main/Main.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {BDAF5AF5-A6A4-401F-9D02-19DAD8F7C99F} 8 | WinExe 9 | Properties 10 | Main 11 | Main 12 | v4.0 13 | 512 14 | false 15 | 16 | 게시\ 17 | true 18 | Disk 19 | false 20 | Foreground 21 | 7 22 | Days 23 | false 24 | false 25 | true 26 | 0 27 | 1.0.0.%2a 28 | false 29 | true 30 | 31 | 32 | AnyCPU 33 | true 34 | full 35 | false 36 | bin\Debug\ 37 | DEBUG;TRACE 38 | prompt 39 | 4 40 | 41 | 42 | AnyCPU 43 | none 44 | true 45 | ..\bin\ 46 | TRACE 47 | prompt 48 | 4 49 | true 50 | false 51 | 52 | 53 | 54 | LocalIntranet 55 | 56 | 57 | false 58 | 59 | 60 | Properties\app.manifest 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | Form 77 | 78 | 79 | About_Form.cs 80 | 81 | 82 | Component 83 | 84 | 85 | Form 86 | 87 | 88 | Main_Form.cs 89 | 90 | 91 | Form 92 | 93 | 94 | NewDesc_Form.cs 95 | 96 | 97 | Form 98 | 99 | 100 | Process_Form.cs 101 | 102 | 103 | 104 | 105 | Form 106 | 107 | 108 | Settings_Form.cs 109 | 110 | 111 | Form 112 | 113 | 114 | VEdit_Form.cs 115 | 116 | 117 | About_Form.cs 118 | 119 | 120 | Main_Form.cs 121 | 122 | 123 | NewDesc_Form.cs 124 | 125 | 126 | Process_Form.cs 127 | 128 | 129 | ResXFileCodeGenerator 130 | Resources.Designer.cs 131 | Designer 132 | 133 | 134 | True 135 | Resources.resx 136 | True 137 | 138 | 139 | Settings_Form.cs 140 | 141 | 142 | VEdit_Form.cs 143 | 144 | 145 | 146 | SettingsSingleFileGenerator 147 | Settings.Designer.cs 148 | 149 | 150 | True 151 | Settings.settings 152 | True 153 | 154 | 155 | 156 | 157 | Designer 158 | 159 | 160 | 161 | 162 | False 163 | Microsoft .NET Framework 4.5%28x86 및 x64%29 164 | true 165 | 166 | 167 | False 168 | .NET Framework 3.5 SP1 Client Profile 169 | false 170 | 171 | 172 | False 173 | .NET Framework 3.5 SP1 174 | false 175 | 176 | 177 | 178 | 179 | 180 | 181 | 188 | -------------------------------------------------------------------------------- /Main/Main.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 게시\ 5 | 6 | 7 | 8 | 9 | 10 | ko-KR 11 | false 12 | 13 | -------------------------------------------------------------------------------- /Main/Main_Form.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Main 2 | { 3 | partial class Main_Form 4 | { 5 | /// 6 | /// 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// 12 | /// 13 | /// 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 24 | 25 | /// 26 | /// 27 | /// 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.button1 = new System.Windows.Forms.Button(); 32 | this.button2 = new System.Windows.Forms.Button(); 33 | this.button3 = new System.Windows.Forms.Button(); 34 | this.textBox1 = new System.Windows.Forms.TextBox(); 35 | this.progressBar1 = new System.Windows.Forms.ProgressBar(); 36 | this.comboBox1 = new System.Windows.Forms.ComboBox(); 37 | this.textBox2 = new System.Windows.Forms.TextBox(); 38 | this.label1 = new System.Windows.Forms.Label(); 39 | this.label2 = new System.Windows.Forms.Label(); 40 | this.label3 = new System.Windows.Forms.Label(); 41 | this.textBox3 = new System.Windows.Forms.TextBox(); 42 | this.listView1 = new System.Windows.Forms.ListView(); 43 | this.A = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 44 | this.V = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 45 | this.button4 = new System.Windows.Forms.Button(); 46 | this.label4 = new System.Windows.Forms.Label(); 47 | this.label5 = new System.Windows.Forms.Label(); 48 | this.eventLog1 = new System.Diagnostics.EventLog(); 49 | this.label6 = new System.Windows.Forms.Label(); 50 | this.listViewEx1 = new Main.ListViewEx(); 51 | this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 52 | this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 53 | this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 54 | this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 55 | this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 56 | ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).BeginInit(); 57 | this.SuspendLayout(); 58 | // 59 | // button1 60 | // 61 | this.button1.Location = new System.Drawing.Point(14, 13); 62 | this.button1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 63 | this.button1.Name = "button1"; 64 | this.button1.Size = new System.Drawing.Size(97, 54); 65 | this.button1.TabIndex = 0; 66 | this.button1.Text = "Process"; 67 | this.button1.UseVisualStyleBackColor = true; 68 | this.button1.Click += new System.EventHandler(this.button1_Click); 69 | // 70 | // button2 71 | // 72 | this.button2.Enabled = false; 73 | this.button2.Location = new System.Drawing.Point(250, 75); 74 | this.button2.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 75 | this.button2.Name = "button2"; 76 | this.button2.Size = new System.Drawing.Size(91, 42); 77 | this.button2.TabIndex = 1; 78 | this.button2.Text = "First Read"; 79 | this.button2.UseVisualStyleBackColor = true; 80 | this.button2.Click += new System.EventHandler(this.button2_Click); 81 | // 82 | // button3 83 | // 84 | this.button3.Enabled = false; 85 | this.button3.Location = new System.Drawing.Point(364, 75); 86 | this.button3.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 87 | this.button3.Name = "button3"; 88 | this.button3.Size = new System.Drawing.Size(91, 42); 89 | this.button3.TabIndex = 2; 90 | this.button3.Text = "Next Read"; 91 | this.button3.UseVisualStyleBackColor = true; 92 | this.button3.Click += new System.EventHandler(this.button3_Click); 93 | // 94 | // textBox1 95 | // 96 | this.textBox1.Enabled = false; 97 | this.textBox1.Location = new System.Drawing.Point(337, 146); 98 | this.textBox1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 99 | this.textBox1.Name = "textBox1"; 100 | this.textBox1.Size = new System.Drawing.Size(106, 25); 101 | this.textBox1.TabIndex = 3; 102 | this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); 103 | // 104 | // progressBar1 105 | // 106 | this.progressBar1.Location = new System.Drawing.Point(117, 29); 107 | this.progressBar1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 108 | this.progressBar1.Name = "progressBar1"; 109 | this.progressBar1.Size = new System.Drawing.Size(378, 16); 110 | this.progressBar1.TabIndex = 4; 111 | // 112 | // comboBox1 113 | // 114 | this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 115 | this.comboBox1.Enabled = false; 116 | this.comboBox1.Location = new System.Drawing.Point(337, 204); 117 | this.comboBox1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 118 | this.comboBox1.Name = "comboBox1"; 119 | this.comboBox1.Size = new System.Drawing.Size(130, 23); 120 | this.comboBox1.TabIndex = 0; 121 | this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); 122 | // 123 | // textBox2 124 | // 125 | this.textBox2.Location = new System.Drawing.Point(337, 255); 126 | this.textBox2.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 127 | this.textBox2.Name = "textBox2"; 128 | this.textBox2.Size = new System.Drawing.Size(115, 25); 129 | this.textBox2.TabIndex = 5; 130 | this.textBox2.Text = "00401000"; 131 | this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged); 132 | // 133 | // label1 134 | // 135 | this.label1.AutoSize = true; 136 | this.label1.Location = new System.Drawing.Point(295, 259); 137 | this.label1.Name = "label1"; 138 | this.label1.Size = new System.Drawing.Size(42, 15); 139 | this.label1.TabIndex = 6; 140 | this.label1.Text = "Start:"; 141 | // 142 | // label2 143 | // 144 | this.label2.AutoSize = true; 145 | this.label2.Location = new System.Drawing.Point(250, 207); 146 | this.label2.Name = "label2"; 147 | this.label2.Size = new System.Drawing.Size(84, 15); 148 | this.label2.TabIndex = 7; 149 | this.label2.Text = "Value Type:"; 150 | // 151 | // label3 152 | // 153 | this.label3.AutoSize = true; 154 | this.label3.Location = new System.Drawing.Point(295, 293); 155 | this.label3.Name = "label3"; 156 | this.label3.Size = new System.Drawing.Size(37, 15); 157 | this.label3.TabIndex = 10; 158 | this.label3.Text = "End:"; 159 | // 160 | // textBox3 161 | // 162 | this.textBox3.Location = new System.Drawing.Point(337, 289); 163 | this.textBox3.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 164 | this.textBox3.Name = "textBox3"; 165 | this.textBox3.Size = new System.Drawing.Size(115, 25); 166 | this.textBox3.TabIndex = 9; 167 | this.textBox3.Text = "00402000"; 168 | // 169 | // listView1 170 | // 171 | this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 172 | this.A, 173 | this.V}); 174 | this.listView1.FullRowSelect = true; 175 | this.listView1.Location = new System.Drawing.Point(12, 99); 176 | this.listView1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 177 | this.listView1.Name = "listView1"; 178 | this.listView1.Size = new System.Drawing.Size(219, 338); 179 | this.listView1.TabIndex = 11; 180 | this.listView1.UseCompatibleStateImageBehavior = false; 181 | this.listView1.View = System.Windows.Forms.View.Details; 182 | this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged); 183 | this.listView1.DoubleClick += new System.EventHandler(this.ListView1_Click_Event); 184 | // 185 | // A 186 | // 187 | this.A.Text = "Address"; 188 | this.A.Width = 98; 189 | // 190 | // V 191 | // 192 | this.V.Text = "Value"; 193 | this.V.Width = 113; 194 | // 195 | // button4 196 | // 197 | this.button4.Location = new System.Drawing.Point(473, 75); 198 | this.button4.Name = "button4"; 199 | this.button4.Size = new System.Drawing.Size(67, 23); 200 | this.button4.TabIndex = 12; 201 | this.button4.Text = "Settings"; 202 | this.button4.UseVisualStyleBackColor = true; 203 | this.button4.Click += new System.EventHandler(this.button4_Click_1); 204 | // 205 | // label4 206 | // 207 | this.label4.AutoSize = true; 208 | this.label4.Location = new System.Drawing.Point(261, 9); 209 | this.label4.Name = "label4"; 210 | this.label4.Size = new System.Drawing.Size(33, 15); 211 | this.label4.TabIndex = 14; 212 | this.label4.Text = "Nop"; 213 | // 214 | // label5 215 | // 216 | this.label5.AutoSize = true; 217 | this.label5.Location = new System.Drawing.Point(282, 149); 218 | this.label5.Name = "label5"; 219 | this.label5.Size = new System.Drawing.Size(52, 15); 220 | this.label5.TabIndex = 15; 221 | this.label5.Text = "Value :"; 222 | // 223 | // eventLog1 224 | // 225 | this.eventLog1.SynchronizingObject = this; 226 | // 227 | // label6 228 | // 229 | this.label6.AutoSize = true; 230 | this.label6.Location = new System.Drawing.Point(12, 75); 231 | this.label6.Name = "label6"; 232 | this.label6.Size = new System.Drawing.Size(66, 15); 233 | this.label6.TabIndex = 16; 234 | this.label6.Text = "Found: 0"; 235 | // 236 | // listViewEx1 237 | // 238 | this.listViewEx1.CheckBoxes = true; 239 | this.listViewEx1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 240 | this.columnHeader1, 241 | this.columnHeader2, 242 | this.columnHeader3, 243 | this.columnHeader4, 244 | this.columnHeader5}); 245 | this.listViewEx1.FullRowSelect = true; 246 | this.listViewEx1.Location = new System.Drawing.Point(11, 444); 247 | this.listViewEx1.Name = "listViewEx1"; 248 | this.listViewEx1.Size = new System.Drawing.Size(520, 160); 249 | this.listViewEx1.TabIndex = 13; 250 | this.listViewEx1.UseCompatibleStateImageBehavior = false; 251 | this.listViewEx1.View = System.Windows.Forms.View.Details; 252 | this.listViewEx1.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listView2_ColumnClick); 253 | this.listViewEx1.ColumnReordered += new System.Windows.Forms.ColumnReorderedEventHandler(this.listView2_ColumnReordered); 254 | this.listViewEx1.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.listView2_ItemCheck); 255 | this.listViewEx1.SelectedIndexChanged += new System.EventHandler(this.listView2_SelectedIndexChanged); 256 | this.listViewEx1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.listView2_MouseClick); 257 | this.listViewEx1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listView2_MouseDoubleClick); 258 | // 259 | // columnHeader1 260 | // 261 | this.columnHeader1.Text = "Frozen"; 262 | this.columnHeader1.Width = 57; 263 | // 264 | // columnHeader2 265 | // 266 | this.columnHeader2.Text = "Address"; 267 | this.columnHeader2.Width = 83; 268 | // 269 | // columnHeader3 270 | // 271 | this.columnHeader3.Text = "Value"; 272 | this.columnHeader3.Width = 73; 273 | // 274 | // columnHeader4 275 | // 276 | this.columnHeader4.Text = "Type"; 277 | this.columnHeader4.Width = 92; 278 | // 279 | // columnHeader5 280 | // 281 | this.columnHeader5.Text = "Description"; 282 | this.columnHeader5.Width = 201; 283 | // 284 | // Main_Form 285 | // 286 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 287 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 288 | this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 289 | this.ClientSize = new System.Drawing.Size(543, 609); 290 | this.Controls.Add(this.listViewEx1); 291 | this.Controls.Add(this.label6); 292 | this.Controls.Add(this.label5); 293 | this.Controls.Add(this.label4); 294 | this.Controls.Add(this.button4); 295 | this.Controls.Add(this.listView1); 296 | this.Controls.Add(this.label3); 297 | this.Controls.Add(this.textBox3); 298 | this.Controls.Add(this.label2); 299 | this.Controls.Add(this.label1); 300 | this.Controls.Add(this.textBox2); 301 | this.Controls.Add(this.comboBox1); 302 | this.Controls.Add(this.progressBar1); 303 | this.Controls.Add(this.textBox1); 304 | this.Controls.Add(this.button3); 305 | this.Controls.Add(this.button2); 306 | this.Controls.Add(this.button1); 307 | this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 308 | this.Name = "Main_Form"; 309 | this.Text = "Main"; 310 | this.Load += new System.EventHandler(this.Main_Form_Load); 311 | ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).EndInit(); 312 | this.ResumeLayout(false); 313 | this.PerformLayout(); 314 | 315 | } 316 | 317 | #endregion 318 | 319 | 320 | 321 | 322 | private System.Windows.Forms.Button button1; 323 | private System.Windows.Forms.Button button2; 324 | private System.Windows.Forms.Button button3; 325 | private System.Windows.Forms.TextBox textBox1; 326 | private System.Windows.Forms.ProgressBar progressBar1; 327 | private System.Windows.Forms.ComboBox comboBox1; 328 | private System.Windows.Forms.TextBox textBox2; 329 | private System.Windows.Forms.Label label1; 330 | private System.Windows.Forms.Label label2; 331 | private System.Windows.Forms.Label label3; 332 | private System.Windows.Forms.TextBox textBox3; 333 | private System.Windows.Forms.ListView listView1; 334 | private System.Windows.Forms.Button button4; 335 | private System.Windows.Forms.Label label4; 336 | private System.Windows.Forms.Label label5; 337 | public System.Windows.Forms.ColumnHeader A; 338 | public System.Windows.Forms.ColumnHeader V; 339 | private System.Diagnostics.EventLog eventLog1; 340 | private System.Windows.Forms.Label label6; 341 | private ListViewEx listViewEx1; 342 | private System.Windows.Forms.ColumnHeader columnHeader2; 343 | private System.Windows.Forms.ColumnHeader columnHeader3; 344 | private System.Windows.Forms.ColumnHeader columnHeader4; 345 | private System.Windows.Forms.ColumnHeader columnHeader5; 346 | private System.Windows.Forms.ColumnHeader columnHeader1; 347 | } 348 | } -------------------------------------------------------------------------------- /Main/Main_Form.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 | 17, 17 122 | 123 | 124 | 37 125 | 126 | -------------------------------------------------------------------------------- /Main/NewDesc_Form.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Main 2 | { 3 | partial class NewDesc_Form 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 | this.textBox1 = new System.Windows.Forms.TextBox(); 32 | this.label1 = new System.Windows.Forms.Label(); 33 | this.button1 = new System.Windows.Forms.Button(); 34 | this.SuspendLayout(); 35 | // 36 | // textBox1 37 | // 38 | this.textBox1.Location = new System.Drawing.Point(25, 50); 39 | this.textBox1.Name = "textBox1"; 40 | this.textBox1.Size = new System.Drawing.Size(284, 25); 41 | this.textBox1.TabIndex = 0; 42 | this.textBox1.Text = "No description"; 43 | this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Enter); 44 | // 45 | // label1 46 | // 47 | this.label1.AutoSize = true; 48 | this.label1.Location = new System.Drawing.Point(22, 20); 49 | this.label1.Name = "label1"; 50 | this.label1.Size = new System.Drawing.Size(226, 15); 51 | this.label1.TabIndex = 1; 52 | this.label1.Text = "What will be the new description?"; 53 | // 54 | // button1 55 | // 56 | this.button1.Location = new System.Drawing.Point(251, 81); 57 | this.button1.Name = "button1"; 58 | this.button1.Size = new System.Drawing.Size(95, 35); 59 | this.button1.TabIndex = 2; 60 | this.button1.Text = "OK"; 61 | this.button1.UseVisualStyleBackColor = true; 62 | this.button1.Click += new System.EventHandler(this.button1_Click); 63 | // 64 | // NewDesc_Form 65 | // 66 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 67 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 68 | this.ClientSize = new System.Drawing.Size(358, 127); 69 | this.Controls.Add(this.button1); 70 | this.Controls.Add(this.label1); 71 | this.Controls.Add(this.textBox1); 72 | this.Name = "NewDesc_Form"; 73 | this.Text = "Change Description"; 74 | this.ResumeLayout(false); 75 | this.PerformLayout(); 76 | 77 | } 78 | 79 | #endregion 80 | 81 | private System.Windows.Forms.TextBox textBox1; 82 | private System.Windows.Forms.Label label1; 83 | private System.Windows.Forms.Button button1; 84 | } 85 | } -------------------------------------------------------------------------------- /Main/NewDesc_Form.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace Main 11 | { 12 | public partial class NewDesc_Form : Form 13 | { 14 | public string VALUE { get; set; } 15 | public NewDesc_Form() 16 | { 17 | InitializeComponent(); 18 | } 19 | 20 | private void button1_Click(object sender, EventArgs e) 21 | { 22 | this.VALUE = textBox1.Text; 23 | this.DialogResult = DialogResult.OK; 24 | this.Close(); 25 | } 26 | 27 | private void Enter(object sender, KeyEventArgs e) 28 | { 29 | if (e.KeyCode == Keys.Enter) 30 | { 31 | this.button1_Click(sender, e); 32 | } 33 | else 34 | { 35 | 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Main/NewDesc_Form.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 | -------------------------------------------------------------------------------- /Main/Process_Form.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Main 2 | { 3 | partial class Process_Form 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 | this.button1 = new System.Windows.Forms.Button(); 32 | this.listView1 = new System.Windows.Forms.ListView(); 33 | this.processname = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 34 | this.pid = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 35 | this.SuspendLayout(); 36 | // 37 | // button1 38 | // 39 | this.button1.Location = new System.Drawing.Point(79, 381); 40 | this.button1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 41 | this.button1.Name = "button1"; 42 | this.button1.Size = new System.Drawing.Size(268, 56); 43 | this.button1.TabIndex = 1; 44 | this.button1.Text = "Submit"; 45 | this.button1.UseVisualStyleBackColor = true; 46 | this.button1.Click += new System.EventHandler(this.button1_Click); 47 | // 48 | // listView1 49 | // 50 | this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 51 | this.processname, 52 | this.pid}); 53 | this.listView1.FullRowSelect = true; 54 | this.listView1.ImeMode = System.Windows.Forms.ImeMode.NoControl; 55 | this.listView1.Location = new System.Drawing.Point(12, 25); 56 | this.listView1.Name = "listView1"; 57 | this.listView1.Size = new System.Drawing.Size(400, 349); 58 | this.listView1.TabIndex = 2; 59 | this.listView1.UseCompatibleStateImageBehavior = false; 60 | this.listView1.View = System.Windows.Forms.View.Details; 61 | this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged); 62 | this.listView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Enter); 63 | // 64 | // processname 65 | // 66 | this.processname.Text = "Process Name"; 67 | this.processname.Width = 161; 68 | // 69 | // pid 70 | // 71 | this.pid.Text = "PID"; 72 | this.pid.Width = 71; 73 | // 74 | // Process_Form 75 | // 76 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 77 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 78 | this.ClientSize = new System.Drawing.Size(420, 450); 79 | this.Controls.Add(this.listView1); 80 | this.Controls.Add(this.button1); 81 | this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); 82 | this.Name = "Process_Form"; 83 | this.Text = "Process"; 84 | this.Load += new System.EventHandler(this.Process_Form_Load); 85 | this.ResumeLayout(false); 86 | 87 | } 88 | 89 | #endregion 90 | private System.Windows.Forms.Button button1; 91 | private System.Windows.Forms.ListView listView1; 92 | private System.Windows.Forms.ColumnHeader pid; 93 | private System.Windows.Forms.ColumnHeader processname; 94 | } 95 | } -------------------------------------------------------------------------------- /Main/Process_Form.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | using System.Diagnostics; 11 | namespace Main 12 | { 13 | public partial class Process_Form : Form 14 | { 15 | Process[] allProc; 16 | public int PID { get; set; } 17 | public string PNAME { get; set; } 18 | //public string ReturnValue2 { get; set; } 19 | 20 | 21 | public Process_Form() 22 | { 23 | InitializeComponent(); 24 | } 25 | 26 | 27 | private void Process_Form_Load(object sender, EventArgs e) 28 | { 29 | allProc = Process.GetProcesses(); 30 | 31 | 32 | ImageList Imagelist = new ImageList(); 33 | 34 | foreach (Process process in allProc) 35 | { 36 | string[] row = { 37 | process.ProcessName, 38 | process.Id.ToString() 39 | }; 40 | 41 | try 42 | { 43 | Imagelist.Images.Add( 44 | process.Id.ToString(), 45 | Icon.ExtractAssociatedIcon(process.MainModule.FileName).ToBitmap() 46 | ); 47 | } 48 | catch { } 49 | 50 | ListViewItem item = new ListViewItem(row) 51 | { 52 | ImageIndex = Imagelist.Images.IndexOfKey(process.Id.ToString()) 53 | }; 54 | listView1.Items.Add(item); 55 | } 56 | 57 | listView1.LargeImageList = Imagelist; 58 | listView1.SmallImageList = Imagelist; 59 | 60 | 61 | listView1.Select(); 62 | } 63 | 64 | 65 | private void button1_Click(object sender, EventArgs e) 66 | { 67 | if (listView1.SelectedItems.Count > 0) 68 | { 69 | int index = listView1.Items.IndexOf(listView1.SelectedItems[0]); 70 | this.PID = allProc[index].Id; 71 | this.PNAME = allProc[index].ProcessName; 72 | this.DialogResult = DialogResult.OK; 73 | this.Close(); 74 | } 75 | else 76 | { 77 | MessageBox.Show("Get Process Error"); 78 | } 79 | } 80 | 81 | private void listView1_SelectedIndexChanged(object sender, EventArgs e) 82 | { 83 | 84 | } 85 | 86 | private void Enter(object sender, KeyEventArgs e) 87 | { 88 | if (e.KeyCode == Keys.Enter) 89 | { 90 | this.button1_Click(sender, e); 91 | } 92 | else 93 | { 94 | 95 | } 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Main/Process_Form.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 | -------------------------------------------------------------------------------- /Main/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 | 8 | namespace Main 9 | { 10 | static class Program 11 | { 12 | /// 13 | /// 해당 응용 프로그램의 주 진입점입니다. 14 | /// 15 | [STAThread] 16 | static void Main() 17 | { 18 | Application.EnableVisualStyles(); 19 | Application.SetCompatibleTextRenderingDefault(false); 20 | Application.Run(new Main_Form()); 21 | } 22 | 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Main/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. 6 | // 어셈블리와 관련된 정보를 수정하려면 7 | // 이 특성 값을 변경하십시오. 8 | [assembly: AssemblyTitle("Main")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Main")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 18 | // 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 19 | // 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. 20 | [assembly: ComVisible(false)] 21 | 22 | // 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. 23 | [assembly: Guid("6701c7f3-3c04-4207-b1df-125e43303888")] 24 | 25 | // 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. 26 | // 27 | // 주 버전 28 | // 부 버전 29 | // 빌드 번호 30 | // 수정 버전 31 | // 32 | // 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 33 | // 지정되도록 할 수 있습니다. 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Main/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 이 코드는 도구를 사용하여 생성되었습니다. 4 | // 런타임 버전:4.0.30319.42000 5 | // 6 | // 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 7 | // 이러한 변경 내용이 손실됩니다. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Main.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. 17 | /// 18 | // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder 19 | // 클래스에서 자동으로 생성되었습니다. 20 | // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 21 | // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. 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 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Main.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대한 현재 스레드의 CurrentUICulture 51 | /// 속성을 재정의합니다. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. 65 | /// 66 | internal static System.Drawing.Bitmap About_Image { 67 | get { 68 | object obj = ResourceManager.GetObject("About_Image", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Main/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 | 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 | ..\Resources\About_Image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | -------------------------------------------------------------------------------- /Main/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 이 코드는 도구를 사용하여 생성되었습니다. 4 | // 런타임 버전:4.0.30319.42000 5 | // 6 | // 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 7 | // 이러한 변경 내용이 손실됩니다. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Main.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | 26 | [global::System.Configuration.UserScopedSettingAttribute()] 27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 28 | [global::System.Configuration.DefaultSettingValueAttribute("1")] 29 | public int V { 30 | get { 31 | return ((int)(this["V"])); 32 | } 33 | set { 34 | this["V"] = value; 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Main/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 1 7 | 8 | 9 | -------------------------------------------------------------------------------- /Main/Properties/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 48 | 55 | 56 | 70 | -------------------------------------------------------------------------------- /Main/Resources/About_Image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Empier/MemoryEditor/6d6460f0b44f13cbbbfae91820eb03c7c97204c5/Main/Resources/About_Image.png -------------------------------------------------------------------------------- /Main/Settings_Form.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Main 2 | { 3 | partial class Settings_Form 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 | this.linkLabel1 = new System.Windows.Forms.LinkLabel(); 32 | this.tabControl1 = new System.Windows.Forms.TabControl(); 33 | this.tabPage1 = new System.Windows.Forms.TabPage(); 34 | this.tabPage2 = new System.Windows.Forms.TabPage(); 35 | this.button1 = new System.Windows.Forms.Button(); 36 | this.tabControl1.SuspendLayout(); 37 | this.SuspendLayout(); 38 | // 39 | // linkLabel1 40 | // 41 | this.linkLabel1.AutoSize = true; 42 | this.linkLabel1.Location = new System.Drawing.Point(23, 468); 43 | this.linkLabel1.Name = "linkLabel1"; 44 | this.linkLabel1.Size = new System.Drawing.Size(44, 15); 45 | this.linkLabel1.TabIndex = 0; 46 | this.linkLabel1.TabStop = true; 47 | this.linkLabel1.Text = "about"; 48 | this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); 49 | // 50 | // tabControl1 51 | // 52 | this.tabControl1.Controls.Add(this.tabPage1); 53 | this.tabControl1.Controls.Add(this.tabPage2); 54 | this.tabControl1.Location = new System.Drawing.Point(2, 2); 55 | this.tabControl1.Name = "tabControl1"; 56 | this.tabControl1.SelectedIndex = 0; 57 | this.tabControl1.Size = new System.Drawing.Size(811, 463); 58 | this.tabControl1.TabIndex = 1; 59 | // 60 | // tabPage1 61 | // 62 | this.tabPage1.Location = new System.Drawing.Point(4, 25); 63 | this.tabPage1.Name = "tabPage1"; 64 | this.tabPage1.Padding = new System.Windows.Forms.Padding(3); 65 | this.tabPage1.Size = new System.Drawing.Size(803, 434); 66 | this.tabPage1.TabIndex = 0; 67 | this.tabPage1.Text = "General"; 68 | this.tabPage1.UseVisualStyleBackColor = true; 69 | // 70 | // tabPage2 71 | // 72 | this.tabPage2.Location = new System.Drawing.Point(4, 25); 73 | this.tabPage2.Name = "tabPage2"; 74 | this.tabPage2.Padding = new System.Windows.Forms.Padding(3); 75 | this.tabPage2.Size = new System.Drawing.Size(803, 434); 76 | this.tabPage2.TabIndex = 1; 77 | this.tabPage2.Text = "Setting 1"; 78 | this.tabPage2.UseVisualStyleBackColor = true; 79 | // 80 | // button1 81 | // 82 | this.button1.Location = new System.Drawing.Point(683, 468); 83 | this.button1.Name = "button1"; 84 | this.button1.Size = new System.Drawing.Size(119, 23); 85 | this.button1.TabIndex = 2; 86 | this.button1.Text = "submit"; 87 | this.button1.UseVisualStyleBackColor = true; 88 | // 89 | // Settings_Form 90 | // 91 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 92 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 93 | this.ClientSize = new System.Drawing.Size(814, 492); 94 | this.Controls.Add(this.button1); 95 | this.Controls.Add(this.tabControl1); 96 | this.Controls.Add(this.linkLabel1); 97 | this.Name = "Settings_Form"; 98 | this.Text = "Settings"; 99 | this.tabControl1.ResumeLayout(false); 100 | this.ResumeLayout(false); 101 | this.PerformLayout(); 102 | 103 | } 104 | 105 | #endregion 106 | 107 | private System.Windows.Forms.LinkLabel linkLabel1; 108 | private System.Windows.Forms.TabControl tabControl1; 109 | private System.Windows.Forms.TabPage tabPage1; 110 | private System.Windows.Forms.TabPage tabPage2; 111 | private System.Windows.Forms.Button button1; 112 | } 113 | } -------------------------------------------------------------------------------- /Main/Settings_Form.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace Main 11 | { 12 | public partial class Settings_Form : Form 13 | { 14 | public Settings_Form() 15 | { 16 | InitializeComponent(); 17 | } 18 | 19 | private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 20 | { 21 | About_Form aboutForm = new About_Form(); 22 | var k = aboutForm.ShowDialog(this); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Main/Settings_Form.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 | -------------------------------------------------------------------------------- /Main/VEdit_Form.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Main 2 | { 3 | partial class VEdit_Form 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 | this.label1 = new System.Windows.Forms.Label(); 32 | this.textBox1 = new System.Windows.Forms.TextBox(); 33 | this.button1 = new System.Windows.Forms.Button(); 34 | this.SuspendLayout(); 35 | // 36 | // label1 37 | // 38 | this.label1.AutoSize = true; 39 | this.label1.Location = new System.Drawing.Point(10, 35); 40 | this.label1.Name = "label1"; 41 | this.label1.Size = new System.Drawing.Size(107, 15); 42 | this.label1.TabIndex = 0; 43 | this.label1.Text = "Change Value: "; 44 | // 45 | // textBox1 46 | // 47 | this.textBox1.Location = new System.Drawing.Point(114, 32); 48 | this.textBox1.Name = "textBox1"; 49 | this.textBox1.Size = new System.Drawing.Size(100, 25); 50 | this.textBox1.TabIndex = 1; 51 | this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); 52 | this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Enter); 53 | // 54 | // button1 55 | // 56 | this.button1.Location = new System.Drawing.Point(204, 75); 57 | this.button1.Name = "button1"; 58 | this.button1.Size = new System.Drawing.Size(99, 39); 59 | this.button1.TabIndex = 2; 60 | this.button1.Text = "OK"; 61 | this.button1.UseVisualStyleBackColor = true; 62 | this.button1.Click += new System.EventHandler(this.button1_Click); 63 | // 64 | // VEdit_Form 65 | // 66 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); 67 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 68 | this.ClientSize = new System.Drawing.Size(325, 126); 69 | this.Controls.Add(this.button1); 70 | this.Controls.Add(this.textBox1); 71 | this.Controls.Add(this.label1); 72 | this.Name = "VEdit_Form"; 73 | this.Text = "Edit Value"; 74 | this.ResumeLayout(false); 75 | this.PerformLayout(); 76 | 77 | } 78 | 79 | #endregion 80 | 81 | private System.Windows.Forms.Label label1; 82 | private System.Windows.Forms.TextBox textBox1; 83 | private System.Windows.Forms.Button button1; 84 | } 85 | } -------------------------------------------------------------------------------- /Main/VEdit_Form.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace Main 11 | { 12 | 13 | 14 | public partial class VEdit_Form : Form 15 | { 16 | 17 | public int VALUE { get; set; } 18 | 19 | 20 | public VEdit_Form() 21 | { 22 | InitializeComponent(); 23 | } 24 | 25 | private void button1_Click(object sender, EventArgs e) 26 | { 27 | this.VALUE = Convert.ToInt32(textBox1.Text); 28 | this.DialogResult = DialogResult.OK; 29 | this.Close(); 30 | } 31 | 32 | private void Enter(object sender, KeyEventArgs e) 33 | { 34 | if (e.KeyCode == Keys.Enter) 35 | { 36 | this.button1_Click(sender, e); 37 | } 38 | else 39 | { 40 | 41 | } 42 | } 43 | 44 | private void textBox1_TextChanged(object sender, EventArgs e) 45 | { 46 | 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Main/VEdit_Form.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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Memory Editor 2 | 3 | 4 | The goal is to implement the Cheat Engine via C# 5 | 6 | To start the program, run Main.exe. 7 | 8 | - Require : .Net Framework 4.5 9 | 10 | - Tested On: Windows 10 x64 11 | 12 | - Driver: Driver Test Signing 13 | 14 | [Change Log Link](https://github.com/Empier/MemoryEditor/blob/master/ChangeLog.txt) 15 | 16 | ###################################### 17 | 18 | ## Build 19 | 20 | ### Tools 21 | 22 | Use Visual Studio 2015 Pro 23 | 24 | Windows Driver Kit 25 | 26 | AcroEdit 27 | 28 | ### ScreenShot 29 | 30 | -------------------------------------------------------------------------------- /Win8.1Debug/Empire.inf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Empire.inf 3 | ; 4 | 5 | [Version] 6 | Signature="$WINDOWS NT$" 7 | Class=Sample ; TODO: edit Class 8 | ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid 9 | Provider=ASF%ManufacturerName% 10 | CatalogFile=Empire.cat 11 | DriverVer = 08/13/2019,22.12.28.200 12 | 13 | ;[DestinationDirs] 14 | ;DefaultDestDir = 12 15 | 16 | ; ================= Class section ===================== 17 | 18 | [ClassInstall32] 19 | Addreg=SampleClassReg 20 | 21 | [SampleClassReg] 22 | HKR,,,0,%ClassName% 23 | HKR,,Icon,,-5 24 | 25 | [SourceDisksNames] 26 | 1 = %DiskName%,,,"" 27 | 28 | ;[SourceDisksFiles] 29 | ;Empire.sys = 1,, 30 | 31 | ;***************************************** 32 | ; Install Section 33 | ;***************************************** 34 | 35 | [Manufacturer] 36 | %ManufacturerName%=Standard,NTx86 37 | 38 | [Standard.NTx86] 39 | %Empire.DeviceDesc%=Empire_Device, Root\Empire ; TODO: edit hw-id 40 | 41 | [Empire_Device.NT] 42 | CopyFiles=Drivers_Dir 43 | 44 | [Drivers_Dir] 45 | Empire.sys 46 | 47 | 48 | ;-------------- Service installation 49 | [Empire_Device.NT.Services] 50 | AddService = Empire,%SPSVCINST_ASSOCSERVICE%, Empire_Service_Inst 51 | 52 | ; -------------- Empire driver install sections 53 | [Empire_Service_Inst] 54 | DisplayName = %Empire.SVCDESC% 55 | ServiceType = 1 ; SERVICE_KERNEL_DRIVER 56 | StartType = 3 ; SERVICE_DEMAND_START 57 | ErrorControl = 1 ; SERVICE_ERROR_NORMAL 58 | ServiceBinary = %12%\Empire.sys 59 | LoadOrderGroup = Extended Base 60 | 61 | ; 62 | ;--- Empire_Device Coinstaller installation ------ 63 | ; 64 | 65 | [DestinationDirs] 66 | Empire_Device_CoInstaller_CopyFiles = 11 67 | 68 | [Empire_Device.NT.CoInstallers] 69 | AddReg=Empire_Device_CoInstaller_AddReg 70 | CopyFiles=Empire_Device_CoInstaller_CopyFiles 71 | 72 | [Empire_Device_CoInstaller_AddReg] 73 | HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" 74 | 75 | [Empire_Device_CoInstaller_CopyFiles] 76 | WdfCoInstaller01011.dll 77 | 78 | [SourceDisksFiles] 79 | WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames 80 | Empire.sys = 1,, 81 | 82 | [Empire_Device.NT.Wdf] 83 | KmdfService = Empire, Empire_wdfsect 84 | [Empire_wdfsect] 85 | KmdfLibraryVersion = 1.11 86 | 87 | [Strings] 88 | SPSVCINST_ASSOCSERVICE= 0x00000002 89 | ManufacturerName="" ; TODO: add ManufacturerName 90 | ClassName="Samples" ; TODO: edit ClassName 91 | DiskName = "Empire Installation Disk" 92 | Empire.DeviceDesc = "Empire Device" 93 | Empire.SVCDESC = "Empire Service" 94 | --------------------------------------------------------------------------------