/[RomCheater]/trunk/RomCheater/Docking/UI/UIMemoryViewer.cs
ViewVC logotype

Diff of /trunk/RomCheater/Docking/UI/UIMemoryViewer.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 214 by william, Sat Jun 2 10:43:05 2012 UTC revision 238 by william, Sun Jun 3 12:48:38 2012 UTC
# Line 10  using Be.Windows.Forms; Line 10  using Be.Windows.Forms;
10  using RomCheater.Logging;  using RomCheater.Logging;
11  using RomCheater.PluginFramework.Interfaces;  using RomCheater.PluginFramework.Interfaces;
12  using System.Diagnostics;  using System.Diagnostics;
13    using Sojaner.MemoryScanner.MemoryProviers;
14    
15  namespace RomCheater.Docking.UI  namespace RomCheater.Docking.UI
16  {  {
17      public partial class UIMemoryViewer : UserControl, IProcessConfig, IAcceptsPlugin<IConfigPlugin>//, IAcceptsMemoryRange      public partial class UIMemoryViewer : UserControl, IAcceptsProcess<Process>, IAcceptsPlugin<IConfigPlugin>//, IAcceptsMemoryRange
18      {      {
19          public UIMemoryViewer()          public UIMemoryViewer()
20          {          {
# Line 49  namespace RomCheater.Docking.UI Line 50  namespace RomCheater.Docking.UI
50          {          {
51              if (!DesignMode)              if (!DesignMode)
52              {              {
53                  Sojaner.MemoryScanner.ProcessMemoryReader reader = new Sojaner.MemoryScanner.ProcessMemoryReader();                  GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this);
                 reader.ReadProcess = this.AcceptedProcess;  
                 reader.OpenProcess();  
54                  uint addr = 0;                  uint addr = 0;
55                  reader.ReadFirstNonZeroByte(MemoryStart, MemorySize, out addr);                  provider.ReadFirstNonZeroByte(MemoryStart, MemorySize, out addr);
56                  GotoAddress(addr);                  GotoAddress(addr);
57              }              }
58          }          }
59    
60          #region IProcessConfig Members          #region  IAcceptsProcess<Process> Members
61          private Process _AcceptedProcess;          private Process _AcceptedProcess;
62          public Process AcceptedProcess          public Process AcceptedProcess
63          {          {
# Line 120  namespace RomCheater.Docking.UI Line 119  namespace RomCheater.Docking.UI
119          uint CURRENT_TOP_ADDR          uint CURRENT_TOP_ADDR
120          {          {
121              get { return _CURRENT_TOP_ADDR; }              get { return _CURRENT_TOP_ADDR; }
122              set { _CURRENT_TOP_ADDR = value; }              set { txthexGoto.Value = _CURRENT_TOP_ADDR = value; }
123          }          }
124          //uint CURRENT_BOITTOM_ADDR() { return CURRENT_TOP_ADDR + max_ram_view; }          //uint CURRENT_BOITTOM_ADDR() { return CURRENT_TOP_ADDR + max_ram_view; }
125          private void UpdateMaxRamView()          private void UpdateMaxRamView()
# Line 190  namespace RomCheater.Docking.UI Line 189  namespace RomCheater.Docking.UI
189          {          {
190              try              try
191              {              {
192                  Sojaner.MemoryScanner.ProcessMemoryReader reader = new Sojaner.MemoryScanner.ProcessMemoryReader();                  GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this);
                 reader.ReadProcess = this.AcceptedProcess;  
                 reader.OpenProcess();  
193                  int bytesReadSize;                  int bytesReadSize;
194                  byte[] data = reader.ReadProcessMemory(CURRENT_TOP_ADDR, max_ram_view, out bytesReadSize);                  byte[] data;
195                    provider.ReadProcessMemory(CURRENT_TOP_ADDR, max_ram_view, out bytesReadSize, out data);
196                  //this.Logger.LogDebugMessage(string.Format("GetMemory() -> Memory Size: {0}0x{2:X8}{1}", "{", "}", data.Length));                  //this.Logger.LogDebugMessage(string.Format("GetMemory() -> Memory Size: {0}0x{2:X8}{1}", "{", "}", data.Length));
197                  return data;                  return data;
198              }              }
# Line 280  namespace RomCheater.Docking.UI Line 278  namespace RomCheater.Docking.UI
278                  if (AcceptedPlugin == null) { return; }                  if (AcceptedPlugin == null) { return; }
279                  // Byte changed                  // Byte changed
280                  //byte[] data = (txtData.ByteProvider as DynamicByteProvider).Bytes.ToArray();                  //byte[] data = (txtData.ByteProvider as DynamicByteProvider).Bytes.ToArray();
281                                    GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this);
   
                 Sojaner.MemoryScanner.ProcessMemoryReader reader = new Sojaner.MemoryScanner.ProcessMemoryReader();  
                 reader.ReadProcess = this.AcceptedProcess;  
                 reader.OpenProcess();  
282                  int bytesReadSize;                  int bytesReadSize;
283    
284                  for (int i = 0; i < data.Length; i ++)                  for (int i = 0; i < data.Length; i ++)
285                  {                  {
286                      uint addr = (uint)(start_address + i);                      uint addr = (uint)(start_address + i);
287                      byte data_to_write = data[i];                      byte data_to_write = data[i];
288                      reader.WriteProcessMemory((UIntPtr)addr, data_to_write, out bytesReadSize);                      provider.WriteProcessMemory(addr, data_to_write, out bytesReadSize);
289                  }                  }
290              }              }
291              catch (Exception ex) { logger.Error.WriteLine("{0}.WriteCurrentBytes():{1}{2}", this.GetType().Name, System.Environment.NewLine, ex.ToString()); }              catch (Exception ex) { logger.Error.WriteLine("{0}.WriteCurrentBytes():{1}{2}", this.GetType().Name, System.Environment.NewLine, ex.ToString()); }

Legend:
Removed from v.214  
changed lines
  Added in v.238

  ViewVC Help
Powered by ViewVC 1.1.22