54 |
if (!DesignMode) |
if (!DesignMode) |
55 |
{ |
{ |
56 |
GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this); |
GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this); |
57 |
|
provider.OpenProvider(); |
58 |
uint addr = 0; |
uint addr = 0; |
59 |
provider.ReadFirstNonZeroByte(MemoryStart, MemorySize, out addr); |
provider.ReadFirstNonZeroByte(MemoryStart, MemorySize, out addr); |
60 |
|
provider.CloseProvider(); |
61 |
GotoAddress(addr); |
GotoAddress(addr); |
62 |
} |
} |
63 |
} |
} |
192 |
} |
} |
193 |
private byte[] GetMemory() |
private byte[] GetMemory() |
194 |
{ |
{ |
195 |
|
byte[] data = new byte[] { }; |
196 |
try |
try |
197 |
{ |
{ |
198 |
GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this); |
GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this); |
199 |
|
provider.OpenProvider(); |
200 |
int bytesReadSize; |
int bytesReadSize; |
|
byte[] data; |
|
201 |
provider.ReadProcessMemory(CURRENT_TOP_ADDR, max_ram_view, out bytesReadSize, out data); |
provider.ReadProcessMemory(CURRENT_TOP_ADDR, max_ram_view, out bytesReadSize, out data); |
202 |
//this.Logger.LogDebugMessage(string.Format("GetMemory() -> Memory Size: {0}0x{2:X8}{1}", "{", "}", data.Length)); |
provider.CloseProvider(); |
203 |
return data; |
|
204 |
} |
} |
205 |
catch (Exception ex) |
catch (Exception ex) |
206 |
{ |
{ |
207 |
logger.Error.WriteLine("{0}.GetMemory():{1}{2}", this.GetType().Name, System.Environment.NewLine, ex.ToString()); |
logger.Error.WriteLine("{0}.GetMemory():{1}{2}", this.GetType().Name, System.Environment.NewLine, ex.ToString()); |
|
byte[] data = new byte[max_ram_view]; |
|
|
for (int i = 0; i < data.Length; i++) { data[i] = 0x0; } |
|
|
return data; |
|
208 |
} |
} |
209 |
|
finally |
210 |
|
{ |
211 |
|
if (data.Length == 0) |
212 |
|
{ |
213 |
|
data = new byte[max_ram_view]; |
214 |
|
for (int i = 0; i < data.Length; i++) { data[i] = 0x0; } |
215 |
|
} |
216 |
|
} |
217 |
|
return data; |
218 |
} |
} |
219 |
private void UpdateMemroyView() { this.UpdateMemroyView(this.CURRENT_TOP_ADDR); } |
private void UpdateMemroyView() { this.UpdateMemroyView(this.CURRENT_TOP_ADDR); } |
220 |
private void UpdateMemroyView(uint address) |
private void UpdateMemroyView(uint address) |
291 |
// Byte changed |
// Byte changed |
292 |
//byte[] data = (txtData.ByteProvider as DynamicByteProvider).Bytes.ToArray(); |
//byte[] data = (txtData.ByteProvider as DynamicByteProvider).Bytes.ToArray(); |
293 |
GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this); |
GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this); |
294 |
|
provider.OpenProvider(); |
295 |
int bytesReadSize; |
int bytesReadSize; |
296 |
|
|
297 |
for (int i = 0; i < data.Length; i ++) |
for (int i = 0; i < data.Length; i ++) |
300 |
byte data_to_write = data[i]; |
byte data_to_write = data[i]; |
301 |
provider.WriteProcessMemory(addr, data_to_write, out bytesReadSize); |
provider.WriteProcessMemory(addr, data_to_write, out bytesReadSize); |
302 |
} |
} |
303 |
|
provider.CloseProvider(); |
304 |
} |
} |
305 |
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()); } |
306 |
} |
} |