├── .gitattributes ├── .gitignore ├── GatewayRAMTools.sln ├── GatewayRAMTools ├── App.config ├── Forms │ ├── CheatTextWindow.Designer.cs │ ├── CheatTextWindow.cs │ ├── CheatTextWindow.resx │ ├── FixedAddrWindow.Designer.cs │ ├── FixedAddrWindow.resx │ ├── GoToDialog.Designer.cs │ ├── GoToDialog.cs │ ├── GoToDialog.resx │ ├── HeaderWindow.Designer.cs │ ├── HeaderWindow.cs │ ├── HeaderWindow.resx │ ├── HexWindow.Designer.cs │ ├── HexWindow.cs │ ├── HexWindow.resx │ ├── MainWindow.Designer.cs │ ├── MainWindow.cs │ ├── MainWindow.resx │ ├── PointerAddrWindow.cs │ └── PointerAddrWindow.resx ├── GWFunctions.cs ├── GatewayRAMTools.csproj ├── Lib │ ├── Be.HexEditor.exe.config │ └── Be.Windows.Forms.HexBox.dll ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings └── Resources │ ├── application-list.png │ ├── book-question.png │ ├── cross-circle.png │ ├── database.png │ ├── document--minus.png │ ├── document--plus.png │ ├── document-search-result.png │ ├── drive-download.png │ ├── git.png │ ├── grt.ico │ ├── hand-finger.png │ ├── hand-point-090.png │ ├── node-magnifier.png │ ├── node-select-all.png │ ├── node-select-next.png │ ├── node-select-previous.png │ ├── node.png │ ├── property-export.png │ ├── receipt--arrow.png │ ├── script-text.png │ ├── stickman-smiley-question.png │ └── table-export.png └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | build/ 21 | bld/ 22 | [Bb]in/ 23 | [Oo]bj/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | 28 | # MSTest test Results 29 | [Tt]est[Rr]esult*/ 30 | [Bb]uild[Ll]og.* 31 | 32 | # NUNIT 33 | *.VisualState.xml 34 | TestResult.xml 35 | 36 | # Build Results of an ATL Project 37 | [Dd]ebugPS/ 38 | [Rr]eleasePS/ 39 | dlldata.c 40 | 41 | # DNX 42 | project.lock.json 43 | artifacts/ 44 | 45 | *_i.c 46 | *_p.c 47 | *_i.h 48 | *.ilk 49 | *.meta 50 | *.obj 51 | *.pch 52 | *.pdb 53 | *.pgc 54 | *.pgd 55 | *.rsp 56 | *.sbr 57 | *.tlb 58 | *.tli 59 | *.tlh 60 | *.tmp 61 | *.tmp_proj 62 | *.log 63 | *.vspscc 64 | *.vssscc 65 | .builds 66 | *.pidb 67 | *.svclog 68 | *.scc 69 | 70 | # Chutzpah Test files 71 | _Chutzpah* 72 | 73 | # Visual C++ cache files 74 | ipch/ 75 | *.aps 76 | *.ncb 77 | *.opensdf 78 | *.sdf 79 | *.cachefile 80 | 81 | # Visual Studio profiler 82 | *.psess 83 | *.vsp 84 | *.vspx 85 | 86 | # TFS 2012 Local Workspace 87 | $tf/ 88 | 89 | # Guidance Automation Toolkit 90 | *.gpState 91 | 92 | # ReSharper is a .NET coding add-in 93 | _ReSharper*/ 94 | *.[Rr]e[Ss]harper 95 | *.DotSettings.user 96 | 97 | # JustCode is a .NET coding add-in 98 | .JustCode 99 | 100 | # TeamCity is a build add-in 101 | _TeamCity* 102 | 103 | # DotCover is a Code Coverage Tool 104 | *.dotCover 105 | 106 | # NCrunch 107 | _NCrunch_* 108 | .*crunch*.local.xml 109 | 110 | # MightyMoose 111 | *.mm.* 112 | AutoTest.Net/ 113 | 114 | # Web workbench (sass) 115 | .sass-cache/ 116 | 117 | # Installshield output folder 118 | [Ee]xpress/ 119 | 120 | # DocProject is a documentation generator add-in 121 | DocProject/buildhelp/ 122 | DocProject/Help/*.HxT 123 | DocProject/Help/*.HxC 124 | DocProject/Help/*.hhc 125 | DocProject/Help/*.hhk 126 | DocProject/Help/*.hhp 127 | DocProject/Help/Html2 128 | DocProject/Help/html 129 | 130 | # Click-Once directory 131 | publish/ 132 | 133 | # Publish Web Output 134 | *.[Pp]ublish.xml 135 | *.azurePubxml 136 | ## TODO: Comment the next line if you want to checkin your 137 | ## web deploy settings but do note that will include unencrypted 138 | ## passwords 139 | #*.pubxml 140 | 141 | *.publishproj 142 | 143 | # NuGet Packages 144 | *.nupkg 145 | # The packages folder can be ignored because of Package Restore 146 | **/packages/* 147 | # except build/, which is used as an MSBuild target. 148 | !**/packages/build/ 149 | # Uncomment if necessary however generally it will be regenerated when needed 150 | #!**/packages/repositories.config 151 | 152 | # Windows Azure Build Output 153 | csx/ 154 | *.build.csdef 155 | 156 | # Windows Store app package directory 157 | AppPackages/ 158 | 159 | # Visual Studio cache files 160 | # files ending in .cache can be ignored 161 | *.[Cc]ache 162 | # but keep track of directories ending in .cache 163 | !*.[Cc]ache/ 164 | 165 | # Others 166 | ClientBin/ 167 | [Ss]tyle[Cc]op.* 168 | ~$* 169 | *~ 170 | *.dbmdl 171 | *.dbproj.schemaview 172 | *.pfx 173 | *.publishsettings 174 | node_modules/ 175 | orleans.codegen.cs 176 | 177 | # RIA/Silverlight projects 178 | Generated_Code/ 179 | 180 | # Backup & report files from converting an old project file 181 | # to a newer Visual Studio version. Backup files are not needed, 182 | # because we have git ;-) 183 | _UpgradeReport_Files/ 184 | Backup*/ 185 | UpgradeLog*.XML 186 | UpgradeLog*.htm 187 | 188 | # SQL Server files 189 | *.mdf 190 | *.ldf 191 | 192 | # Business Intelligence projects 193 | *.rdl.data 194 | *.bim.layout 195 | *.bim_*.settings 196 | 197 | # Microsoft Fakes 198 | FakesAssemblies/ 199 | 200 | # Node.js Tools for Visual Studio 201 | .ntvs_analysis.dat 202 | 203 | # Visual Studio 6 build log 204 | *.plg 205 | 206 | # Visual Studio 6 workspace options file 207 | *.opt 208 | 209 | # LightSwitch generated files 210 | GeneratedArtifacts/ 211 | _Pvt_Extensions/ 212 | ModelManifest.xml 213 | -------------------------------------------------------------------------------- /GatewayRAMTools.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GatewayRAMTools", "GatewayRAMTools\GatewayRAMTools.csproj", "{3ECB7D47-1E73-4FAD-BC43-D159685071FD}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {3ECB7D47-1E73-4FAD-BC43-D159685071FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {3ECB7D47-1E73-4FAD-BC43-D159685071FD}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {3ECB7D47-1E73-4FAD-BC43-D159685071FD}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {3ECB7D47-1E73-4FAD-BC43-D159685071FD}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /GatewayRAMTools/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/CheatTextWindow.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace GatewayRAMTools 2 | { 3 | partial class CheatTextWindow 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CheatTextWindow)); 32 | this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); 33 | this.label1 = new System.Windows.Forms.Label(); 34 | this.txtVal = new System.Windows.Forms.TextBox(); 35 | this.panel1 = new System.Windows.Forms.Panel(); 36 | this.txtCheat = new System.Windows.Forms.TextBox(); 37 | this.tableLayoutPanel1.SuspendLayout(); 38 | this.panel1.SuspendLayout(); 39 | this.SuspendLayout(); 40 | // 41 | // tableLayoutPanel1 42 | // 43 | this.tableLayoutPanel1.ColumnCount = 2; 44 | this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.08591F)); 45 | this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 74.91409F)); 46 | this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0); 47 | this.tableLayoutPanel1.Controls.Add(this.txtVal, 1, 0); 48 | this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 1); 49 | this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; 50 | this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); 51 | this.tableLayoutPanel1.Name = "tableLayoutPanel1"; 52 | this.tableLayoutPanel1.RowCount = 2; 53 | this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); 54 | this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); 55 | this.tableLayoutPanel1.Size = new System.Drawing.Size(291, 186); 56 | this.tableLayoutPanel1.TabIndex = 0; 57 | // 58 | // label1 59 | // 60 | this.label1.AutoSize = true; 61 | this.label1.Dock = System.Windows.Forms.DockStyle.Fill; 62 | this.label1.Location = new System.Drawing.Point(3, 6); 63 | this.label1.Margin = new System.Windows.Forms.Padding(3, 6, 3, 0); 64 | this.label1.Name = "label1"; 65 | this.label1.Size = new System.Drawing.Size(67, 19); 66 | this.label1.TabIndex = 0; 67 | this.label1.Text = "New Value:"; 68 | // 69 | // txtVal 70 | // 71 | this.txtVal.Dock = System.Windows.Forms.DockStyle.Fill; 72 | this.txtVal.Location = new System.Drawing.Point(76, 3); 73 | this.txtVal.Name = "txtVal"; 74 | this.txtVal.Size = new System.Drawing.Size(212, 20); 75 | this.txtVal.TabIndex = 1; 76 | this.txtVal.Text = "100"; 77 | this.txtVal.TextChanged += new System.EventHandler(this.txtVal_TextChanged); 78 | // 79 | // panel1 80 | // 81 | this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2); 82 | this.panel1.Controls.Add(this.txtCheat); 83 | this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; 84 | this.panel1.Location = new System.Drawing.Point(3, 28); 85 | this.panel1.Name = "panel1"; 86 | this.panel1.Padding = new System.Windows.Forms.Padding(6); 87 | this.panel1.Size = new System.Drawing.Size(285, 155); 88 | this.panel1.TabIndex = 2; 89 | // 90 | // txtCheat 91 | // 92 | this.txtCheat.Dock = System.Windows.Forms.DockStyle.Fill; 93 | this.txtCheat.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 94 | this.txtCheat.Location = new System.Drawing.Point(6, 6); 95 | this.txtCheat.Multiline = true; 96 | this.txtCheat.Name = "txtCheat"; 97 | this.txtCheat.Size = new System.Drawing.Size(273, 143); 98 | this.txtCheat.TabIndex = 0; 99 | // 100 | // CheatTextWindow 101 | // 102 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 103 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 104 | this.ClientSize = new System.Drawing.Size(291, 186); 105 | this.Controls.Add(this.tableLayoutPanel1); 106 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 107 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 108 | this.MaximizeBox = false; 109 | this.Name = "CheatTextWindow"; 110 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 111 | this.Text = "Create Cheat"; 112 | this.Load += new System.EventHandler(this.CheatTextWindow_Load); 113 | this.tableLayoutPanel1.ResumeLayout(false); 114 | this.tableLayoutPanel1.PerformLayout(); 115 | this.panel1.ResumeLayout(false); 116 | this.panel1.PerformLayout(); 117 | this.ResumeLayout(false); 118 | 119 | } 120 | 121 | #endregion 122 | 123 | private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; 124 | private System.Windows.Forms.Label label1; 125 | private System.Windows.Forms.TextBox txtVal; 126 | private System.Windows.Forms.Panel panel1; 127 | private System.Windows.Forms.TextBox txtCheat; 128 | } 129 | } -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/CheatTextWindow.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 GatewayRAMTools 11 | { 12 | public partial class CheatTextWindow : Form 13 | { 14 | public string pointeraddr = ""; 15 | public string offset = ""; 16 | public string cheatname = ""; 17 | public string newvalue = ""; 18 | 19 | public CheatTextWindow() 20 | { 21 | InitializeComponent(); 22 | } 23 | 24 | private void writeCheat() 25 | { 26 | int outval; 27 | if (int.TryParse(txtVal.Text, out outval)) 28 | { 29 | newvalue = outval.ToString("X8"); 30 | } 31 | else newvalue = "00000000"; 32 | txtCheat.Text = string.Format("[{0}]\r\nD3000000 {1}\r\n60000000 00000000\r\nB0000000 00000000\r\n{2} {3}\r\nD2000000 00000000",cheatname,pointeraddr,offset,newvalue); 33 | } 34 | 35 | private void CheatTextWindow_Load(object sender, EventArgs e) 36 | { 37 | writeCheat(); 38 | } 39 | 40 | private void txtVal_TextChanged(object sender, EventArgs e) 41 | { 42 | writeCheat(); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/CheatTextWindow.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | 123 | AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA 124 | AAAJCQEvIyMDhyMjA4cjIwOHIyMDhyMjA4cjIwOHIyMDhyMjA4cjIwOHIyMDhyMjA4cYGAJdAAAAKQAA 125 | ABsAAAAPEhIBK0hIK5Ht7erv/v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v////7/pKSVwRkZ 126 | AVMAAAAPAAAACf///wEjIwAra2tPq83NvP/Q0MH/1dXH/9razv/g4NX/5ubd/+zs5f/x8ez/9vby//z8 127 | +f8jIwB5////Af///wH///8B////ASMjAHHx8er/7+/o//Dw6v/x8ev/8/Pt//T07//19fH/9/fy//j4 128 | 9P/8/Pj/IyMAcf///wH///8B////Af///wEmJgBr+/v1//b28f/29vH/9vbx//b28f/29vH/9vbx//b2 129 | 8f/29vH/+/v1/yYmAGv///8B////Af///wH///8BLCwBZ/r68v/z8+z/8/Ps//Pz7P/z8+z/8/Ps//Pz 130 | 7P/z8+z/8/Ps//r68v8sLAFn////Af///wH///8B////ATIyBmf4+O7/8PDm//Dw5v/w8Ob/8PDm//Dw 131 | 5v/w8Ob/8PDm//Dw5v/4+O7/MjIGZ////wH///8B////Af///wE5OQ1n9vbr/+3t4f/t7eH/7e3h/+3t 132 | 4f/t7eH/7e3h/+3t4f/t7eH/9vbr/zk5DWf///8B////Af///wH///8BQkIWZ/X15//q6tz/6urc/+rq 133 | 3P/q6tz/6urc/+rq3P/q6tz/6urc//X15/9CQhZn////Af///wH///8B////AUtLIGf09OT/6OjY/+jo 134 | 2P/o6Nj/6OjY/+jo2P/o6Nj/6OjY/+jo2P/09OT/S0sgZ////wH///8B////Af///wFVVSpn8/Pj/+bm 135 | 1v/m5tb/5ubW/+bm1v/m5tb/5ubW/+bm1v/m5tb/8/Pj/1VVKmf///8B////Af///wH///8BX180Z/Ly 136 | 4f/l5dT/5eXU/+Xl1P/l5dT/5eXU/+Xl1P/l5dT/5eXU//Ly4f9fXzRn////Af///wH///8B////AWlp 137 | Pmf09OX/6OjZ/+jo2f/o6Nn/6OjZ/+jo2f/o6Nn/6OjZ/+jo2f/09OX/aWk+Z////wH///8B////Af// 138 | /wFxcUdn/Pzz//Pz6//z8+v/8/Pr//Pz6//z8+v/8/Pr//Pz6//z8+v/+vrx/66ukqFyckgl////Af// 139 | /wH///8BeHhNOcvLurP+/v3//f38//39/P/9/fz//f38//39/P/9/fz//f38//39/P/29vLtkZFue3l5 140 | Th////8B////Af///wF+flQ5fn5UZ35+VGd+flRnfn5UZ35+VGd+flRnfn5UZ35+VGd+flRnfn5UZ35+ 141 | VGd9fVMbAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA 142 | //8AAP//AAD//w== 143 | 144 | 145 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/FixedAddrWindow.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 | True 125 | 126 | 127 | True 128 | 129 | 130 | 143, 17 131 | 132 | 133 | 58 134 | 135 | 136 | 137 | 138 | AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA 139 | AAAAAAALGRkEWSYmBokYGARXAAAALQAAACkAAAAjAAAAHQAAABcAAAARAAAACwAAAAcAAAAD////Af// 140 | /wH///8B////ASoqCon/////gYFusyAgCDP///8B////Af///wH///8B////Af///wH///8B////Af// 141 | /wH///8B////Af///wEuLg5BhYVysf////+EhHGxKSkKRSMjBGkjIwSDIyMEgyMjBGkjIwQt////Af// 142 | /wH///8B////Af///wH///8B////ATQ0EzOJiXWv/////6WlmMvPz8fb9/f19/f39ffPz8fbXFxEmy0t 143 | DYctLQ2HLS0Nhy8vD2X///8B////Af///wH///8BPz8cQbCwocf8/Pr3wsKwrY6Oa3eNjWt3wMCtrfPz 144 | 7/fX187/7+/q//39+P8/Px1/////Af///wH///8B////AVFRLVva2tPXu7upr6aegYHx6N658ungu6ql 145 | ioW4uKSv7+/q/+Xl3P/7+/X/UVEtef///wH///8B////Af///wFYWDJv+vr493BwUYPfxqyr8uTWu/Lk 146 | 1rvl0r2zcHBPg/b28P/n59//+vrz/1hYMnf///8B////Af///wH///8BXV03b/r6+PdgYEKL2b2fp+LE 147 | p7PixKez3casrV5eQIv19e7/7e3l//n58v9dXTd1////Af///wH///8B////AWJiPFff39fVnp6Nu3lt 148 | Tonm2cqr5tnKq3pvUImamoe78/Pr//Hx6P/4+O7/YmI8c////wH///8B////Af///wFnZ0AljY1wifHx 149 | 7fmVlYW9REQolUREJ5WTk4G97e3l+fHx6f/v7+T/9vbo/2dnQHH///8B////Af///wH///8B////AWxs 150 | RG/k5Nz/8vLs//b28P/19e//8/Pr//Hx6f/v7+T/6urc//T04/9sbERv////Af///wH///8B////Af// 151 | /wFxcUht9PTv/+rq4v/r6+P/7u7m//Hx6f/v7+T/6urc/+fn1v/y8uH/cXFIbf///wH///8B////Af// 152 | /wH///8BdXVMa/v79v/29vD/9fXu//Pz6//w8OX/6urc/6Skk/+kpJP/pKST/0lJJX3///8B////Af// 153 | /wH///8B////AXl5UGn6+vT/9fXu//Pz6//w8OX/6urc/+fn1v+2tqX//////3l5UGl5eVAl////Af// 154 | /wH///8B////Af///wF8fFJp/f32//n58v/4+O7/9fXo//Pz4//y8uH/wsKx/3x8Uml8fFIl////Af// 155 | /wH///8B////Af///wH///8Bf39VTX9/VWd/f1Vnf39VZ39/VWd/f1Vnf39VZ39/VWd/f1Ul////Af// 156 | /wH///8BAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA 157 | //8AAP//AAD//w== 158 | 159 | 160 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/GoToDialog.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace GatewayRAMTools 2 | { 3 | partial class GoToDialog 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GoToDialog)); 32 | this.panel1 = new System.Windows.Forms.Panel(); 33 | this.btnCancel = new System.Windows.Forms.Button(); 34 | this.lblOffset = new System.Windows.Forms.Label(); 35 | this.button1 = new System.Windows.Forms.Button(); 36 | this.txtOffset = new System.Windows.Forms.TextBox(); 37 | this.panel1.SuspendLayout(); 38 | this.SuspendLayout(); 39 | // 40 | // panel1 41 | // 42 | this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; 43 | this.panel1.Controls.Add(this.btnCancel); 44 | this.panel1.Controls.Add(this.lblOffset); 45 | this.panel1.Controls.Add(this.button1); 46 | this.panel1.Controls.Add(this.txtOffset); 47 | this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; 48 | this.panel1.Location = new System.Drawing.Point(0, 0); 49 | this.panel1.Name = "panel1"; 50 | this.panel1.Size = new System.Drawing.Size(220, 56); 51 | this.panel1.TabIndex = 0; 52 | // 53 | // btnCancel 54 | // 55 | this.btnCancel.Image = global::GatewayRAMTools.Properties.Resources.cross_circle; 56 | this.btnCancel.Location = new System.Drawing.Point(175, 22); 57 | this.btnCancel.Name = "btnCancel"; 58 | this.btnCancel.Size = new System.Drawing.Size(37, 23); 59 | this.btnCancel.TabIndex = 6; 60 | this.btnCancel.UseVisualStyleBackColor = true; 61 | this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); 62 | // 63 | // lblOffset 64 | // 65 | this.lblOffset.AutoSize = true; 66 | this.lblOffset.Location = new System.Drawing.Point(11, 8); 67 | this.lblOffset.Name = "lblOffset"; 68 | this.lblOffset.Size = new System.Drawing.Size(71, 13); 69 | this.lblOffset.TabIndex = 5; 70 | this.lblOffset.Text = "Go To Offset:"; 71 | // 72 | // button1 73 | // 74 | this.button1.Location = new System.Drawing.Point(131, 22); 75 | this.button1.Name = "button1"; 76 | this.button1.Size = new System.Drawing.Size(38, 23); 77 | this.button1.TabIndex = 4; 78 | this.button1.Text = "Go"; 79 | this.button1.UseVisualStyleBackColor = true; 80 | this.button1.Click += new System.EventHandler(this.btnOK_Click); 81 | // 82 | // txtOffset 83 | // 84 | this.txtOffset.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; 85 | this.txtOffset.Location = new System.Drawing.Point(11, 24); 86 | this.txtOffset.MaxLength = 8; 87 | this.txtOffset.Name = "txtOffset"; 88 | this.txtOffset.Size = new System.Drawing.Size(114, 20); 89 | this.txtOffset.TabIndex = 3; 90 | this.txtOffset.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtOffset_KeyDown); 91 | // 92 | // GoToDialog 93 | // 94 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 95 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 96 | this.ClientSize = new System.Drawing.Size(220, 56); 97 | this.Controls.Add(this.panel1); 98 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 99 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 100 | this.Name = "GoToDialog"; 101 | this.ShowInTaskbar = false; 102 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; 103 | this.Text = "Go To..."; 104 | this.TopMost = true; 105 | this.Load += new System.EventHandler(this.GoToDialog_Load); 106 | this.panel1.ResumeLayout(false); 107 | this.panel1.PerformLayout(); 108 | this.ResumeLayout(false); 109 | 110 | } 111 | 112 | #endregion 113 | 114 | private System.Windows.Forms.Panel panel1; 115 | private System.Windows.Forms.Label lblOffset; 116 | private System.Windows.Forms.Button button1; 117 | private System.Windows.Forms.TextBox txtOffset; 118 | private System.Windows.Forms.Button btnCancel; 119 | } 120 | } -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/GoToDialog.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 GatewayRAMTools 11 | { 12 | public partial class GoToDialog : Form 13 | { 14 | public string offsetVal; 15 | 16 | public GoToDialog() 17 | { 18 | InitializeComponent(); 19 | } 20 | 21 | private void btnOK_Click(object sender, EventArgs e) 22 | { 23 | this.DialogResult = DialogResult.OK; 24 | offsetVal = txtOffset.Text; 25 | this.Close(); 26 | } 27 | 28 | private void GoToDialog_Load(object sender, EventArgs e) 29 | { 30 | txtOffset.Text = offsetVal; 31 | } 32 | 33 | private void btnCancel_Click(object sender, EventArgs e) 34 | { 35 | this.DialogResult = DialogResult.Cancel; 36 | this.Close(); 37 | } 38 | 39 | private void txtOffset_KeyDown(object sender, KeyEventArgs e) 40 | { 41 | if (e.KeyCode == Keys.Escape) { btnCancel_Click(sender, e); } 42 | if (e.KeyCode == Keys.Enter) { btnOK_Click(sender, e); } 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/GoToDialog.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | 123 | AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA 124 | AAAAAAATAAAALSEhCXMqKguHEBADRSoqC4cQEANFKioLhxAQA0UqKguHEBADRSoqC4d3RAfLXjEDeQAA 125 | ABP///8B////Af///wE4OBeD+fnp/y8vDH3z8+L/Ly8MffPz4v8vLwx98/Pi/y8vDH35+en/mlgO56dc 126 | Dc1+Rgtd////Af///wH///8BSUkme/T05P/09OT/6OjY//T05P/o6Nj/0aRs/7+DPv/ChkH/woZB/6lm 127 | GeX/xTj/tWoYzbdsGV3///8B////AVRUL3f09Ob/6enb/+np2//p6dv/6enb/8uPSP//45L//9Vq///R 128 | Xf//0V3//9Fd///Yc//DeSPN////Af///wFYWDN39fXo/+vr3v/r697/6+ve/+vr3v/brnT/15tS/9eb 129 | Uv/ZnVT/xYIv5f/ll//Shy7N0IUtXf///wH///8BXFw3dfb26//t7eH/7e3h/+3t4f/t7eH/7e3h/+3t 130 | 4f/t7eH/9vbr/9KOOOPflDjN3pM3Xf///wH///8B////AWFhOnP4+O3/8PDl//Dw5f/w8OX/8PDl//Dw 131 | 5f/w8OX/8PDl//j47f+8ij3H55w+Xf///wH///8B////Af///wFlZT5x+fnw//Ly6f/y8un/8vLp//Ly 132 | 6f/y8un/8vLp//Ly6f/5+fD/ZWU+cf///wH///8B////Af///wH///8BaWlCb/r68v/09Oz/9PTs//T0 133 | 7P/09Oz/9PTs//T07P/09Oz/+vry/2lpQm////8B////Af///wH///8B////AW1tRW37+/X/9vbw//b2 134 | 8P/29vD/9vbw//b28P/29vD/9vbw//v79f9tbUVt////Af///wH///8B////Af///wFxcUht/Pz4//n5 135 | 9P/5+fT/+fn0//n59P/5+fT/+fn0//n59P/8/Pj/cXFIbf///wH///8B////Af///wH///8BdHRMa/39 136 | +v/7+/f/+/v3//v79//7+/f/+/v3//v79//7+/f//f36/3R0TGv///8B////Af///wH///8B////AXd3 137 | Tmn+/vz//Pz6//z8+v/8/Pr//Pz6//z8+v/8/Pr//Pz6//7+/P93d05p////Af///wH///8B////Af// 138 | /wF6elFp///+//7+/f/+/v3//v79//7+/f/+/v3//v79//7+/f////7/enpRaf///wH///8B////Af// 139 | /wH///8BfX1TZ/////9paT9n/////2lpP2f/////aWk/Z/////9paT9n/////319U2f///8B////Af// 140 | /wH///8B////AX9/VU1/f1Vnf39VGX9/VWd/f1UZf39VZ39/VRl/f1Vnf39VGX9/VWd/f1VN////Af// 141 | /wH///8BAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA 142 | //8AAP//AAD//w== 143 | 144 | 145 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/HeaderWindow.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace GatewayRAMTools 2 | { 3 | partial class HeaderWindow 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.components = new System.ComponentModel.Container(); 32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(HeaderWindow)); 33 | this.pnlButtons = new System.Windows.Forms.Panel(); 34 | this.pnlText = new System.Windows.Forms.Panel(); 35 | this.splitContainer1 = new System.Windows.Forms.SplitContainer(); 36 | this.txtRAM = new System.Windows.Forms.TextBox(); 37 | this.txtFile = new System.Windows.Forms.TextBox(); 38 | this.pnlTextLabels = new System.Windows.Forms.Panel(); 39 | this.splitContainer2 = new System.Windows.Forms.SplitContainer(); 40 | this.lblRAM = new System.Windows.Forms.Label(); 41 | this.lblFile = new System.Windows.Forms.Label(); 42 | this.pnlMainLabel = new System.Windows.Forms.Panel(); 43 | this.lblMain = new System.Windows.Forms.Label(); 44 | this.pnlMemregions = new System.Windows.Forms.Panel(); 45 | this.lstHeader = new System.Windows.Forms.ListView(); 46 | this.ramFrom = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 47 | this.ramTo = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 48 | this.filePosition = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 49 | this.dumpSize = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 50 | this.mnuPopup = new System.Windows.Forms.ContextMenuStrip(this.components); 51 | this.savXML = new System.Windows.Forms.SaveFileDialog(); 52 | this.savRegion = new System.Windows.Forms.SaveFileDialog(); 53 | this.exportRegionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 54 | this.hexViewerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 55 | this.btnClose = new System.Windows.Forms.Button(); 56 | this.btnExport = new System.Windows.Forms.Button(); 57 | this.pnlButtons.SuspendLayout(); 58 | this.pnlText.SuspendLayout(); 59 | ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); 60 | this.splitContainer1.Panel1.SuspendLayout(); 61 | this.splitContainer1.Panel2.SuspendLayout(); 62 | this.splitContainer1.SuspendLayout(); 63 | this.pnlTextLabels.SuspendLayout(); 64 | ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit(); 65 | this.splitContainer2.Panel1.SuspendLayout(); 66 | this.splitContainer2.Panel2.SuspendLayout(); 67 | this.splitContainer2.SuspendLayout(); 68 | this.pnlMainLabel.SuspendLayout(); 69 | this.pnlMemregions.SuspendLayout(); 70 | this.mnuPopup.SuspendLayout(); 71 | this.SuspendLayout(); 72 | // 73 | // pnlButtons 74 | // 75 | this.pnlButtons.Controls.Add(this.btnClose); 76 | this.pnlButtons.Controls.Add(this.btnExport); 77 | this.pnlButtons.Dock = System.Windows.Forms.DockStyle.Bottom; 78 | this.pnlButtons.Location = new System.Drawing.Point(0, 239); 79 | this.pnlButtons.Name = "pnlButtons"; 80 | this.pnlButtons.Padding = new System.Windows.Forms.Padding(6, 0, 6, 6); 81 | this.pnlButtons.Size = new System.Drawing.Size(384, 37); 82 | this.pnlButtons.TabIndex = 0; 83 | // 84 | // pnlText 85 | // 86 | this.pnlText.Controls.Add(this.splitContainer1); 87 | this.pnlText.Dock = System.Windows.Forms.DockStyle.Bottom; 88 | this.pnlText.Location = new System.Drawing.Point(0, 213); 89 | this.pnlText.Name = "pnlText"; 90 | this.pnlText.Padding = new System.Windows.Forms.Padding(6, 0, 6, 6); 91 | this.pnlText.Size = new System.Drawing.Size(384, 26); 92 | this.pnlText.TabIndex = 1; 93 | // 94 | // splitContainer1 95 | // 96 | this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; 97 | this.splitContainer1.IsSplitterFixed = true; 98 | this.splitContainer1.Location = new System.Drawing.Point(6, 0); 99 | this.splitContainer1.Name = "splitContainer1"; 100 | // 101 | // splitContainer1.Panel1 102 | // 103 | this.splitContainer1.Panel1.Controls.Add(this.txtRAM); 104 | // 105 | // splitContainer1.Panel2 106 | // 107 | this.splitContainer1.Panel2.Controls.Add(this.txtFile); 108 | this.splitContainer1.Size = new System.Drawing.Size(372, 20); 109 | this.splitContainer1.SplitterDistance = 186; 110 | this.splitContainer1.TabIndex = 1; 111 | // 112 | // txtRAM 113 | // 114 | this.txtRAM.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; 115 | this.txtRAM.Dock = System.Windows.Forms.DockStyle.Fill; 116 | this.txtRAM.Location = new System.Drawing.Point(0, 0); 117 | this.txtRAM.MaxLength = 8; 118 | this.txtRAM.Name = "txtRAM"; 119 | this.txtRAM.Size = new System.Drawing.Size(186, 20); 120 | this.txtRAM.TabIndex = 1; 121 | this.txtRAM.Text = "00000000"; 122 | this.txtRAM.TextChanged += new System.EventHandler(this.textChangeRamFile); 123 | // 124 | // txtFile 125 | // 126 | this.txtFile.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; 127 | this.txtFile.Dock = System.Windows.Forms.DockStyle.Fill; 128 | this.txtFile.Location = new System.Drawing.Point(0, 0); 129 | this.txtFile.MaxLength = 8; 130 | this.txtFile.Name = "txtFile"; 131 | this.txtFile.Size = new System.Drawing.Size(182, 20); 132 | this.txtFile.TabIndex = 2; 133 | this.txtFile.Text = "00000000"; 134 | this.txtFile.TextChanged += new System.EventHandler(this.textChangeRamFile); 135 | // 136 | // pnlTextLabels 137 | // 138 | this.pnlTextLabels.Controls.Add(this.splitContainer2); 139 | this.pnlTextLabels.Dock = System.Windows.Forms.DockStyle.Bottom; 140 | this.pnlTextLabels.Location = new System.Drawing.Point(0, 196); 141 | this.pnlTextLabels.Name = "pnlTextLabels"; 142 | this.pnlTextLabels.Size = new System.Drawing.Size(384, 17); 143 | this.pnlTextLabels.TabIndex = 2; 144 | // 145 | // splitContainer2 146 | // 147 | this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; 148 | this.splitContainer2.IsSplitterFixed = true; 149 | this.splitContainer2.Location = new System.Drawing.Point(0, 0); 150 | this.splitContainer2.Name = "splitContainer2"; 151 | // 152 | // splitContainer2.Panel1 153 | // 154 | this.splitContainer2.Panel1.Controls.Add(this.lblRAM); 155 | // 156 | // splitContainer2.Panel2 157 | // 158 | this.splitContainer2.Panel2.Controls.Add(this.lblFile); 159 | this.splitContainer2.Size = new System.Drawing.Size(384, 17); 160 | this.splitContainer2.SplitterDistance = 192; 161 | this.splitContainer2.TabIndex = 2; 162 | // 163 | // lblRAM 164 | // 165 | this.lblRAM.Dock = System.Windows.Forms.DockStyle.Fill; 166 | this.lblRAM.Location = new System.Drawing.Point(0, 0); 167 | this.lblRAM.Name = "lblRAM"; 168 | this.lblRAM.Size = new System.Drawing.Size(192, 17); 169 | this.lblRAM.TabIndex = 2; 170 | this.lblRAM.Text = "RAM Offset"; 171 | this.lblRAM.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 172 | // 173 | // lblFile 174 | // 175 | this.lblFile.Dock = System.Windows.Forms.DockStyle.Fill; 176 | this.lblFile.Location = new System.Drawing.Point(0, 0); 177 | this.lblFile.Name = "lblFile"; 178 | this.lblFile.Size = new System.Drawing.Size(188, 17); 179 | this.lblFile.TabIndex = 2; 180 | this.lblFile.Text = "File Offset"; 181 | this.lblFile.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 182 | // 183 | // pnlMainLabel 184 | // 185 | this.pnlMainLabel.Controls.Add(this.lblMain); 186 | this.pnlMainLabel.Dock = System.Windows.Forms.DockStyle.Top; 187 | this.pnlMainLabel.Location = new System.Drawing.Point(0, 0); 188 | this.pnlMainLabel.Name = "pnlMainLabel"; 189 | this.pnlMainLabel.Size = new System.Drawing.Size(384, 23); 190 | this.pnlMainLabel.TabIndex = 3; 191 | // 192 | // lblMain 193 | // 194 | this.lblMain.Dock = System.Windows.Forms.DockStyle.Fill; 195 | this.lblMain.Location = new System.Drawing.Point(0, 0); 196 | this.lblMain.Name = "lblMain"; 197 | this.lblMain.Size = new System.Drawing.Size(384, 23); 198 | this.lblMain.TabIndex = 0; 199 | this.lblMain.Text = "{filename}"; 200 | this.lblMain.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 201 | // 202 | // pnlMemregions 203 | // 204 | this.pnlMemregions.Controls.Add(this.lstHeader); 205 | this.pnlMemregions.Dock = System.Windows.Forms.DockStyle.Fill; 206 | this.pnlMemregions.Location = new System.Drawing.Point(0, 23); 207 | this.pnlMemregions.Name = "pnlMemregions"; 208 | this.pnlMemregions.Padding = new System.Windows.Forms.Padding(6, 0, 6, 6); 209 | this.pnlMemregions.Size = new System.Drawing.Size(384, 173); 210 | this.pnlMemregions.TabIndex = 4; 211 | // 212 | // lstHeader 213 | // 214 | this.lstHeader.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 215 | this.ramFrom, 216 | this.ramTo, 217 | this.filePosition, 218 | this.dumpSize}); 219 | this.lstHeader.ContextMenuStrip = this.mnuPopup; 220 | this.lstHeader.Dock = System.Windows.Forms.DockStyle.Fill; 221 | this.lstHeader.FullRowSelect = true; 222 | this.lstHeader.GridLines = true; 223 | this.lstHeader.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; 224 | this.lstHeader.Location = new System.Drawing.Point(6, 0); 225 | this.lstHeader.Name = "lstHeader"; 226 | this.lstHeader.Size = new System.Drawing.Size(372, 167); 227 | this.lstHeader.TabIndex = 0; 228 | this.lstHeader.UseCompatibleStateImageBehavior = false; 229 | this.lstHeader.View = System.Windows.Forms.View.Details; 230 | this.lstHeader.Click += new System.EventHandler(this.lstHeader_Click); 231 | this.lstHeader.DoubleClick += new System.EventHandler(this.lstHeader_DoubleClick); 232 | // 233 | // ramFrom 234 | // 235 | this.ramFrom.Text = "RAM From"; 236 | // 237 | // ramTo 238 | // 239 | this.ramTo.Text = "RAM To"; 240 | // 241 | // filePosition 242 | // 243 | this.filePosition.Text = "File Position"; 244 | // 245 | // dumpSize 246 | // 247 | this.dumpSize.Text = "Dump Size"; 248 | // 249 | // mnuPopup 250 | // 251 | this.mnuPopup.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 252 | this.hexViewerToolStripMenuItem, 253 | this.exportRegionToolStripMenuItem}); 254 | this.mnuPopup.Name = "mnuPopup"; 255 | this.mnuPopup.Size = new System.Drawing.Size(148, 48); 256 | // 257 | // savXML 258 | // 259 | this.savXML.Filter = "XML File|*.xml"; 260 | this.savXML.Title = "Save Gateway Header as XML"; 261 | // 262 | // savRegion 263 | // 264 | this.savRegion.Filter = "RAM Region|*.bin|All Files|*.*"; 265 | // 266 | // exportRegionToolStripMenuItem 267 | // 268 | this.exportRegionToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.property_export; 269 | this.exportRegionToolStripMenuItem.Name = "exportRegionToolStripMenuItem"; 270 | this.exportRegionToolStripMenuItem.Size = new System.Drawing.Size(147, 22); 271 | this.exportRegionToolStripMenuItem.Text = "Export Region"; 272 | this.exportRegionToolStripMenuItem.Click += new System.EventHandler(this.exportRegionToolStripMenuItem_Click); 273 | // 274 | // hexViewerToolStripMenuItem 275 | // 276 | this.hexViewerToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.application_list; 277 | this.hexViewerToolStripMenuItem.Name = "hexViewerToolStripMenuItem"; 278 | this.hexViewerToolStripMenuItem.Size = new System.Drawing.Size(147, 22); 279 | this.hexViewerToolStripMenuItem.Text = "Hex Viewer"; 280 | this.hexViewerToolStripMenuItem.Click += new System.EventHandler(this.hexViewerToolStripMenuItem_Click); 281 | // 282 | // btnClose 283 | // 284 | this.btnClose.Cursor = System.Windows.Forms.Cursors.Hand; 285 | this.btnClose.Dock = System.Windows.Forms.DockStyle.Right; 286 | this.btnClose.Image = global::GatewayRAMTools.Properties.Resources.cross_circle; 287 | this.btnClose.Location = new System.Drawing.Point(268, 0); 288 | this.btnClose.Name = "btnClose"; 289 | this.btnClose.Size = new System.Drawing.Size(110, 31); 290 | this.btnClose.TabIndex = 1; 291 | this.btnClose.Text = "Close Window"; 292 | this.btnClose.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; 293 | this.btnClose.UseVisualStyleBackColor = true; 294 | this.btnClose.Click += new System.EventHandler(this.btnClose_Click); 295 | // 296 | // btnExport 297 | // 298 | this.btnExport.Cursor = System.Windows.Forms.Cursors.Hand; 299 | this.btnExport.Dock = System.Windows.Forms.DockStyle.Left; 300 | this.btnExport.Image = global::GatewayRAMTools.Properties.Resources.table_export; 301 | this.btnExport.Location = new System.Drawing.Point(6, 0); 302 | this.btnExport.Name = "btnExport"; 303 | this.btnExport.Size = new System.Drawing.Size(110, 31); 304 | this.btnExport.TabIndex = 0; 305 | this.btnExport.Text = "Export Header"; 306 | this.btnExport.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; 307 | this.btnExport.UseVisualStyleBackColor = true; 308 | this.btnExport.Click += new System.EventHandler(this.btnExport_Click); 309 | // 310 | // HeaderWindow 311 | // 312 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 313 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 314 | this.ClientSize = new System.Drawing.Size(384, 276); 315 | this.Controls.Add(this.pnlMemregions); 316 | this.Controls.Add(this.pnlMainLabel); 317 | this.Controls.Add(this.pnlTextLabels); 318 | this.Controls.Add(this.pnlText); 319 | this.Controls.Add(this.pnlButtons); 320 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 321 | this.MinimumSize = new System.Drawing.Size(400, 315); 322 | this.Name = "HeaderWindow"; 323 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 324 | this.Text = "Partition Table - "; 325 | this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.HeaderWindow_FormClosed); 326 | this.Load += new System.EventHandler(this.HeaderWindow_Load); 327 | this.pnlButtons.ResumeLayout(false); 328 | this.pnlText.ResumeLayout(false); 329 | this.splitContainer1.Panel1.ResumeLayout(false); 330 | this.splitContainer1.Panel1.PerformLayout(); 331 | this.splitContainer1.Panel2.ResumeLayout(false); 332 | this.splitContainer1.Panel2.PerformLayout(); 333 | ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit(); 334 | this.splitContainer1.ResumeLayout(false); 335 | this.pnlTextLabels.ResumeLayout(false); 336 | this.splitContainer2.Panel1.ResumeLayout(false); 337 | this.splitContainer2.Panel2.ResumeLayout(false); 338 | ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit(); 339 | this.splitContainer2.ResumeLayout(false); 340 | this.pnlMainLabel.ResumeLayout(false); 341 | this.pnlMemregions.ResumeLayout(false); 342 | this.mnuPopup.ResumeLayout(false); 343 | this.ResumeLayout(false); 344 | 345 | } 346 | 347 | #endregion 348 | 349 | private System.Windows.Forms.Panel pnlButtons; 350 | private System.Windows.Forms.Button btnClose; 351 | private System.Windows.Forms.Button btnExport; 352 | private System.Windows.Forms.Panel pnlText; 353 | private System.Windows.Forms.Panel pnlTextLabels; 354 | private System.Windows.Forms.Panel pnlMainLabel; 355 | private System.Windows.Forms.Label lblMain; 356 | private System.Windows.Forms.Panel pnlMemregions; 357 | private System.Windows.Forms.ListView lstHeader; 358 | private System.Windows.Forms.SplitContainer splitContainer1; 359 | private System.Windows.Forms.TextBox txtFile; 360 | private System.Windows.Forms.TextBox txtRAM; 361 | private System.Windows.Forms.SplitContainer splitContainer2; 362 | private System.Windows.Forms.Label lblRAM; 363 | private System.Windows.Forms.Label lblFile; 364 | private System.Windows.Forms.ColumnHeader ramFrom; 365 | private System.Windows.Forms.ColumnHeader ramTo; 366 | private System.Windows.Forms.ColumnHeader filePosition; 367 | private System.Windows.Forms.ColumnHeader dumpSize; 368 | private System.Windows.Forms.SaveFileDialog savXML; 369 | private System.Windows.Forms.ContextMenuStrip mnuPopup; 370 | private System.Windows.Forms.ToolStripMenuItem exportRegionToolStripMenuItem; 371 | private System.Windows.Forms.SaveFileDialog savRegion; 372 | private System.Windows.Forms.ToolStripMenuItem hexViewerToolStripMenuItem; 373 | } 374 | } -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/HeaderWindow.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.Xml; 9 | using System.Xml.Serialization; 10 | using System.IO; 11 | using System.Windows.Forms; 12 | 13 | namespace GatewayRAMTools 14 | { 15 | public partial class HeaderWindow : Form 16 | { 17 | public GWFileHeader binfile = new GWFileHeader(); 18 | 19 | public HeaderWindow() 20 | { 21 | InitializeComponent(); 22 | } 23 | 24 | public bool validHex(string test) 25 | { 26 | return System.Text.RegularExpressions.Regex.IsMatch(test, @"\A\b[0-9a-fA-F]+\b\Z"); 27 | } 28 | 29 | private void HeaderWindow_FormClosed(object sender, FormClosedEventArgs e) 30 | { 31 | this.Dispose(); 32 | } 33 | 34 | private void HeaderWindow_Load(object sender, EventArgs e) 35 | { 36 | ListViewItem lsi = new ListViewItem(); 37 | lblMain.Text = binfile.fileName; 38 | this.Text += binfile.fileName; 39 | for ( int i = 0; i < binfile.memRegionCount; i++) 40 | { 41 | lsi = lstHeader.Items.Add(binfile.memRegions[i][0].ToString("X8")); 42 | lsi.SubItems.Add(binfile.memRegions[i][1].ToString("X8")); 43 | lsi.SubItems.Add(binfile.memRegions[i][2].ToString("X8")); 44 | lsi.SubItems.Add(binfile.memRegions[i][3].ToString("X8")); 45 | lsi.Tag = i; 46 | } 47 | resizeColumns(); 48 | } 49 | 50 | private void resizeColumns() 51 | { 52 | int[] mins = new int[] { 85, 85, 85, 85 }; 53 | foreach (ColumnHeader colhi in lstHeader.Columns) 54 | { 55 | colhi.Width = -2; 56 | if (colhi.Width < mins[colhi.Index]) colhi.Width = mins[colhi.Index]; 57 | } 58 | } 59 | 60 | private void btnClose_Click(object sender, EventArgs e) 61 | { 62 | this.Close(); 63 | } 64 | 65 | private void btnExport_Click(object sender, EventArgs e) 66 | { 67 | string xml_out_s = ""; 68 | XmlSerializer xsSubmit = new XmlSerializer(typeof(GWFileHeader)); 69 | using (StringWriter xml_out_w = new StringWriter()) 70 | using (XmlWriter writer = XmlWriter.Create(xml_out_w, new XmlWriterSettings { Indent = true })) 71 | { 72 | xsSubmit.Serialize(writer, binfile); 73 | xml_out_s = xml_out_w.ToString(); // Your XML 74 | } 75 | 76 | if (savXML.ShowDialog() == DialogResult.OK) 77 | { 78 | System.IO.File.WriteAllText(savXML.FileName, xml_out_s); 79 | } 80 | 81 | } 82 | 83 | private void lstHeader_DoubleClick(object sender, EventArgs e) 84 | { 85 | hexViewerToolStripMenuItem_Click(sender, e); 86 | } 87 | 88 | // Toggling TextBox Changes (stops infinate loop) 89 | private void textChangeRamFile(object sender, EventArgs e) 90 | { 91 | TextBox txtFrom = (TextBox)sender; 92 | TextBox txtTo = new TextBox(); 93 | int hexval = 0; 94 | 95 | int[] subcolumn = { 0, 0 }; 96 | 97 | if (txtFrom.Name == "txtRAM") 98 | { 99 | txtTo = txtFile; 100 | subcolumn[0] = 0; 101 | subcolumn[1] = 2; 102 | } 103 | else 104 | { 105 | txtTo = txtRAM; 106 | subcolumn[0] = 2; 107 | subcolumn[1] = 0; 108 | } 109 | 110 | txtTo.TextChanged -= this.textChangeRamFile; 111 | if (validHex(txtFrom.Text)) 112 | { 113 | hexval = int.Parse(txtFrom.Text, System.Globalization.NumberStyles.HexNumber); 114 | string ramout = "00000000"; 115 | foreach(ListViewItem lvi in lstHeader.Items) 116 | { 117 | int rfrom = int.Parse(lvi.SubItems[subcolumn[0]].Text, System.Globalization.NumberStyles.HexNumber); 118 | int rto = rfrom + int.Parse(lvi.SubItems[3].Text, System.Globalization.NumberStyles.HexNumber); 119 | if( (hexval >= rfrom) && (hexval <= rto )) 120 | { 121 | ramout = ((hexval-rfrom) + int.Parse(lvi.SubItems[subcolumn[1]].Text, System.Globalization.NumberStyles.HexNumber)).ToString("X8"); 122 | } 123 | } 124 | txtTo.Text = ramout; 125 | } else txtTo.Text = "00000000"; 126 | txtTo.TextChanged += this.textChangeRamFile; 127 | } 128 | 129 | private void exportRegionToolStripMenuItem_Click(object sender, EventArgs e) 130 | { 131 | long fileFrom = 0; 132 | long fileSize = 0; 133 | long ramFrom = 0; 134 | int bytesread = 0; 135 | var readbuffer = new byte[1024]; 136 | ListViewItem item = new ListViewItem(); 137 | 138 | if (lstHeader.FocusedItem != null) 139 | { 140 | item = lstHeader.FocusedItem; 141 | fileFrom = int.Parse(item.SubItems[2].Text, System.Globalization.NumberStyles.HexNumber); 142 | fileSize = int.Parse(item.SubItems[3].Text, System.Globalization.NumberStyles.HexNumber); 143 | ramFrom = int.Parse(item.SubItems[0].Text, System.Globalization.NumberStyles.HexNumber); 144 | savRegion.FileName = Path.GetFileNameWithoutExtension(binfile.fileName) + " " + ramFrom.ToString("X8") + "-" + (ramFrom + fileSize).ToString("X8") + ".bin"; 145 | if (savRegion.ShowDialog() == DialogResult.OK) 146 | { 147 | using (FileStream filer = File.OpenRead(binfile.filePath)) 148 | { 149 | using (FileStream filew = File.Create(savRegion.FileName)) 150 | { 151 | filer.Seek(fileFrom, 0); 152 | while (filew.Position < fileSize) 153 | { 154 | int thisblock = (int)((fileFrom + fileSize) - filew.Position); 155 | if (thisblock > readbuffer.Length) thisblock = readbuffer.Length; 156 | bytesread = filer.Read(readbuffer, 0, thisblock); 157 | filew.Write(readbuffer, 0, bytesread); 158 | } 159 | filew.Flush(); 160 | } 161 | } 162 | } 163 | } 164 | } 165 | 166 | private void hexViewerToolStripMenuItem_Click(object sender, EventArgs e) 167 | { 168 | // Hexwindow 169 | if (lstHeader.SelectedItems[0] != null) 170 | { 171 | HexWindow hwin = new HexWindow(); 172 | hwin.rDump = binfile; 173 | hwin.memRegion = (int)lstHeader.SelectedItems[0].Tag; 174 | //hwin.startoffset = int.Parse(lstHeader.SelectedItems[0].SubItems[2].Text,System.Globalization.NumberStyles.HexNumber); 175 | //hwin.offsetsize = int.Parse(lstHeader.SelectedItems[0].SubItems[3].Text, System.Globalization.NumberStyles.HexNumber); 176 | //hwin.ramoffset = int.Parse(lstHeader.SelectedItems[0].SubItems[0].Text, System.Globalization.NumberStyles.HexNumber); 177 | hwin.Show(); 178 | } 179 | } 180 | 181 | private void lstHeader_Click(object sender, EventArgs e) 182 | { 183 | if (lstHeader.FocusedItem.Index >= 0) 184 | { 185 | txtRAM.Text = lstHeader.FocusedItem.Text; 186 | // txtFile.Text = lstHeader.FocusedItem.SubItems[2].Text; 187 | } 188 | } 189 | } 190 | } 191 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/HeaderWindow.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 | 110, 17 122 | 123 | 124 | 17, 17 125 | 126 | 127 | 222, 17 128 | 129 | 130 | 131 | 132 | AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA 133 | AAAAAAATAAAALQkJCW0ICAiBBQUFgQQEBIEEBASDBAQEgwUFBYMGBgaDCAgIgwkJCYMKCgqDCQkJbQAA 134 | AC0AAAATAAAACQAAABcaGhpz6urq/9/f3//W1tb/09LS/8LAvP+0uKz/tb+u/77Luf/J2Mf/1+bW/xoa 135 | GnMAAAAXAAAACf///wH///8BLS0taebm5v/Q0ND/vb29/7m5uf+oqKL/nKKT/6Gtmf+vvqn/wM69/9Xi 136 | 0/8uLi5r////Af///wH///8B////AUBAQGXm5ub/0NDQ/729vf+5ubn/qKii/52ik/+jrJr/sb2q/8LO 137 | vv/X4tT/QUFBZ////wH///8B////Af///wFMTExn6urq/9/f3//W1tb/09LS/8PAvP+4t63/ur6x/8PK 138 | vP/Q2Mr/3ubZ/0xMTGv///8B////Af///wH///8BTk5OM2xsbLObm5v/mZmZ/4+Pj/98fHz/eHh4/4CA 139 | gP+MjIz/m5ub/3V1dbdOTk43////Af///wH///8B////AU5OTmfm5ub/0NDQ/729vf+6ubn/qqei/6Gg 140 | lf+pq57/uLyv/8rNwv/f4tj/Tk5Oa////wH///8B////Af///wFOTk5n5ubm/9DQ0P+9vb3/urm5/6qm 141 | ov+jn5b/q6qf/7u8sP/NzcT/4uLa/05OTmv///8B////Af///wH///8BTk5OZ+bm5v/Q0ND/vb29/7q5 142 | uf+rpaL/pZ+X/66qoP++u7L/0M3F/+Xi2/9OTk5r////Af///wH///8B////AU5OTmfq6ur/39/f/9bW 143 | 1v/T0tL/xb68/7+2sf/Fvbf/0MrD/97Y0v/s5uD/Tk5Oa////wH///8B////Af///wFOTk4zbGxss5ub 144 | m/+ZmZn/j4+P/3x8fP94eHj/gICA/4yMjP+bm5v/dXV1t05OTjf///8B////Af///wH///8BTk5OZ+bm 145 | 5v/Q0ND/vb29/7q5uf+spKP/qZ2Z/7WopP/Gurb/2MzJ/+3i3/9OTk5r////Af///wH///8B////AU5O 146 | Tmfm5ub/0NDQ/729vf+6ubn/raSj/6ucmv+2qKX/yLq3/9vMyv/w4uD/Tk5Oa////wH///8B////Af// 147 | /wFOTk5n5ubm/9DQ0P+9vb3/urm5/62jo/+rnJv/uKem/8q5uP/dzMv/8uLh/05OTmv///8B////Af// 148 | /wH///8BTk5OZ+rq6v/f39//1tbW/9PS0v/Hvb3/xbS0/868vP/bycn/6dfX//fm5v9OTk5r////Af// 149 | /wH///8B////AVVVVU1VVVVnVVVVZ1VVVWdVVVVnVVVVZ1VVVWdVVVVnVVVVZ1VVVWdVVVVnVVVVTf// 150 | /wH///8BAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA 151 | //8AAP//AAD//w== 152 | 153 | 154 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/HexWindow.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace GatewayRAMTools 2 | { 3 | partial class HexWindow 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(HexWindow)); 32 | this.mnuHexMain = new System.Windows.Forms.MenuStrip(); 33 | this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 34 | this.closeWindowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 35 | this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 36 | this.goToToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 37 | this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); 38 | this.offsetColumnToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 39 | this.offsetsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 40 | this.dataViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 41 | this.statusHex = new System.Windows.Forms.StatusStrip(); 42 | this.lblOffset = new System.Windows.Forms.ToolStripStatusLabel(); 43 | this.pnlHexView = new System.Windows.Forms.Panel(); 44 | this.hexView = new Be.Windows.Forms.HexBox(); 45 | this.savHex = new System.Windows.Forms.SaveFileDialog(); 46 | this.lblValue = new System.Windows.Forms.ToolStripStatusLabel(); 47 | this.mnuHexMain.SuspendLayout(); 48 | this.statusHex.SuspendLayout(); 49 | this.pnlHexView.SuspendLayout(); 50 | this.SuspendLayout(); 51 | // 52 | // mnuHexMain 53 | // 54 | this.mnuHexMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 55 | this.fileToolStripMenuItem, 56 | this.viewToolStripMenuItem}); 57 | this.mnuHexMain.Location = new System.Drawing.Point(0, 0); 58 | this.mnuHexMain.Name = "mnuHexMain"; 59 | this.mnuHexMain.Size = new System.Drawing.Size(534, 24); 60 | this.mnuHexMain.TabIndex = 1; 61 | this.mnuHexMain.Text = "menuStrip1"; 62 | // 63 | // fileToolStripMenuItem 64 | // 65 | this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 66 | this.closeWindowToolStripMenuItem}); 67 | this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; 68 | this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); 69 | this.fileToolStripMenuItem.Text = "File"; 70 | // 71 | // closeWindowToolStripMenuItem 72 | // 73 | this.closeWindowToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.cross_circle; 74 | this.closeWindowToolStripMenuItem.Name = "closeWindowToolStripMenuItem"; 75 | this.closeWindowToolStripMenuItem.Size = new System.Drawing.Size(150, 22); 76 | this.closeWindowToolStripMenuItem.Text = "Close Window"; 77 | this.closeWindowToolStripMenuItem.Click += new System.EventHandler(this.closeWindowToolStripMenuItem_Click); 78 | // 79 | // viewToolStripMenuItem 80 | // 81 | this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 82 | this.goToToolStripMenuItem, 83 | this.toolStripSeparator1, 84 | this.offsetColumnToolStripMenuItem, 85 | this.offsetsToolStripMenuItem, 86 | this.dataViewToolStripMenuItem}); 87 | this.viewToolStripMenuItem.Name = "viewToolStripMenuItem"; 88 | this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20); 89 | this.viewToolStripMenuItem.Text = "View"; 90 | // 91 | // goToToolStripMenuItem 92 | // 93 | this.goToToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.receipt_arrow; 94 | this.goToToolStripMenuItem.Name = "goToToolStripMenuItem"; 95 | this.goToToolStripMenuItem.Size = new System.Drawing.Size(163, 22); 96 | this.goToToolStripMenuItem.Text = "Go To Offset..."; 97 | this.goToToolStripMenuItem.Click += new System.EventHandler(this.goToToolStripMenuItem_Click); 98 | // 99 | // toolStripSeparator1 100 | // 101 | this.toolStripSeparator1.Name = "toolStripSeparator1"; 102 | this.toolStripSeparator1.Size = new System.Drawing.Size(160, 6); 103 | // 104 | // offsetColumnToolStripMenuItem 105 | // 106 | this.offsetColumnToolStripMenuItem.Checked = true; 107 | this.offsetColumnToolStripMenuItem.CheckOnClick = true; 108 | this.offsetColumnToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; 109 | this.offsetColumnToolStripMenuItem.Name = "offsetColumnToolStripMenuItem"; 110 | this.offsetColumnToolStripMenuItem.Size = new System.Drawing.Size(163, 22); 111 | this.offsetColumnToolStripMenuItem.Text = "Column Headers"; 112 | this.offsetColumnToolStripMenuItem.Click += new System.EventHandler(this.offsetColumnToolStripMenuItem_Click); 113 | // 114 | // offsetsToolStripMenuItem 115 | // 116 | this.offsetsToolStripMenuItem.Checked = true; 117 | this.offsetsToolStripMenuItem.CheckOnClick = true; 118 | this.offsetsToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; 119 | this.offsetsToolStripMenuItem.Name = "offsetsToolStripMenuItem"; 120 | this.offsetsToolStripMenuItem.Size = new System.Drawing.Size(163, 22); 121 | this.offsetsToolStripMenuItem.Text = "RAM Offsets"; 122 | this.offsetsToolStripMenuItem.Click += new System.EventHandler(this.offsetsToolStripMenuItem_Click); 123 | // 124 | // dataViewToolStripMenuItem 125 | // 126 | this.dataViewToolStripMenuItem.Checked = true; 127 | this.dataViewToolStripMenuItem.CheckOnClick = true; 128 | this.dataViewToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; 129 | this.dataViewToolStripMenuItem.Name = "dataViewToolStripMenuItem"; 130 | this.dataViewToolStripMenuItem.Size = new System.Drawing.Size(163, 22); 131 | this.dataViewToolStripMenuItem.Text = "Data View"; 132 | this.dataViewToolStripMenuItem.Click += new System.EventHandler(this.dataViewToolStripMenuItem_Click); 133 | // 134 | // statusHex 135 | // 136 | this.statusHex.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 137 | this.lblOffset, 138 | this.lblValue}); 139 | this.statusHex.Location = new System.Drawing.Point(0, 337); 140 | this.statusHex.Name = "statusHex"; 141 | this.statusHex.Size = new System.Drawing.Size(534, 24); 142 | this.statusHex.TabIndex = 3; 143 | this.statusHex.Text = "statusStrip1"; 144 | // 145 | // lblOffset 146 | // 147 | this.lblOffset.Name = "lblOffset"; 148 | this.lblOffset.Size = new System.Drawing.Size(58, 19); 149 | this.lblOffset.Text = "{selected}"; 150 | // 151 | // pnlHexView 152 | // 153 | this.pnlHexView.Controls.Add(this.hexView); 154 | this.pnlHexView.Dock = System.Windows.Forms.DockStyle.Fill; 155 | this.pnlHexView.Location = new System.Drawing.Point(0, 24); 156 | this.pnlHexView.Name = "pnlHexView"; 157 | this.pnlHexView.Padding = new System.Windows.Forms.Padding(6, 0, 6, 0); 158 | this.pnlHexView.Size = new System.Drawing.Size(534, 313); 159 | this.pnlHexView.TabIndex = 4; 160 | // 161 | // hexView 162 | // 163 | this.hexView.ColumnInfoVisible = true; 164 | this.hexView.Dock = System.Windows.Forms.DockStyle.Fill; 165 | this.hexView.Font = new System.Drawing.Font("Segoe UI", 9F); 166 | this.hexView.LineInfoVisible = true; 167 | this.hexView.Location = new System.Drawing.Point(6, 0); 168 | this.hexView.Name = "hexView"; 169 | this.hexView.ReadOnly = true; 170 | this.hexView.ShadowSelectionColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(60)))), ((int)(((byte)(188)))), ((int)(((byte)(255))))); 171 | this.hexView.Size = new System.Drawing.Size(522, 313); 172 | this.hexView.StringViewVisible = true; 173 | this.hexView.TabIndex = 3; 174 | this.hexView.VScrollBarVisible = true; 175 | this.hexView.SelectionStartChanged += new System.EventHandler(this.hexView_SelectionStartChanged); 176 | this.hexView.SelectionLengthChanged += new System.EventHandler(this.hexView_SelectionLengthChanged); 177 | // 178 | // savHex 179 | // 180 | this.savHex.Filter = "Binary File|*.bin|All Files|*.*"; 181 | // 182 | // lblValue 183 | // 184 | this.lblValue.BorderSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Left; 185 | this.lblValue.Name = "lblValue"; 186 | this.lblValue.Size = new System.Drawing.Size(47, 19); 187 | this.lblValue.Text = "{value}"; 188 | // 189 | // HexWindow 190 | // 191 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 192 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 193 | this.ClientSize = new System.Drawing.Size(534, 361); 194 | this.Controls.Add(this.pnlHexView); 195 | this.Controls.Add(this.statusHex); 196 | this.Controls.Add(this.mnuHexMain); 197 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 198 | this.MainMenuStrip = this.mnuHexMain; 199 | this.MinimumSize = new System.Drawing.Size(400, 350); 200 | this.Name = "HexWindow"; 201 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 202 | this.Text = "HexWindow"; 203 | this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.HexWindow_FormClosed); 204 | this.Load += new System.EventHandler(this.HexWindow_Load); 205 | this.mnuHexMain.ResumeLayout(false); 206 | this.mnuHexMain.PerformLayout(); 207 | this.statusHex.ResumeLayout(false); 208 | this.statusHex.PerformLayout(); 209 | this.pnlHexView.ResumeLayout(false); 210 | this.ResumeLayout(false); 211 | this.PerformLayout(); 212 | 213 | } 214 | 215 | #endregion 216 | private System.Windows.Forms.MenuStrip mnuHexMain; 217 | private System.Windows.Forms.ToolStripMenuItem viewToolStripMenuItem; 218 | private System.Windows.Forms.ToolStripMenuItem offsetColumnToolStripMenuItem; 219 | private System.Windows.Forms.ToolStripMenuItem dataViewToolStripMenuItem; 220 | private System.Windows.Forms.ToolStripMenuItem offsetsToolStripMenuItem; 221 | private System.Windows.Forms.StatusStrip statusHex; 222 | private System.Windows.Forms.ToolStripStatusLabel lblOffset; 223 | private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; 224 | private System.Windows.Forms.ToolStripMenuItem closeWindowToolStripMenuItem; 225 | private System.Windows.Forms.Panel pnlHexView; 226 | private Be.Windows.Forms.HexBox hexView; 227 | private System.Windows.Forms.SaveFileDialog savHex; 228 | private System.Windows.Forms.ToolStripMenuItem goToToolStripMenuItem; 229 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; 230 | private System.Windows.Forms.ToolStripStatusLabel lblValue; 231 | } 232 | } -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/HexWindow.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.ComponentModel.Design; 9 | using System.Windows.Forms; 10 | using System.IO; 11 | using Be.Windows.Forms; 12 | 13 | namespace GatewayRAMTools 14 | { 15 | public partial class HexWindow : Form 16 | { 17 | public GWFileHeader rDump; 18 | public int memRegion; 19 | public int gotoOffset = 0; 20 | public int selectLength = 0; 21 | byte[] bytereader; 22 | 23 | public HexWindow() 24 | { 25 | InitializeComponent(); 26 | } 27 | 28 | private void HexWindow_Load(object sender, EventArgs e) 29 | { 30 | // DynamicFileByteProvider dbfp; 31 | using (BinaryReader reader = new BinaryReader(File.Open(rDump.filePath, FileMode.Open))) 32 | { 33 | reader.BaseStream.Position = rDump.memRegions[memRegion][2]; 34 | bytereader = reader.ReadBytes(rDump.memRegions[memRegion][3]); 35 | } 36 | DynamicByteProvider dbp = new DynamicByteProvider(bytereader); 37 | hexView.ByteProvider = dbp; 38 | hexView.LineInfoOffset = rDump.memRegions[memRegion][0]; 39 | this.Text = "Hex View (" + rDump.memRegions[memRegion][0].ToString("X8") + "-" + (rDump.memRegions[memRegion][0] + rDump.memRegions[memRegion][3]).ToString("X8") + ")"; 40 | if(gotoOffset > 0) 41 | { 42 | hexView.SelectionStart = (gotoOffset - rDump.memRegions[memRegion][0]); 43 | hexView.SelectionLength = selectLength; 44 | hexView.ScrollByteIntoView(); 45 | } 46 | hexView_SelectionStartChanged(sender, e); 47 | hexView_SelectionLengthChanged(sender, e); 48 | // dbp.Bytes; 49 | } 50 | 51 | private void offsetColumnToolStripMenuItem_Click(object sender, EventArgs e) 52 | { 53 | ToolStripMenuItem comefrom = (ToolStripMenuItem)sender; 54 | hexView.ColumnInfoVisible = comefrom.Checked; 55 | } 56 | 57 | private void offsetsToolStripMenuItem_Click(object sender, EventArgs e) 58 | { 59 | ToolStripMenuItem comefrom = (ToolStripMenuItem)sender; 60 | hexView.LineInfoVisible = comefrom.Checked; 61 | } 62 | 63 | private void dataViewToolStripMenuItem_Click(object sender, EventArgs e) 64 | { 65 | ToolStripMenuItem comefrom = (ToolStripMenuItem)sender; 66 | hexView.StringViewVisible = comefrom.Checked; 67 | } 68 | 69 | private void hexView_SelectionStartChanged(object sender, EventArgs e) 70 | { 71 | lblOffset.Text = "Cursor: " + (hexView.SelectionStart+hexView.LineInfoOffset).ToString("X8"); 72 | lblValue.Text = ""; 73 | } 74 | 75 | private void hexView_SelectionLengthChanged(object sender, EventArgs e) 76 | { 77 | if(hexView.SelectionLength>0) 78 | lblOffset.Text = "Cursor: " + (hexView.SelectionStart + hexView.LineInfoOffset).ToString("X8")+"-"+ (hexView.SelectionStart + hexView.LineInfoOffset+hexView.SelectionLength).ToString("X8"); 79 | 80 | if( (hexView.SelectionLength>0) && (hexView.SelectionLength <= 4)) 81 | { 82 | string selbase; 83 | string selSvalue; 84 | string selUvalue; 85 | switch (hexView.SelectionLength) 86 | { 87 | case 1: 88 | selbase = "8Bit"; 89 | selSvalue = bytereader[(int)hexView.SelectionStart].ToString(); 90 | selUvalue = bytereader[(int)hexView.SelectionStart].ToString(); 91 | break; 92 | case 2: 93 | selbase = "16Bit"; 94 | selSvalue = BitConverter.ToInt16(bytereader, (int)hexView.SelectionStart).ToString(); 95 | selUvalue = BitConverter.ToUInt16(bytereader, (int)hexView.SelectionStart).ToString(); 96 | break; 97 | case 4: 98 | selbase = "32Bit"; 99 | selSvalue = BitConverter.ToInt32(bytereader, (int)hexView.SelectionStart).ToString(); 100 | selUvalue = BitConverter.ToUInt32(bytereader, (int)hexView.SelectionStart).ToString(); 101 | break; 102 | default: 103 | selbase = ""; 104 | selSvalue = ""; 105 | selUvalue = ""; 106 | break; 107 | } 108 | if (selbase != "") 109 | { 110 | lblValue.Text = selbase + ": " + selUvalue; 111 | if( selSvalue != selUvalue) lblValue.Text += " (Signed: " + selSvalue + ")"; 112 | } 113 | else lblValue.Text = ""; 114 | } else lblValue.Text = ""; 115 | } 116 | 117 | private void closeWindowToolStripMenuItem_Click(object sender, EventArgs e) 118 | { 119 | this.Close(); 120 | } 121 | 122 | private void HexWindow_FormClosed(object sender, FormClosedEventArgs e) 123 | { 124 | this.Dispose(); 125 | } 126 | 127 | private void goToToolStripMenuItem_Click(object sender, EventArgs e) 128 | { 129 | GoToDialog gtd = new GoToDialog(); 130 | gtd.offsetVal = (hexView.SelectionStart+hexView.LineInfoOffset).ToString("X8"); 131 | if( gtd.ShowDialog() == DialogResult.OK) 132 | { 133 | long offsetval = 0; 134 | try 135 | { 136 | offsetval = long.Parse(gtd.offsetVal,System.Globalization.NumberStyles.HexNumber); 137 | } 138 | catch { MessageBox.Show("Invalid Offset Entered"); } 139 | finally 140 | { 141 | offsetval = offsetval-hexView.LineInfoOffset; 142 | if ((offsetval < 0) || (offsetval > hexView.ByteProvider.Length)) 143 | { 144 | MessageBox.Show("Offset Entered Is Outside The Memory Region."); 145 | } 146 | else 147 | { 148 | hexView.Select(offsetval, 0); 149 | hexView.ScrollByteIntoView(); 150 | } 151 | } 152 | //hexView.ScrollByteIntoView(0); 153 | } 154 | 155 | } 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/HexWindow.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 | 132, 17 125 | 126 | 127 | 237, 17 128 | 129 | 130 | 131 | 132 | AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA 133 | AAD///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// 134 | /wH///8BAAAACQAAABcAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAA 135 | ABsAAAAXAAAACQ0NDWcQEBCFEBAQhRAQEIUQEBCFEBAQhRAQEIUQEBCFEBAQhRAQEIUQEBCFEBAQhRAQ 136 | EIUQEBCFEBAQhQ0NDWcnJyd76+vr/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn 137 | 5//n5+f/5+fn/+vr6/8nJyd7MjIyd+rq6v93d3f/4uLi/6ysrP/FxcX/rKys/+Li4v/i4uL/bnHC/+Li 138 | 4v+srKz/xcXF/6ysrP/q6ur/MjIydzg4OHPt7e3/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm 139 | 5v/m5ub/5ubm/+bm5v/m5ub/7e3t/zg4OHM+Pj5x8PDw//+ZZv/r6+v/wsLC/7Gxsf/CwsL/6+vr/+vr 140 | 6/8iqjP/6+vr/8LCwv+xsbH/wsLC//Dw8P8+Pj5xREREb/Pz8//v7+//7+/v/+/v7//v7+//7+/v/+/v 141 | 7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//z8/P/REREb0lJSW339/f/bnHC//T09P+2trb/x8fH/8fH 142 | x//09PT/9PT0/wCZ7v/09PT/tra2/8fHx//Hx8f/9/f3/0lJSW1NTU1r+vr6//j4+P/4+Pj/+Pj4//j4 143 | +P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//r6+v9NTU1rUVFRaf39/f8iqjP//Pz8/8PD 144 | w//MzMz/zMzM//z8/P/8/Pz//5lm//z8/P/Dw8P/zMzM/8zMzP/9/f3/UVFRaVVVVWf///////////// 145 | /////////////////////////////////////////////////////////////1VVVWdQUFBpu7u7/7q6 146 | uv+4uLj/tra2/7Ozs/+wsLD/rq6u/6urq/+oqKj/pqam/6Ojo/+goKD/np6e/5ycnP8DAwNnUlJSW8bG 147 | xtXc3Nz/2NnZ/9XV1f/Q0dH/zMzM/8jIyP/Gxsb/xsXF/8nFxf/Nxsb/0cfH/9fLy//EuLjVUlJSW1VV 148 | VSNVVVVZVVVVZ1VVVWdVVVVnVVVVZ1VVVWdVVVVnVVVVZ1VVVWdVVVVnVVVVZ1VVVWdVVVVnVVVVWVVV 149 | VSP///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af///wH///8B////Af// 150 | /wH///8BAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA 151 | //8AAP//AAD//w== 152 | 153 | 154 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/MainWindow.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace GatewayRAMTools 2 | { 3 | partial class frmMain 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain)); 32 | this.menuStrip1 = new System.Windows.Forms.MenuStrip(); 33 | this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 34 | this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); 35 | this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 36 | this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); 37 | this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 38 | this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); 39 | this.pnlButtons = new System.Windows.Forms.Panel(); 40 | this.pnlListView = new System.Windows.Forms.Panel(); 41 | this.lstFiles = new System.Windows.Forms.ListView(); 42 | this.filename = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 43 | this.size = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 44 | this.type = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 45 | this.filepath = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 46 | this.dgAddFiles = new System.Windows.Forms.OpenFileDialog(); 47 | this.pnlProgress = new System.Windows.Forms.Panel(); 48 | this.pbar = new System.Windows.Forms.ProgressBar(); 49 | this.btnRemove = new System.Windows.Forms.Button(); 50 | this.btnAddFiles = new System.Windows.Forms.Button(); 51 | this.addFilesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 52 | this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 53 | this.selectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 54 | this.allToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 55 | this.noneToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 56 | this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); 57 | this.allGatewayToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 58 | this.allRAWToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 59 | this.viewSelectedPartitionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 60 | this.exportRAWRAMDumpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 61 | this.cheatFinderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 62 | this.pointerAddressSearchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 63 | this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 64 | this.supportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 65 | this.projectHomepageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 66 | this.menuStrip1.SuspendLayout(); 67 | this.pnlButtons.SuspendLayout(); 68 | this.pnlListView.SuspendLayout(); 69 | this.pnlProgress.SuspendLayout(); 70 | this.SuspendLayout(); 71 | // 72 | // menuStrip1 73 | // 74 | this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 75 | this.fileToolStripMenuItem, 76 | this.toolsToolStripMenuItem, 77 | this.helpToolStripMenuItem}); 78 | this.menuStrip1.Location = new System.Drawing.Point(0, 0); 79 | this.menuStrip1.Name = "menuStrip1"; 80 | this.menuStrip1.Size = new System.Drawing.Size(384, 24); 81 | this.menuStrip1.TabIndex = 0; 82 | this.menuStrip1.Text = "menuStrip1"; 83 | // 84 | // fileToolStripMenuItem 85 | // 86 | this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 87 | this.addFilesToolStripMenuItem, 88 | this.toolStripSeparator1, 89 | this.exitToolStripMenuItem}); 90 | this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; 91 | this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); 92 | this.fileToolStripMenuItem.Text = "File"; 93 | // 94 | // toolStripSeparator1 95 | // 96 | this.toolStripSeparator1.Name = "toolStripSeparator1"; 97 | this.toolStripSeparator1.Size = new System.Drawing.Size(125, 6); 98 | // 99 | // toolsToolStripMenuItem 100 | // 101 | this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 102 | this.selectToolStripMenuItem, 103 | this.toolStripSeparator2, 104 | this.viewSelectedPartitionToolStripMenuItem, 105 | this.exportRAWRAMDumpToolStripMenuItem, 106 | this.cheatFinderToolStripMenuItem, 107 | this.pointerAddressSearchToolStripMenuItem}); 108 | this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem"; 109 | this.toolsToolStripMenuItem.Size = new System.Drawing.Size(47, 20); 110 | this.toolsToolStripMenuItem.Text = "Tools"; 111 | // 112 | // toolStripSeparator2 113 | // 114 | this.toolStripSeparator2.Name = "toolStripSeparator2"; 115 | this.toolStripSeparator2.Size = new System.Drawing.Size(197, 6); 116 | // 117 | // helpToolStripMenuItem 118 | // 119 | this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 120 | this.aboutToolStripMenuItem, 121 | this.toolStripSeparator3, 122 | this.supportToolStripMenuItem, 123 | this.projectHomepageToolStripMenuItem}); 124 | this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; 125 | this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20); 126 | this.helpToolStripMenuItem.Text = "Help"; 127 | // 128 | // toolStripSeparator3 129 | // 130 | this.toolStripSeparator3.Name = "toolStripSeparator3"; 131 | this.toolStripSeparator3.Size = new System.Drawing.Size(170, 6); 132 | // 133 | // pnlButtons 134 | // 135 | this.pnlButtons.Controls.Add(this.btnRemove); 136 | this.pnlButtons.Controls.Add(this.btnAddFiles); 137 | this.pnlButtons.Dock = System.Windows.Forms.DockStyle.Bottom; 138 | this.pnlButtons.Location = new System.Drawing.Point(0, 239); 139 | this.pnlButtons.Name = "pnlButtons"; 140 | this.pnlButtons.Padding = new System.Windows.Forms.Padding(6, 0, 6, 6); 141 | this.pnlButtons.Size = new System.Drawing.Size(384, 37); 142 | this.pnlButtons.TabIndex = 1; 143 | // 144 | // pnlListView 145 | // 146 | this.pnlListView.Controls.Add(this.lstFiles); 147 | this.pnlListView.Dock = System.Windows.Forms.DockStyle.Fill; 148 | this.pnlListView.Location = new System.Drawing.Point(0, 24); 149 | this.pnlListView.Name = "pnlListView"; 150 | this.pnlListView.Padding = new System.Windows.Forms.Padding(6, 0, 6, 6); 151 | this.pnlListView.Size = new System.Drawing.Size(384, 195); 152 | this.pnlListView.TabIndex = 2; 153 | // 154 | // lstFiles 155 | // 156 | this.lstFiles.CheckBoxes = true; 157 | this.lstFiles.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 158 | this.filename, 159 | this.size, 160 | this.type, 161 | this.filepath}); 162 | this.lstFiles.Dock = System.Windows.Forms.DockStyle.Fill; 163 | this.lstFiles.FullRowSelect = true; 164 | this.lstFiles.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; 165 | this.lstFiles.Location = new System.Drawing.Point(6, 0); 166 | this.lstFiles.MultiSelect = false; 167 | this.lstFiles.Name = "lstFiles"; 168 | this.lstFiles.Size = new System.Drawing.Size(372, 189); 169 | this.lstFiles.TabIndex = 3; 170 | this.lstFiles.UseCompatibleStateImageBehavior = false; 171 | this.lstFiles.View = System.Windows.Forms.View.Details; 172 | this.lstFiles.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.lstFiles_ItemChecked); 173 | this.lstFiles.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.lstFiles_ItemSelectionChanged); 174 | this.lstFiles.DoubleClick += new System.EventHandler(this.lstFiles_DoubleClick); 175 | // 176 | // filename 177 | // 178 | this.filename.Text = "Filename"; 179 | this.filename.Width = 54; 180 | // 181 | // size 182 | // 183 | this.size.Text = "Size"; 184 | this.size.Width = 32; 185 | // 186 | // type 187 | // 188 | this.type.Text = "Type"; 189 | this.type.Width = 36; 190 | // 191 | // filepath 192 | // 193 | this.filepath.Text = "File Path"; 194 | this.filepath.Width = 223; 195 | // 196 | // dgAddFiles 197 | // 198 | this.dgAddFiles.Filter = "RAM Dumps|*.bin|All Files|*.*"; 199 | this.dgAddFiles.Multiselect = true; 200 | this.dgAddFiles.Title = "RAM Dumps"; 201 | // 202 | // pnlProgress 203 | // 204 | this.pnlProgress.Controls.Add(this.pbar); 205 | this.pnlProgress.Dock = System.Windows.Forms.DockStyle.Bottom; 206 | this.pnlProgress.Location = new System.Drawing.Point(0, 219); 207 | this.pnlProgress.Name = "pnlProgress"; 208 | this.pnlProgress.Padding = new System.Windows.Forms.Padding(6, 0, 6, 6); 209 | this.pnlProgress.Size = new System.Drawing.Size(384, 20); 210 | this.pnlProgress.TabIndex = 4; 211 | this.pnlProgress.Visible = false; 212 | // 213 | // pbar 214 | // 215 | this.pbar.Dock = System.Windows.Forms.DockStyle.Fill; 216 | this.pbar.Location = new System.Drawing.Point(6, 0); 217 | this.pbar.Name = "pbar"; 218 | this.pbar.Size = new System.Drawing.Size(372, 14); 219 | this.pbar.TabIndex = 0; 220 | // 221 | // btnRemove 222 | // 223 | this.btnRemove.AutoSize = true; 224 | this.btnRemove.Cursor = System.Windows.Forms.Cursors.Hand; 225 | this.btnRemove.Dock = System.Windows.Forms.DockStyle.Right; 226 | this.btnRemove.Enabled = false; 227 | this.btnRemove.Image = global::GatewayRAMTools.Properties.Resources.document_minus; 228 | this.btnRemove.Location = new System.Drawing.Point(268, 0); 229 | this.btnRemove.Name = "btnRemove"; 230 | this.btnRemove.Size = new System.Drawing.Size(110, 31); 231 | this.btnRemove.TabIndex = 1; 232 | this.btnRemove.Text = "Remove Ticked"; 233 | this.btnRemove.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; 234 | this.btnRemove.UseVisualStyleBackColor = true; 235 | this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click); 236 | // 237 | // btnAddFiles 238 | // 239 | this.btnAddFiles.AutoSize = true; 240 | this.btnAddFiles.Cursor = System.Windows.Forms.Cursors.Hand; 241 | this.btnAddFiles.Dock = System.Windows.Forms.DockStyle.Left; 242 | this.btnAddFiles.Image = global::GatewayRAMTools.Properties.Resources.document_plus; 243 | this.btnAddFiles.Location = new System.Drawing.Point(6, 0); 244 | this.btnAddFiles.Name = "btnAddFiles"; 245 | this.btnAddFiles.Size = new System.Drawing.Size(110, 31); 246 | this.btnAddFiles.TabIndex = 0; 247 | this.btnAddFiles.Text = "Add Files.."; 248 | this.btnAddFiles.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; 249 | this.btnAddFiles.UseVisualStyleBackColor = true; 250 | this.btnAddFiles.Click += new System.EventHandler(this.btnAddFiles_Click); 251 | // 252 | // addFilesToolStripMenuItem 253 | // 254 | this.addFilesToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.document_plus; 255 | this.addFilesToolStripMenuItem.Name = "addFilesToolStripMenuItem"; 256 | this.addFilesToolStripMenuItem.Size = new System.Drawing.Size(128, 22); 257 | this.addFilesToolStripMenuItem.Text = "Add Files.."; 258 | this.addFilesToolStripMenuItem.Click += new System.EventHandler(this.addFilesToolStripMenuItem_Click); 259 | // 260 | // exitToolStripMenuItem 261 | // 262 | this.exitToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.cross_circle; 263 | this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; 264 | this.exitToolStripMenuItem.Size = new System.Drawing.Size(128, 22); 265 | this.exitToolStripMenuItem.Text = "Exit"; 266 | this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); 267 | // 268 | // selectToolStripMenuItem 269 | // 270 | this.selectToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 271 | this.allToolStripMenuItem, 272 | this.noneToolStripMenuItem, 273 | this.toolStripSeparator4, 274 | this.allGatewayToolStripMenuItem, 275 | this.allRAWToolStripMenuItem}); 276 | this.selectToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.node_magnifier; 277 | this.selectToolStripMenuItem.Name = "selectToolStripMenuItem"; 278 | this.selectToolStripMenuItem.Size = new System.Drawing.Size(200, 22); 279 | this.selectToolStripMenuItem.Text = "Select"; 280 | // 281 | // allToolStripMenuItem 282 | // 283 | this.allToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.node_select_all; 284 | this.allToolStripMenuItem.Name = "allToolStripMenuItem"; 285 | this.allToolStripMenuItem.Size = new System.Drawing.Size(136, 22); 286 | this.allToolStripMenuItem.Text = "All"; 287 | this.allToolStripMenuItem.Click += new System.EventHandler(this.allToolStripMenuItem_Click); 288 | // 289 | // noneToolStripMenuItem 290 | // 291 | this.noneToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.node; 292 | this.noneToolStripMenuItem.Name = "noneToolStripMenuItem"; 293 | this.noneToolStripMenuItem.Size = new System.Drawing.Size(136, 22); 294 | this.noneToolStripMenuItem.Text = "None"; 295 | this.noneToolStripMenuItem.Click += new System.EventHandler(this.noneToolStripMenuItem_Click); 296 | // 297 | // toolStripSeparator4 298 | // 299 | this.toolStripSeparator4.Name = "toolStripSeparator4"; 300 | this.toolStripSeparator4.Size = new System.Drawing.Size(133, 6); 301 | // 302 | // allGatewayToolStripMenuItem 303 | // 304 | this.allGatewayToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.node_select_previous; 305 | this.allGatewayToolStripMenuItem.Name = "allGatewayToolStripMenuItem"; 306 | this.allGatewayToolStripMenuItem.Size = new System.Drawing.Size(136, 22); 307 | this.allGatewayToolStripMenuItem.Text = "All Gateway"; 308 | this.allGatewayToolStripMenuItem.Click += new System.EventHandler(this.allRAWToolStripMenuItem_Click); 309 | // 310 | // allRAWToolStripMenuItem 311 | // 312 | this.allRAWToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.node_select_next; 313 | this.allRAWToolStripMenuItem.Name = "allRAWToolStripMenuItem"; 314 | this.allRAWToolStripMenuItem.Size = new System.Drawing.Size(136, 22); 315 | this.allRAWToolStripMenuItem.Text = "All RAW"; 316 | this.allRAWToolStripMenuItem.Click += new System.EventHandler(this.allRAWToolStripMenuItem_Click_1); 317 | // 318 | // viewSelectedPartitionToolStripMenuItem 319 | // 320 | this.viewSelectedPartitionToolStripMenuItem.Enabled = false; 321 | this.viewSelectedPartitionToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.database; 322 | this.viewSelectedPartitionToolStripMenuItem.Name = "viewSelectedPartitionToolStripMenuItem"; 323 | this.viewSelectedPartitionToolStripMenuItem.Size = new System.Drawing.Size(200, 22); 324 | this.viewSelectedPartitionToolStripMenuItem.Text = "View Selected Partition"; 325 | this.viewSelectedPartitionToolStripMenuItem.Click += new System.EventHandler(this.viewSelectedPartitionToolStripMenuItem_Click); 326 | // 327 | // exportRAWRAMDumpToolStripMenuItem 328 | // 329 | this.exportRAWRAMDumpToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.drive_download; 330 | this.exportRAWRAMDumpToolStripMenuItem.Name = "exportRAWRAMDumpToolStripMenuItem"; 331 | this.exportRAWRAMDumpToolStripMenuItem.Size = new System.Drawing.Size(200, 22); 332 | this.exportRAWRAMDumpToolStripMenuItem.Text = "Export RAW RAM Dump"; 333 | this.exportRAWRAMDumpToolStripMenuItem.Click += new System.EventHandler(this.exportRAWRAMDumpToolStripMenuItem_Click); 334 | // 335 | // cheatFinderToolStripMenuItem 336 | // 337 | this.cheatFinderToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.document_search_result; 338 | this.cheatFinderToolStripMenuItem.Name = "cheatFinderToolStripMenuItem"; 339 | this.cheatFinderToolStripMenuItem.Size = new System.Drawing.Size(200, 22); 340 | this.cheatFinderToolStripMenuItem.Text = "Fixed Address Search"; 341 | this.cheatFinderToolStripMenuItem.Click += new System.EventHandler(this.cheatFinderToolStripMenuItem_Click); 342 | // 343 | // pointerAddressSearchToolStripMenuItem 344 | // 345 | this.pointerAddressSearchToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.hand_point_090; 346 | this.pointerAddressSearchToolStripMenuItem.Name = "pointerAddressSearchToolStripMenuItem"; 347 | this.pointerAddressSearchToolStripMenuItem.Size = new System.Drawing.Size(200, 22); 348 | this.pointerAddressSearchToolStripMenuItem.Text = "Pointer Address Search"; 349 | this.pointerAddressSearchToolStripMenuItem.Click += new System.EventHandler(this.pointerAddressSearchToolStripMenuItem_Click); 350 | // 351 | // aboutToolStripMenuItem 352 | // 353 | this.aboutToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.stickman_smiley_question; 354 | this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; 355 | this.aboutToolStripMenuItem.Size = new System.Drawing.Size(173, 22); 356 | this.aboutToolStripMenuItem.Text = "About"; 357 | this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); 358 | // 359 | // supportToolStripMenuItem 360 | // 361 | this.supportToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.book_question; 362 | this.supportToolStripMenuItem.Name = "supportToolStripMenuItem"; 363 | this.supportToolStripMenuItem.Size = new System.Drawing.Size(173, 22); 364 | this.supportToolStripMenuItem.Text = "Support"; 365 | this.supportToolStripMenuItem.Click += new System.EventHandler(this.supportToolStripMenuItem_Click); 366 | // 367 | // projectHomepageToolStripMenuItem 368 | // 369 | this.projectHomepageToolStripMenuItem.Image = global::GatewayRAMTools.Properties.Resources.git; 370 | this.projectHomepageToolStripMenuItem.Name = "projectHomepageToolStripMenuItem"; 371 | this.projectHomepageToolStripMenuItem.Size = new System.Drawing.Size(173, 22); 372 | this.projectHomepageToolStripMenuItem.Text = "Project Homepage"; 373 | this.projectHomepageToolStripMenuItem.Click += new System.EventHandler(this.projectHomepageToolStripMenuItem_Click); 374 | // 375 | // frmMain 376 | // 377 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 378 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 379 | this.ClientSize = new System.Drawing.Size(384, 276); 380 | this.Controls.Add(this.pnlListView); 381 | this.Controls.Add(this.pnlProgress); 382 | this.Controls.Add(this.pnlButtons); 383 | this.Controls.Add(this.menuStrip1); 384 | this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 385 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 386 | this.MainMenuStrip = this.menuStrip1; 387 | this.MinimumSize = new System.Drawing.Size(400, 315); 388 | this.Name = "frmMain"; 389 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 390 | this.Text = "Gateway RAM Tools v"; 391 | this.Load += new System.EventHandler(this.frmMain_Load); 392 | this.menuStrip1.ResumeLayout(false); 393 | this.menuStrip1.PerformLayout(); 394 | this.pnlButtons.ResumeLayout(false); 395 | this.pnlButtons.PerformLayout(); 396 | this.pnlListView.ResumeLayout(false); 397 | this.pnlProgress.ResumeLayout(false); 398 | this.ResumeLayout(false); 399 | this.PerformLayout(); 400 | 401 | } 402 | 403 | #endregion 404 | 405 | private System.Windows.Forms.MenuStrip menuStrip1; 406 | private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; 407 | private System.Windows.Forms.ToolStripMenuItem addFilesToolStripMenuItem; 408 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; 409 | private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; 410 | private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem; 411 | private System.Windows.Forms.ToolStripMenuItem selectToolStripMenuItem; 412 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; 413 | private System.Windows.Forms.ToolStripMenuItem viewSelectedPartitionToolStripMenuItem; 414 | private System.Windows.Forms.ToolStripMenuItem exportRAWRAMDumpToolStripMenuItem; 415 | private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; 416 | private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; 417 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; 418 | private System.Windows.Forms.ToolStripMenuItem supportToolStripMenuItem; 419 | private System.Windows.Forms.ToolStripMenuItem projectHomepageToolStripMenuItem; 420 | private System.Windows.Forms.Panel pnlButtons; 421 | private System.Windows.Forms.Button btnRemove; 422 | private System.Windows.Forms.Button btnAddFiles; 423 | private System.Windows.Forms.Panel pnlListView; 424 | private System.Windows.Forms.ListView lstFiles; 425 | private System.Windows.Forms.ColumnHeader filename; 426 | private System.Windows.Forms.ColumnHeader size; 427 | private System.Windows.Forms.ColumnHeader type; 428 | private System.Windows.Forms.ColumnHeader filepath; 429 | private System.Windows.Forms.OpenFileDialog dgAddFiles; 430 | private System.Windows.Forms.ToolStripMenuItem allToolStripMenuItem; 431 | private System.Windows.Forms.ToolStripMenuItem noneToolStripMenuItem; 432 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; 433 | private System.Windows.Forms.ToolStripMenuItem allGatewayToolStripMenuItem; 434 | private System.Windows.Forms.ToolStripMenuItem allRAWToolStripMenuItem; 435 | private System.Windows.Forms.Panel pnlProgress; 436 | private System.Windows.Forms.ProgressBar pbar; 437 | private System.Windows.Forms.ToolStripMenuItem cheatFinderToolStripMenuItem; 438 | private System.Windows.Forms.ToolStripMenuItem pointerAddressSearchToolStripMenuItem; 439 | } 440 | } 441 | 442 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/MainWindow.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.Threading; 11 | using System.IO; 12 | 13 | namespace GatewayRAMTools 14 | { 15 | public partial class frmMain : Form 16 | { 17 | public frmMain() 18 | { 19 | InitializeComponent(); 20 | lstFiles.Columns.RemoveAt(3); 21 | resizeColumns(); 22 | this.Text += string.Format("{0}.{1}", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Major, System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Minor); 23 | } 24 | 25 | // Convert Bytes To Next Readable Format (Simple) 26 | public string filesizestring(double len) 27 | { 28 | string[] sizes = { "B", "KB", "MB", "GB", "TB" }; 29 | int order = 0; 30 | while (len >= 1024 && order + 1 < sizes.Length) 31 | { 32 | order++; 33 | len = len / 1024; 34 | } 35 | return String.Format("{0:0.##} {1}", len, sizes[order]); 36 | } 37 | 38 | private void btnAddFiles_Click(object sender, EventArgs e) 39 | { 40 | addFiles(); 41 | } 42 | 43 | private void exitToolStripMenuItem_Click(object sender, EventArgs e) 44 | { 45 | Close(); 46 | } 47 | 48 | private void addFiles() 49 | { 50 | GWFunctions gwf = new GWFunctions(); 51 | DialogResult dresult; 52 | dresult = dgAddFiles.ShowDialog(); 53 | if( dresult == DialogResult.OK) 54 | { 55 | for( int i = 0; i < dgAddFiles.FileNames.Length; i++) 56 | { 57 | if( !FileInList(dgAddFiles.FileNames[i]) ) 58 | { 59 | ListViewItem lvi = new ListViewItem(); 60 | lvi = lstFiles.Items.Add(Path.GetFileName(dgAddFiles.FileNames[i])); 61 | FileInfo f = new FileInfo(dgAddFiles.FileNames[i]); 62 | lvi.SubItems.Add(filesizestring(f.Length)); 63 | lvi.SubItems.Add("RAW"); 64 | if (gwf.isGatewayDump(dgAddFiles.FileNames[i])) lvi.SubItems[2].Text = "Gateway"; 65 | lvi.SubItems.Add(dgAddFiles.FileNames[i]); 66 | resizeColumns(); 67 | } 68 | } 69 | } 70 | } 71 | 72 | private void addFilesToolStripMenuItem_Click(object sender, EventArgs e) 73 | { 74 | addFiles(); 75 | } 76 | 77 | private bool FileInList( string fname) 78 | { 79 | bool result = false; 80 | for( int i = 0; i < lstFiles.Items.Count; i++) 81 | { 82 | if (lstFiles.Items[i].SubItems[3].Text == fname) result = true; 83 | } 84 | return result; 85 | } 86 | 87 | private void resizeColumns() 88 | { 89 | int[] mins = new int[] { 200, 75, 75, 200 }; 90 | foreach(ColumnHeader colhi in lstFiles.Columns) 91 | { 92 | colhi.Width = -2; 93 | if (colhi.Width < mins[colhi.Index]) colhi.Width = mins[colhi.Index]; 94 | } 95 | } 96 | 97 | private void lstFiles_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) 98 | { 99 | btnRemove.Enabled = (lstFiles.CheckedItems.Count > 0); 100 | viewSelectedPartitionToolStripMenuItem.Enabled = (lstFiles.SelectedItems.Count > 0); 101 | } 102 | 103 | private void lstFiles_ItemChecked(object sender, ItemCheckedEventArgs e) 104 | { 105 | btnRemove.Enabled = (lstFiles.CheckedItems.Count > 0); 106 | } 107 | 108 | private void btnRemove_Click(object sender, EventArgs e) 109 | { 110 | while (lstFiles.CheckedItems.Count > 0) 111 | { 112 | lstFiles.Items.RemoveAt(lstFiles.CheckedItems[0].Index); 113 | } 114 | } 115 | 116 | private void allRAWToolStripMenuItem_Click(object sender, EventArgs e) 117 | { 118 | foreach (ListViewItem lvi in lstFiles.Items) 119 | { 120 | lvi.Checked = (lvi.SubItems[2].Text != "RAW"); 121 | } 122 | } 123 | 124 | private void allToolStripMenuItem_Click(object sender, EventArgs e) 125 | { 126 | foreach (ListViewItem lvi in lstFiles.Items) 127 | { 128 | lvi.Checked = true; 129 | } 130 | } 131 | 132 | private void noneToolStripMenuItem_Click(object sender, EventArgs e) 133 | { 134 | foreach (ListViewItem lvi in lstFiles.Items) 135 | { 136 | lvi.Checked = false; 137 | } 138 | } 139 | 140 | private void allRAWToolStripMenuItem_Click_1(object sender, EventArgs e) 141 | { 142 | foreach (ListViewItem lvi in lstFiles.Items) 143 | { 144 | lvi.Checked = (lvi.SubItems[2].Text == "RAW"); 145 | } 146 | } 147 | 148 | private void exportRAWRAMDumpToolStripMenuItem_Click(object sender, EventArgs e) 149 | { 150 | List heads = new List(); 151 | GWFunctions gwf = new GWFunctions(); 152 | long tfSize = 0; 153 | int tregions = 0; 154 | 155 | foreach (ListViewItem lvi in lstFiles.CheckedItems) 156 | { 157 | if (lvi.SubItems[2].Text == "Gateway") 158 | { 159 | heads.Add(gwf.buildFromDump(lvi.SubItems[3].Text)); 160 | tfSize += heads[heads.Count - 1].rawsize; 161 | tregions += heads[heads.Count - 1].memRegionCount; 162 | } 163 | } 164 | 165 | if( heads.Count > 0) 166 | { 167 | string plural = "s"; 168 | if (heads.Count == 1) plural = ""; 169 | DialogResult confRes = MessageBox.Show(String.Format("Gateway RAM Tools will now create {0} RAW dump{1} totalling {2}.\r\nEach file will be in the same folder marked with '-raw'. Existing '-raw' files will be OVERWRITTEN.\r\n\r\nWould you like to continue?", heads.Count, plural, filesizestring(tfSize)),"Do You Want To Continue?",MessageBoxButtons.YesNo, MessageBoxIcon.Question); 170 | 171 | if( confRes == DialogResult.Yes) 172 | { 173 | pbar.Value = 0; 174 | pbar.Maximum = tregions; 175 | pnlProgress.Visible = true; 176 | exportRAWRAMDumpToolStripMenuItem.Enabled = false; 177 | Thread backgroundThread = new Thread( 178 | new ThreadStart(() => 179 | { 180 | for (int i = 0; i < heads.Count; i++) 181 | { 182 | gwf.dumpGWRAM(heads[i], pbar); 183 | } 184 | pnlProgress.BeginInvoke( 185 | new Action(() => 186 | { 187 | pnlProgress.Visible = false; 188 | } 189 | )); 190 | menuStrip1.BeginInvoke( 191 | new Action(() => 192 | { 193 | exportRAWRAMDumpToolStripMenuItem.Enabled = true; 194 | } 195 | )); 196 | MessageBox.Show("RAM Dumps have been sucessfull created.", "RAW RAM Dumping", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 197 | } 198 | )); 199 | backgroundThread.Start(); 200 | } 201 | } else 202 | { 203 | MessageBox.Show("There are no Gateway RAM Dumps Ticked.","No Gateway RAM TickedSelected",MessageBoxButtons.OK, MessageBoxIcon.Information); 204 | } 205 | } 206 | 207 | private void aboutToolStripMenuItem_Click(object sender, EventArgs e) 208 | { 209 | string appversion = string.Format("{0}.{1}",System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Major, System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Minor); 210 | long buildversion = (System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Build*100000) + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Revision; 211 | MessageBox.Show(String.Format("Created By: xJam.es\r\nProject Started: 20th Jan 2016\r\nVersion: {0} (Build {1:X8})\r\n----------\r\nThanks To:\r\n* The Gateway Team\r\n* Maxconsole.com Forums\r\n* msparky76\r\n* makikatze\r\n* storm75x (Fort42)\r\n* bernhardelbl (Be.HexEditor)", appversion, buildversion),"About Gateway RAM Tools",MessageBoxButtons.OK, MessageBoxIcon.Information); 212 | } 213 | 214 | private void supportToolStripMenuItem_Click(object sender, EventArgs e) 215 | { 216 | System.Diagnostics.Process.Start("http://www.maxconsole.com/maxcon_forums/threads/293584-Tool-Gateway-RAM-Tools"); 217 | } 218 | 219 | private void projectHomepageToolStripMenuItem_Click(object sender, EventArgs e) 220 | { 221 | System.Diagnostics.Process.Start("https://github.com/xJam-es/GatewayRAMTools"); 222 | } 223 | 224 | private void viewSelectedPartitionToolStripMenuItem_Click(object sender, EventArgs e) 225 | { 226 | HeaderWindow newhrd = new HeaderWindow(); 227 | GWFunctions gwf = new GWFunctions(); 228 | newhrd.binfile = gwf.buildFromDump(lstFiles.SelectedItems[0].SubItems[3].Text); 229 | newhrd.Show(); 230 | } 231 | 232 | private void lstFiles_DoubleClick(object sender, EventArgs e) 233 | { 234 | ListView lstsend = (ListView)sender; 235 | if( lstsend.SelectedItems.Count == 1) 236 | { 237 | viewSelectedPartitionToolStripMenuItem_Click(sender, e); 238 | lstsend.FocusedItem.Checked = !lstsend.FocusedItem.Checked; 239 | } 240 | } 241 | 242 | private void cheatFinderToolStripMenuItem_Click(object sender, EventArgs e) 243 | { 244 | List cheatFiles = new List(); 245 | GWFunctions gwf = new GWFunctions(); 246 | string SHAmatch = null; 247 | bool doMatch = true; 248 | 249 | foreach( ListViewItem lvi in lstFiles.CheckedItems) 250 | { 251 | cheatFiles.Add(gwf.buildFromDump(lvi.SubItems[3].Text)); 252 | if(SHAmatch == null) 253 | { 254 | SHAmatch = cheatFiles[cheatFiles.Count - 1].headerSHA1; 255 | } else 256 | { 257 | if (SHAmatch != cheatFiles[cheatFiles.Count - 1].headerSHA1) doMatch = false; 258 | } 259 | } 260 | 261 | if ((cheatFiles.Count > 0) && doMatch) 262 | { 263 | FixedAddrWindow cht = new FixedAddrWindow(); 264 | cht.cheatFiles = cheatFiles; 265 | cht.Show(); 266 | } 267 | else 268 | { 269 | if (!doMatch) MessageBox.Show("The layout of your RAM Dumps do not match. You cannot mix RAW/Gateway & all RAM dumps selected must be from the same game.", "Cheat Finder Error", MessageBoxButtons.OK, MessageBoxIcon.Information); 270 | else MessageBox.Show("You must have at least 1 RAM Dump ticked before searching.", "Cheat Finder Error", MessageBoxButtons.OK, MessageBoxIcon.Information); 271 | } 272 | } 273 | 274 | private void frmMain_Load(object sender, EventArgs e) 275 | { 276 | DateTime dt = new DateTime(); 277 | if ((dt.Day == 1) && (dt.Month == 4)) pointerAddressSearchToolStripMenuItem.Image = Properties.Resources.hand_finger; 278 | } 279 | 280 | private void pointerAddressSearchToolStripMenuItem_Click(object sender, EventArgs e) 281 | { 282 | List cheatFiles = new List(); 283 | GWFunctions gwf = new GWFunctions(); 284 | string SHAmatch = null; 285 | bool doMatch = true; 286 | 287 | foreach (ListViewItem lvi in lstFiles.CheckedItems) 288 | { 289 | cheatFiles.Add(gwf.buildFromDump(lvi.SubItems[3].Text)); 290 | if (SHAmatch == null) 291 | { 292 | SHAmatch = cheatFiles[cheatFiles.Count - 1].headerSHA1; 293 | } 294 | else 295 | { 296 | if (SHAmatch != cheatFiles[cheatFiles.Count - 1].headerSHA1) doMatch = false; 297 | } 298 | } 299 | 300 | if ((cheatFiles.Count > 0) && doMatch) 301 | { 302 | PointerAddrWindow paddwin = new PointerAddrWindow(); 303 | paddwin.ramDumps = cheatFiles; 304 | paddwin.Show(); 305 | } 306 | else 307 | { 308 | if (!doMatch) MessageBox.Show("The layout of your RAM Dumps do not match. You cannot mix RAW/Gateway & all RAM dumps selected must be from the same game.", "Cheat Finder Error", MessageBoxButtons.OK, MessageBoxIcon.Information); 309 | else MessageBox.Show("You must have at least 1 RAM Dump ticked before searching.", "Cheat Finder Error", MessageBoxButtons.OK, MessageBoxIcon.Information); 310 | } 311 | } 312 | } 313 | } 314 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/PointerAddrWindow.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; 9 | using System.IO; 10 | using System.Windows.Forms; 11 | 12 | namespace GatewayRAMTools 13 | { 14 | public partial class PointerAddrWindow : Form 15 | { 16 | public List ramDumps = new List(); // Files In Use 17 | 18 | public PointerAddrWindow() 19 | { 20 | InitializeComponent(); 21 | } 22 | 23 | public bool validHex(string test) 24 | { 25 | return System.Text.RegularExpressions.Regex.IsMatch(test, @"\A\b[0-9a-fA-F]+\b\Z"); 26 | } 27 | 28 | private void btnClose_Click(object sender, EventArgs e) 29 | { 30 | this.Close(); 31 | } 32 | 33 | private void PointerAddrWindow_FormClosed(object sender, FormClosedEventArgs e) 34 | { 35 | this.Dispose(); 36 | } 37 | 38 | private void PointerAddrWindow_Load(object sender, EventArgs e) 39 | { 40 | for(int i = 0; i < ramDumps[0].memRegionCount; i++) 41 | { 42 | ListViewItem lvi = lstMemRegions.Items.Add(ramDumps[0].memRegions[i][0].ToString("X8")); 43 | lvi.SubItems.Add(ramDumps[0].memRegions[i][1].ToString("X8")); 44 | lvi.SubItems.Add(ramDumps[0].memRegions[i][2].ToString("X8")); 45 | lvi.SubItems.Add(ramDumps[0].memRegions[i][3].ToString("X8")); 46 | lvi.Checked = true; 47 | lvi.Tag = i; 48 | } 49 | 50 | for(int i=0; i 60 | { 61 | grpInput.Enabled = isUseable; 62 | grpMemRegions.Enabled = isUseable; 63 | lstResults.Enabled = isUseable; 64 | grpSettings.Enabled = isUseable; 65 | btnGo.Enabled = isUseable; 66 | } 67 | )); 68 | } 69 | 70 | private void btnGo_Click(object sender, EventArgs e) 71 | { 72 | List checkedRegions = new List(); 73 | bool includeNegative = chkNegative.Checked; 74 | bool reverseLookup = chkReverse.Checked; 75 | setFormUseable(false); 76 | 77 | // Check For Valid Addresses 78 | for (int i = 0; i < gridFiles.RowCount; i++) 79 | { 80 | if (!validHex(gridFiles.Rows[i].Cells[1].Value.ToString()) || (gridFiles.Rows[i].Cells[1].Value.ToString().Length != 8)) goto ErrorAddrs; 81 | } 82 | 83 | // Check For Valid Max Offset 84 | int maxOffset; 85 | if (!int.TryParse(txtMaxOffset.Text, out maxOffset)) goto ErrorMaxOffset; 86 | 87 | // Check For MemRegion Ticks 88 | if (lstMemRegions.CheckedItems.Count <= 0) goto ErrorMemregion; 89 | else 90 | foreach (ListViewItem lvi in lstMemRegions.CheckedItems) 91 | { 92 | int[] tmp = new int[5]; 93 | for( int n=0; n<4; n++ ) tmp[n] = int.Parse(lvi.SubItems[n].Text,System.Globalization.NumberStyles.HexNumber); 94 | tmp[4] = (int)lvi.Tag; 95 | checkedRegions.Add(tmp); 96 | } 97 | 98 | lstResults.Items.Clear(); 99 | 100 | // Reset Progress Bar 101 | prgSearch.Value = 0; 102 | prgSearch.Maximum = checkedRegions.Count * 100; 103 | 104 | // Begin Thread 105 | Thread backgroundThread = new Thread( 106 | new ThreadStart(() => 107 | { 108 | List readStreams = new List(); 109 | List offsets = new List(); 110 | int[] thisRegion; 111 | 112 | // load Files and Offsets 113 | for(int i =0; i 0) 122 | { 123 | List bars = new List(); 124 | bool keeprunning = true; 125 | int lastprogress = 0; 126 | 127 | thisRegion = checkedRegions[0]; 128 | checkedRegions.RemoveAt(0); 129 | 130 | foreach (FileStream fs in readStreams) 131 | { 132 | byte[] bar = new byte[thisRegion[3]]; 133 | fs.Seek(thisRegion[2], SeekOrigin.Begin); 134 | fs.Read(bar, 0, bar.Length); 135 | // Make Sure We Have A Little End (oo-err) 136 | if (!BitConverter.IsLittleEndian) Array.Reverse(bar); 137 | bars.Add(bar); 138 | } 139 | 140 | // Check For Pointers 141 | for (int n = 0; (n < (thisRegion[3]-3)) && keeprunning; n++) 142 | { 143 | int firstValue = 0; 144 | int firstrelation = 0; 145 | bool validPointer = true; 146 | for (int x = 0; x < bars.Count; x++) 147 | { 148 | if (!reverseLookup && ((thisRegion[0] + n) >= offsets[x])) keeprunning = false; 149 | int tempvalue = BitConverter.ToInt32(bars[x], n); // + thisRegion[0] + n; 150 | int relation = offsets[x]- tempvalue; 151 | if (includeNegative) relation = Math.Abs(relation); 152 | 153 | if (x == 0) 154 | { 155 | firstValue = tempvalue; 156 | firstrelation = relation; 157 | 158 | } 159 | 160 | // Check It's Within Bounds 161 | if ((relation < 0) || (relation > maxOffset)) validPointer = false; 162 | if ((x != 0) && (relation != firstrelation)) validPointer = false; 163 | } 164 | if (validPointer) 165 | { 166 | int inFilePos = thisRegion[0] + n; 167 | int value = firstValue; 168 | int regioncode = thisRegion[4]; 169 | lstResults.BeginInvoke( 170 | new Action(() => 171 | { 172 | ListViewItem lvi = lstResults.Items.Add((inFilePos).ToString("X8")); 173 | lvi.SubItems.Add(value.ToString("X8")); 174 | lvi.SubItems.Add((offsets[0]-value).ToString("X8")); 175 | // if ((offsets[0] - value) == 0) lvi.BackColor = Color.LightGreen; 176 | if ((offsets[0] - value) < 0) lvi.BackColor = Color.LightGray; 177 | // if (inFilePos > offsets[0]) lvi.ForeColor = Color.DarkGray; 178 | lvi.Tag = regioncode; 179 | } 180 | )); 181 | } 182 | 183 | int thisprogress = 0; 184 | if (keeprunning) thisprogress = (int)(((double)n / ((double)thisRegion[3] - 3)) * 100); 185 | else thisprogress = 100; 186 | 187 | if (thisprogress > lastprogress) 188 | { 189 | int toadd = thisprogress - lastprogress; 190 | lastprogress = thisprogress; 191 | prgSearch.BeginInvoke( 192 | new Action(() => 193 | { 194 | prgSearch.Value += toadd; 195 | } 196 | )); 197 | } 198 | } 199 | 200 | } 201 | 202 | // Close Files When Done 203 | foreach (FileStream fs in readStreams) fs.Close(); 204 | prgSearch.BeginInvoke( 205 | new Action(() => 206 | { 207 | prgSearch.Value = prgSearch.Maximum; 208 | } 209 | )); 210 | setFormUseable(true); 211 | } 212 | )); 213 | backgroundThread.Start(); 214 | 215 | goto EndFunc; 216 | 217 | ErrorAddrs: 218 | MessageBox.Show("Unable To Start Search As One Of The Known Addresses Given Is Invalid.", "Manual Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 219 | goto ExitFunc; 220 | 221 | ErrorMaxOffset: 222 | MessageBox.Show("Unable To Start Search As The Maximum Offset Entered Is Invalid.", "Manual Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 223 | goto ExitFunc; 224 | 225 | ErrorMemregion: 226 | MessageBox.Show("Unable To Start Search As You Must Have At Least 1 MemRegion Ticked.", "Manual Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 227 | goto ExitFunc; 228 | 229 | ExitFunc: 230 | setFormUseable(true); 231 | 232 | EndFunc: ; 233 | } 234 | 235 | private void showInHexViewerToolStripMenuItem_Click(object sender, EventArgs e) 236 | { 237 | if (lstResults.SelectedItems.Count > 0) { 238 | HexWindow hexwin = new HexWindow(); 239 | hexwin.rDump = ramDumps[0]; 240 | hexwin.memRegion = (int)lstResults.SelectedItems[0].Tag; 241 | hexwin.selectLength = 4; 242 | hexwin.gotoOffset = int.Parse(lstResults.SelectedItems[0].SubItems[0].Text,System.Globalization.NumberStyles.HexNumber); 243 | hexwin.Show(); 244 | } 245 | } 246 | 247 | private void createCheatToolStripMenuItem_Click(object sender, EventArgs e) 248 | { 249 | if(lstResults.SelectedItems.Count > 0) 250 | { 251 | ListViewItem seli = lstResults.SelectedItems[0]; 252 | CheatTextWindow cwin = new CheatTextWindow(); 253 | cwin.pointeraddr = seli.SubItems[0].Text; 254 | cwin.cheatname = "Pointer " + seli.SubItems[0].Text; 255 | cwin.offset = seli.SubItems[2].Text; 256 | cwin.Show(); 257 | } 258 | } 259 | } 260 | } 261 | -------------------------------------------------------------------------------- /GatewayRAMTools/Forms/PointerAddrWindow.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 | True 122 | 123 | 124 | True 125 | 126 | 127 | 17, 17 128 | 129 | 130 | 131 | 132 | AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA 133 | AAD///8B////AQAAAAUAAAALAAAAEQAAABcAAAAbAAAAGwAAABsAAAAbAAAAGwAAABkAAAARAAAACf// 134 | /wH///8B////AQAAAAMAAAALAAAAFwAAACMAJEdhAEGDwQBChMkAQoTJAEKEyQBBg8EAI0ZhAAAAIQAA 135 | ABH///8B////Af///wH///8B////Af///wEBI0YLAUWKuWGZz/F1qNr/a57Q/2ibzf9RiL/xAkaKuwE0 136 | aBX///8B////Af///wH///8B////Af///wH///8BAUqSXRZan8WAs+X/cqXX/2qdz/9om83/a57Q/y1t 137 | rdUBSpJh////Af///wH///8B////Af///wH///8BAk+bWRRcpL13rOD3fK/h/3Om2P9qnc//aJvN/2ue 138 | 0P9bk8rtAk6ak////wH///8B////Af///wH///8BAlKiVRhjrrWAs+T/gLPk/36x4v90p9n/ap3P/2ib 139 | zf9sn9D/caXX+wJSoaX///8B////Af///wH///8BAlSmRxllsbOLvu3/bJ/R/4O25v+BtOT/dqna/2qd 140 | z/9om83/bJ/R/3ap2v8CVKWn////Af///wH///8B////AQNWqaORxPH/jL/t/xZdpbePwu//hbjn/3+y 141 | 4f94q9z/d6rb/3ms3f+DtuX/A1apo////wH///8B////Af///wEDWKyfmMv1/xtquKsCTZmrms33/5rN 142 | 9/+azff/ms33/5rN9/+azff/ms33/wNYrJ////8B////Af///wH///8BA1qwZwNasJsDWrBPA1Gfp53Q 143 | +f+Mv+3/ndD5/2+n2+2d0Pn/RoXC253Q+f8DWrCb////Af///wH///8B////Af///wH///8B////AQNY 144 | rZ2g0/r/Ak+csaDT+v8CT5yxoNP6/wJPnLGSyPTzA1yzmf///wH///8B////Af///wH///8B////Af// 145 | /wEDXbaVo9b8/wJSoquVy/bzAlKiq1OZ2ckCUqKrA122lQNdtkv///8B////Af///wH///8B////Af// 146 | /wH///8BBF+5k6bZ/f8DVailBF+5kwNVqJEEXrhJAlSmP////wH///8B////Af///wH///8B////Af// 147 | /wH///8B////AQRgvI+o2/7/A1iun////wH///8B////Af///wH///8B////Af///wH///8B////Af// 148 | /wH///8B////Af///wEEYb6Nm9L68QNbs5n///8B////Af///wH///8B////Af///wH///8B////Af// 149 | /wH///8B////Af///wH///8BBGLARwRiwIsEXrhL////Af///wH///8B////Af///wH///8B////Af// 150 | /wH///8BAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA 151 | //8AAP//AAD//w== 152 | 153 | 154 | -------------------------------------------------------------------------------- /GatewayRAMTools/GWFunctions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Security.Cryptography; 3 | using System.Windows.Forms; 4 | using System.IO; 5 | 6 | // Ram Tools Class for Gateway File Functions - To be extended in the future 7 | 8 | namespace GatewayRAMTools 9 | { 10 | // File Header Class 11 | public class GWFileHeader { 12 | public string readerVersion = "1.1"; // Version of the Reader 13 | public string filePath; // full file path 14 | public string fileName; // file name only 15 | public string leadIn; // First 32Bits (# of Mem Regions) 16 | public bool isGateway; // rough validation (needs improving) 17 | public string error; // Reasoning for isGateway=false 18 | public long fileSize; // Actual file size (Bytes) 19 | public long rawsize; // Expanded File Size (Bytes) 20 | public int headerSize; // Size of Header (Bytes) 21 | public int memRegionCount; // # of Header Blocks 22 | public int[][] memRegions; // Header Blocks {RAM From, RAM To, File Offset, Size} 23 | public int magicBit; // Validation Int 24 | public string magicBit0x; // Validation Hex 25 | public string headerSHA1; // SHA1 Hash of Header 26 | } 27 | 28 | // Functions 29 | public class GWFunctions 30 | { 31 | // Entry 32 | public GWFunctions () {} 33 | 34 | // Quick Function For Checking If File Is Gateway Dump 35 | public bool isGatewayDump( string fname ){ 36 | GWFileHeader gwf = new GWFileHeader(); 37 | gwf = buildFromDump(fname); 38 | return gwf.isGateway; 39 | } 40 | 41 | // Build Gateway RAM Partition Table (And Validate) 42 | public GWFileHeader buildFromDump(string fpath){ 43 | GWFileHeader tmpres = new GWFileHeader (); 44 | long pAddr = 0; 45 | // Set File Path 46 | tmpres.error = "none"; 47 | tmpres.filePath = fpath; 48 | // Set File Name 49 | tmpres.fileName = System.IO.Path.GetFileName (fpath); 50 | // Set File Size 51 | tmpres.fileSize = new System.IO.FileInfo (fpath).Length; 52 | // tmpres.isGateway = isGatewayDump (fpath); 53 | using (FileStream fs = new FileStream (fpath, FileMode.Open, FileAccess.Read)) 54 | using (var reader = new BinaryReader (fs)) { 55 | // Set memRegions 56 | System.UInt32 regions = reader.ReadUInt32 (); 57 | tmpres.leadIn = regions.ToString ("X8"); 58 | tmpres.isGateway = (regions > 0 ) && (regions < 100); // max 99 memRegions 59 | if (!tmpres.isGateway) { 60 | tmpres.error = "Header Too Big"; 61 | } else { 62 | // Count Memory Regions 63 | tmpres.memRegionCount = (int)regions; 64 | tmpres.memRegions = new int[regions][]; 65 | tmpres.headerSize = (int)(8 + (regions * 12)); 66 | pAddr = tmpres.headerSize; 67 | for (int i = 0; i < regions; i++) { 68 | int[] newline = new int[4]; 69 | int dsize = (int)reader.ReadUInt32 (); 70 | // File Pointer 71 | pAddr = pAddr + dsize; 72 | newline [2] = (int)pAddr; 73 | if (i > 0) { 74 | tmpres.memRegions [i - 1] [3] = dsize; 75 | tmpres.memRegions [i - 1] [1] = tmpres.memRegions [i - 1] [0] + dsize; 76 | } 77 | // Virtual Address 78 | newline [0] = (int)reader.ReadUInt32 (); 79 | // Scrambled Eggs 80 | newline [1] = (int)reader.ReadUInt32 (); 81 | // Virtual Size (See You In The Next Loop) 82 | if (i + 1 == regions) { 83 | newline [3] = (int)(tmpres.fileSize - pAddr); 84 | newline [1] = newline [0] + newline [3]; 85 | } else 86 | newline [3] = 0; 87 | tmpres.memRegions [i] = newline; 88 | } 89 | tmpres.rawsize = tmpres.memRegions [tmpres.memRegionCount - 1] [1]; 90 | tmpres.magicBit = (int)reader.ReadUInt32 (); // Validation Int 91 | tmpres.magicBit0x = tmpres.magicBit.ToString("X8"); // Validation Hex 92 | tmpres.isGateway = (tmpres.magicBit == tmpres.memRegions [tmpres.memRegionCount - 1] [3]); // Final Check Against Validation Int 93 | if (!tmpres.isGateway) tmpres.error = "Validation Failed"; 94 | else 95 | { 96 | var header = new byte[tmpres.headerSize]; 97 | fs.Position = 0; 98 | fs.Read(header, 0, header.Length); 99 | using (SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider()) 100 | { 101 | tmpres.headerSHA1 = Convert.ToBase64String(sha1.ComputeHash(header)); 102 | } 103 | } 104 | } 105 | 106 | if( !tmpres.isGateway ){ 107 | tmpres.memRegions = new int[1][]; 108 | tmpres.memRegionCount = 1; 109 | int[] newline = new int[4]; 110 | newline [0] = 0; 111 | newline [1] = (int)tmpres.fileSize; 112 | newline [2] = 0; 113 | newline [3] = (int)tmpres.fileSize; 114 | tmpres.memRegions[0] = newline; 115 | } 116 | } 117 | return tmpres; 118 | } 119 | 120 | // Expand a Gateway RAM Dump File to a RAW (absolute) RAM Dump File 121 | public bool dumpGWRAM( GWFileHeader activeDump, ProgressBar progress) 122 | { 123 | var zeropad = new byte[1024]; 124 | var readbuffer = new byte[1024]; 125 | int bytesread = 0; 126 | string outpath = System.IO.Path.GetDirectoryName(activeDump.filePath); 127 | outpath += "\\" + System.IO.Path.GetFileNameWithoutExtension(activeDump.filePath); 128 | outpath += "-raw" + System.IO.Path.GetExtension(activeDump.filePath); 129 | 130 | // Read/Write 131 | using (FileStream filer = File.OpenRead(activeDump.filePath)) 132 | { 133 | using (FileStream filew = File.Create(outpath)) 134 | { 135 | filer.Seek(activeDump.headerSize, 0); 136 | for (int currentRegion = 0; currentRegion < activeDump.memRegionCount; currentRegion++) 137 | { 138 | while (filew.Position < activeDump.memRegions[currentRegion][0]) 139 | { 140 | int thischunk = (int)(activeDump.memRegions[currentRegion][0] - filew.Position); 141 | if (thischunk > zeropad.Length) thischunk = zeropad.Length; 142 | filew.Write(zeropad, 0, thischunk); 143 | } 144 | filew.Flush(); 145 | while (filew.Position < activeDump.memRegions[currentRegion][1]) 146 | { 147 | int thisblock = (int)(activeDump.memRegions[currentRegion][1] - filew.Position); 148 | if (thisblock > readbuffer.Length) thisblock = readbuffer.Length; 149 | bytesread = filer.Read(readbuffer, 0, thisblock); 150 | filew.Write(readbuffer, 0, bytesread); 151 | } 152 | filew.Flush(); 153 | progress.BeginInvoke( 154 | new Action(() => 155 | { 156 | progress.Value++; 157 | } 158 | )); 159 | } 160 | } // Using File.OpenWrite 161 | } // Using File.OpenRead 162 | return true; 163 | } 164 | 165 | } 166 | } 167 | 168 | -------------------------------------------------------------------------------- /GatewayRAMTools/GatewayRAMTools.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {3ECB7D47-1E73-4FAD-BC43-D159685071FD} 8 | WinExe 9 | Properties 10 | GatewayRAMTools 11 | GatewayRAMTools 12 | v4.0 13 | 512 14 | true 15 | 16 | 17 | 18 | AnyCPU 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | 27 | 28 | AnyCPU 29 | pdbonly 30 | true 31 | bin\Release\ 32 | TRACE 33 | prompt 34 | 4 35 | 36 | 37 | 38 | Resources\grt.ico 39 | 40 | 41 | 42 | bin\HexBox\Be.Windows.Forms.HexBox.dll 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | Form 59 | 60 | 61 | CheatTextWindow.cs 62 | 63 | 64 | Form 65 | 66 | 67 | FixedAddrWindow.cs 68 | 69 | 70 | Form 71 | 72 | 73 | GoToDialog.cs 74 | 75 | 76 | Form 77 | 78 | 79 | HeaderWindow.cs 80 | 81 | 82 | Form 83 | 84 | 85 | HexWindow.cs 86 | 87 | 88 | Form 89 | 90 | 91 | MainWindow.cs 92 | 93 | 94 | Form 95 | 96 | 97 | PointerAddrWindow.cs 98 | 99 | 100 | 101 | 102 | 103 | CheatTextWindow.cs 104 | 105 | 106 | FixedAddrWindow.cs 107 | 108 | 109 | GoToDialog.cs 110 | 111 | 112 | HeaderWindow.cs 113 | 114 | 115 | HexWindow.cs 116 | 117 | 118 | MainWindow.cs 119 | 120 | 121 | PointerAddrWindow.cs 122 | 123 | 124 | ResXFileCodeGenerator 125 | Designer 126 | Resources.Designer.cs 127 | 128 | 129 | 130 | SettingsSingleFileGenerator 131 | Settings.Designer.cs 132 | 133 | 134 | True 135 | True 136 | Resources.resx 137 | 138 | 139 | True 140 | Settings.settings 141 | True 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 180 | -------------------------------------------------------------------------------- /GatewayRAMTools/Lib/Be.HexEditor.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 6 12 | 13 | 14 | True 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /GatewayRAMTools/Lib/Be.Windows.Forms.HexBox.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Lib/Be.Windows.Forms.HexBox.dll -------------------------------------------------------------------------------- /GatewayRAMTools/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace GatewayRAMTools 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// The main entry point for the application. 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new frmMain()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /GatewayRAMTools/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("GatewayRAMTools")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("GatewayRAMTools")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("3ecb7d47-1e73-4fad-bc43-d159685071fd")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.3.*")] 36 | [assembly: AssemblyFileVersion("1.3.0.0")] 37 | -------------------------------------------------------------------------------- /GatewayRAMTools/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace GatewayRAMTools.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | 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 | /// Returns the cached ResourceManager instance used by this class. 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("GatewayRAMTools.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 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 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap application_list { 67 | get { 68 | object obj = ResourceManager.GetObject("application_list", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// Looks up a localized resource of type System.Drawing.Bitmap. 75 | /// 76 | internal static System.Drawing.Bitmap book_question { 77 | get { 78 | object obj = ResourceManager.GetObject("book_question", resourceCulture); 79 | return ((System.Drawing.Bitmap)(obj)); 80 | } 81 | } 82 | 83 | /// 84 | /// Looks up a localized resource of type System.Drawing.Bitmap. 85 | /// 86 | internal static System.Drawing.Bitmap cross_circle { 87 | get { 88 | object obj = ResourceManager.GetObject("cross_circle", resourceCulture); 89 | return ((System.Drawing.Bitmap)(obj)); 90 | } 91 | } 92 | 93 | /// 94 | /// Looks up a localized resource of type System.Drawing.Bitmap. 95 | /// 96 | internal static System.Drawing.Bitmap database { 97 | get { 98 | object obj = ResourceManager.GetObject("database", resourceCulture); 99 | return ((System.Drawing.Bitmap)(obj)); 100 | } 101 | } 102 | 103 | /// 104 | /// Looks up a localized resource of type System.Drawing.Bitmap. 105 | /// 106 | internal static System.Drawing.Bitmap document_minus { 107 | get { 108 | object obj = ResourceManager.GetObject("document_minus", resourceCulture); 109 | return ((System.Drawing.Bitmap)(obj)); 110 | } 111 | } 112 | 113 | /// 114 | /// Looks up a localized resource of type System.Drawing.Bitmap. 115 | /// 116 | internal static System.Drawing.Bitmap document_plus { 117 | get { 118 | object obj = ResourceManager.GetObject("document_plus", resourceCulture); 119 | return ((System.Drawing.Bitmap)(obj)); 120 | } 121 | } 122 | 123 | /// 124 | /// Looks up a localized resource of type System.Drawing.Bitmap. 125 | /// 126 | internal static System.Drawing.Bitmap document_search_result { 127 | get { 128 | object obj = ResourceManager.GetObject("document_search_result", resourceCulture); 129 | return ((System.Drawing.Bitmap)(obj)); 130 | } 131 | } 132 | 133 | /// 134 | /// Looks up a localized resource of type System.Drawing.Bitmap. 135 | /// 136 | internal static System.Drawing.Bitmap drive_download { 137 | get { 138 | object obj = ResourceManager.GetObject("drive_download", resourceCulture); 139 | return ((System.Drawing.Bitmap)(obj)); 140 | } 141 | } 142 | 143 | /// 144 | /// Looks up a localized resource of type System.Drawing.Bitmap. 145 | /// 146 | internal static System.Drawing.Bitmap git { 147 | get { 148 | object obj = ResourceManager.GetObject("git", resourceCulture); 149 | return ((System.Drawing.Bitmap)(obj)); 150 | } 151 | } 152 | 153 | /// 154 | /// Looks up a localized resource of type System.Drawing.Bitmap. 155 | /// 156 | internal static System.Drawing.Bitmap hand_finger { 157 | get { 158 | object obj = ResourceManager.GetObject("hand_finger", resourceCulture); 159 | return ((System.Drawing.Bitmap)(obj)); 160 | } 161 | } 162 | 163 | /// 164 | /// Looks up a localized resource of type System.Drawing.Bitmap. 165 | /// 166 | internal static System.Drawing.Bitmap hand_point_090 { 167 | get { 168 | object obj = ResourceManager.GetObject("hand_point_090", resourceCulture); 169 | return ((System.Drawing.Bitmap)(obj)); 170 | } 171 | } 172 | 173 | /// 174 | /// Looks up a localized resource of type System.Drawing.Bitmap. 175 | /// 176 | internal static System.Drawing.Bitmap node { 177 | get { 178 | object obj = ResourceManager.GetObject("node", resourceCulture); 179 | return ((System.Drawing.Bitmap)(obj)); 180 | } 181 | } 182 | 183 | /// 184 | /// Looks up a localized resource of type System.Drawing.Bitmap. 185 | /// 186 | internal static System.Drawing.Bitmap node_magnifier { 187 | get { 188 | object obj = ResourceManager.GetObject("node_magnifier", resourceCulture); 189 | return ((System.Drawing.Bitmap)(obj)); 190 | } 191 | } 192 | 193 | /// 194 | /// Looks up a localized resource of type System.Drawing.Bitmap. 195 | /// 196 | internal static System.Drawing.Bitmap node_select_all { 197 | get { 198 | object obj = ResourceManager.GetObject("node_select_all", resourceCulture); 199 | return ((System.Drawing.Bitmap)(obj)); 200 | } 201 | } 202 | 203 | /// 204 | /// Looks up a localized resource of type System.Drawing.Bitmap. 205 | /// 206 | internal static System.Drawing.Bitmap node_select_next { 207 | get { 208 | object obj = ResourceManager.GetObject("node_select_next", resourceCulture); 209 | return ((System.Drawing.Bitmap)(obj)); 210 | } 211 | } 212 | 213 | /// 214 | /// Looks up a localized resource of type System.Drawing.Bitmap. 215 | /// 216 | internal static System.Drawing.Bitmap node_select_previous { 217 | get { 218 | object obj = ResourceManager.GetObject("node_select_previous", resourceCulture); 219 | return ((System.Drawing.Bitmap)(obj)); 220 | } 221 | } 222 | 223 | /// 224 | /// Looks up a localized resource of type System.Drawing.Bitmap. 225 | /// 226 | internal static System.Drawing.Bitmap property_export { 227 | get { 228 | object obj = ResourceManager.GetObject("property_export", resourceCulture); 229 | return ((System.Drawing.Bitmap)(obj)); 230 | } 231 | } 232 | 233 | /// 234 | /// Looks up a localized resource of type System.Drawing.Bitmap. 235 | /// 236 | internal static System.Drawing.Bitmap receipt_arrow { 237 | get { 238 | object obj = ResourceManager.GetObject("receipt_arrow", resourceCulture); 239 | return ((System.Drawing.Bitmap)(obj)); 240 | } 241 | } 242 | 243 | /// 244 | /// Looks up a localized resource of type System.Drawing.Bitmap. 245 | /// 246 | internal static System.Drawing.Bitmap script_text { 247 | get { 248 | object obj = ResourceManager.GetObject("script_text", resourceCulture); 249 | return ((System.Drawing.Bitmap)(obj)); 250 | } 251 | } 252 | 253 | /// 254 | /// Looks up a localized resource of type System.Drawing.Bitmap. 255 | /// 256 | internal static System.Drawing.Bitmap stickman_smiley_question { 257 | get { 258 | object obj = ResourceManager.GetObject("stickman_smiley_question", resourceCulture); 259 | return ((System.Drawing.Bitmap)(obj)); 260 | } 261 | } 262 | 263 | /// 264 | /// Looks up a localized resource of type System.Drawing.Bitmap. 265 | /// 266 | internal static System.Drawing.Bitmap table_export { 267 | get { 268 | object obj = ResourceManager.GetObject("table_export", resourceCulture); 269 | return ((System.Drawing.Bitmap)(obj)); 270 | } 271 | } 272 | } 273 | } 274 | -------------------------------------------------------------------------------- /GatewayRAMTools/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\git.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | 125 | ..\Resources\database.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 126 | 127 | 128 | ..\Resources\node-select-previous.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 129 | 130 | 131 | ..\Resources\node-magnifier.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 132 | 133 | 134 | ..\Resources\node-select-next.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 135 | 136 | 137 | ..\Resources\property-export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 138 | 139 | 140 | ..\Resources\document--minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 141 | 142 | 143 | ..\Resources\node.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 144 | 145 | 146 | ..\Resources\receipt--arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 147 | 148 | 149 | ..\Resources\book-question.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 150 | 151 | 152 | ..\Resources\cross-circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 153 | 154 | 155 | ..\Resources\stickman-smiley-question.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 156 | 157 | 158 | ..\Resources\application-list.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 159 | 160 | 161 | ..\Resources\hand-finger.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 162 | 163 | 164 | ..\Resources\document--plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 165 | 166 | 167 | ..\Resources\document-search-result.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 168 | 169 | 170 | ..\Resources\hand-point-090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 171 | 172 | 173 | ..\Resources\node-select-all.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 174 | 175 | 176 | ..\Resources\drive-download.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 177 | 178 | 179 | ..\Resources\table-export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 180 | 181 | 182 | ..\Resources\script-text.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 183 | 184 | -------------------------------------------------------------------------------- /GatewayRAMTools/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace GatewayRAMTools.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 | } 27 | -------------------------------------------------------------------------------- /GatewayRAMTools/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/application-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/application-list.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/book-question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/book-question.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/cross-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/cross-circle.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/database.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/document--minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/document--minus.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/document--plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/document--plus.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/document-search-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/document-search-result.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/drive-download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/drive-download.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/git.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/git.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/grt.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/grt.ico -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/hand-finger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/hand-finger.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/hand-point-090.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/hand-point-090.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/node-magnifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/node-magnifier.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/node-select-all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/node-select-all.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/node-select-next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/node-select-next.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/node-select-previous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/node-select-previous.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/node.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/property-export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/property-export.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/receipt--arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/receipt--arrow.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/script-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/script-text.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/stickman-smiley-question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/stickman-smiley-question.png -------------------------------------------------------------------------------- /GatewayRAMTools/Resources/table-export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BoomEX-UK/GatewayRAMTools/0d02ffdc174f94d0f92ba942e6cb2be01e622bb6/GatewayRAMTools/Resources/table-export.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Gateway RAM Tools 2 | A collection of useful tools for exploring RAM Dumps created by Gateway's in-game menu. Written in C# and using .NET 4 for cross-platform GUI friendliness (Windows/Mono/Wine). 3 | 4 | ![Tools](https://cloud.githubusercontent.com/assets/16966330/16155154/fb01b0e0-34a5-11e6-824a-0402523f0fc6.png) 5 | 6 | # Background 7 | This project is created as an eductional piece for myself and the 3DS hacking community to make full use of the RAM Dumping feature in Gateway 3DS. 8 | 9 | RAM Dumps are created in batches of Memory Regions which can be viewed by the in-game Gateway menu. The gaps between the Memory Regions are not dumped and so the files cannot be used with convntional RAM exploring software. 10 | 11 | # Purpose 12 | The tool will allow you to view the Memory Regions which have been dumped and where within the .bin file these are found. You can also use this tool to expand the .bin file (creating zero padding) in order to fix the offsets. 13 | 14 | # Features 15 | * Detect / Validate a Gateway RAM Dump 16 | * View Memory Region offsets and their relative in-file offsets 17 | * Translate In-Game offsets into In-File offsets for use with a hex editor 18 | * Expand a Gateway RAM dump into a full-size RAW dump by zero-padding the missing data 19 | * Batch-expand Gateway RAM Dumps for multiple files 20 | * Export a header segment 21 | * Fixed Address Search: (8/16/32bit Fixed Values) 22 | * Hex Viewer (found inside the Partition Table) 23 | * Pointer Address Search 24 | 25 | # Future Development 26 | I'll be looking to integrate further tools into this project, namely around pointer searching / multi layer pointer searching. Any comments / request or ideas are welcome. 27 | 28 | # Credits 29 | Thanks to the following people for their input into the project so far 30 | * Gateway 3DS Team 31 | * Maxconsole.com Forums 32 | * msparky76 33 | * makikatze 34 | * storm75x (Fort42) 35 | --------------------------------------------------------------------------------