├── .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 | 
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 |
--------------------------------------------------------------------------------