• 0

[C#] Read Specific Memory Address from Process


Question

I'm trying to read a specific memory address from a selected Process.

I've never done anything like this, but I believe some languages have ReadProcessMemory & WriteProcessMemory Methods. But I can't find a specific one for C#, much less how to control their arguments.

I found one way to find the process in memory, and the following code will in fact shutdown the program.

But I want to access its' memory space to read and eventually modify the memory space using memory addresses.

  Quote
System.Diagnostics.Process[]myProcesses;

  myProcesses =

    System.Diagnostics.Process.GetProcessesByName("starcraft");

  foreach (System.Diagnostics.Process instance in myProcesses)

  {

    instance.CloseMainWindow();

   

  }

3 answers to this question

Recommended Posts

  • 0

If you want to do something this low level you are probably better off writing it using C/C++/Assembly. You should be able to call win32 functions from C#. You should check MSDN for ReadProcessMemory and it will tell you what parameters you need.

  • 0

Thanks for your fast Reply Andareed. I have the MSDN Library, and have been frequenting the more updated Online one for this case as well as google and ask.com, however I have limited knowledge in programming and in troubleshooting in this sort of development dealing with processes. I want to use C# to do this because that's what i'm studying and am most familiar with.

  Quote
[DllImport("kernel32.dll", SetLastError=false)]static extern int ReadProcessMemory ( int hProcess, ref object lpBaseAddress, ref object lpBuffer, int nSize, ref int lpNumberOfBytesWritten);

 

  [sTAThread]

  static void Main(string[] args)

  {

  Process[] myProcess = Process.GetProcessesByName("notepad");

 

  string vout,vout2;

  vout2 = ReadProcessMemory(68804,401F75,vout,6,6);

I have the Handle ID,

I know the Address I want to Read

The other Parameters I don't have any idea of.

I found This description of ReadProcessMemory, but i'm not sure I fully understand the parameter types. No need to visit here if you're familiar with the method.

  • 0

You need to get hProcess which is in Process.Handle, lpBaseAddress is your memory address (relative to target process), lpBuffer is pointer to a buffer (relative to this process) that receives data read, nSize is size of lpBuffer, lpNumberOfBytes is pointer to DWORD of how many bytes are actually read. I have very little C# experience so I have no idea how you would go about passing in buffer addresses.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • It only includes Russia. All other territories come at an additional cost of $20/pm/per territory you want to use it in.
    • From cars to cosmos: Honda's experimental rocket aces first landing test by Paul Hill Image via Honda Watch your back SpaceX, the Japanese company Honda has just performed a successful first launch of its experimental reusable rocket. The 6.3 meter rocket, which weighs 900kg, reached a modest altitude of 271.4 meters, but managed to land within 37cm of its target (1.2 feet), which is certainly pretty close. The rocket took off from a Honda facility in Taiki Town, Hokkaido, a growing space town in Japan. The flight time was also modest, coming in at just 56.6 seconds, but in that time, Honda was able to demonstrate key reusability technologies such as flight stability and landing capability. This marks a significant milestone for Honda’s space R&D department, which began work just four years ago. If you remember the tests SpaceX was performing around 2012 with Grasshopper, well Honda is at about the same stage with its reusable rocket. Why Honda is building rockets: Beyond cars and motorcycles Honda said that it wants to leverage core technologies it already works on for offering space services. It said that reusable rockets are a key part of sustainable space transportation. By 2029, the company wants to be able to perform suborbital launches, and while commercialization hasn’t been decided yet, it sees itself launching remote-sensing and wide-area communication satellites in the future. The Japanese car maker sees growing demand for satellite launches and wants to be involved by developing reusable rockets which could help it perform such launches economically. If it does end up finding customers, it will add more competition to the rocket launch sector. While the company hasn’t confirmed this, by developing its own launch system, it could eventually be in a position to launch its own satellites that could provide services to its cars to add value for customers. The competitive landscape and Japan's space ambitions Honda is just the latest company to join the growing list of companies trying to develop reusable rocket technology. The most famous companies doing this are SpaceX and Blue Origin, but there are also lots of other companies around the world also developing this technology. Honda is still taking baby steps compared to SpaceX, but it shows that the company is taking a focused, step-by-step approach, and achieving successes as noted by this launch. Hopefully, the company ends up providing tough competition against SpaceX, Blue Origin, and other companies so that it can help to drive down prices and spur on innovation.
    • Does that subscription include international data roaming, inclusive of Russia?
    • If you're stupid enough to try and get one, each and every headache along the way is on you. I can only hope that these roadblocks on a pre-order are enough to dissuade people.
    • "You should have a Microsoft Account because we can help keep your data safe...until we can't." As an IT guy I know that I should never put my trust in one backup solution if the data is important. But for non-IT people, they are getting tricked into Microsoft's practices with falsehoods.
  • Recent Achievements

    • Week One Done
      TBithoney earned a badge
      Week One Done
    • First Post
      xuxlix earned a badge
      First Post
    • First Post
      Tomek Święcicki earned a badge
      First Post
    • One Year In
      carlitin86 earned a badge
      One Year In
    • Reacting Well
      Peterlll06 earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      683
    2. 2
      ATLien_0
      289
    3. 3
      Michael Scrip
      227
    4. 4
      +FloatingFatMan
      192
    5. 5
      Steven P.
      145
  • Tell a friend

    Love Neowin? Tell a friend!