Prix One

Prix One

  • NA
  • 1
  • 0

Read Executable Module

Jan 31 2010 3:30 PM
Hi,

I am not well knowledge with memory stuff etc...

I need to get the modules from a process so i can get it is baseAddr....

i was using the follow approch.

                 try
                {
                    System.Diagnostics.Process[] HandleP = System.Diagnostics.Process.GetProcessesByName("ProcessByName.exe");
                    System.Diagnostics.ProcessModuleCollection modules = HandleP[0].Modules;
                    foreach (System.Diagnostics.ProcessModule i in modules)
                    {
                        if (i.ModuleName == "ModuleNeeded") { ThisModule = i.BaseAddress.ToInt32(); }
                    }
                }
                catch (Exception e)
                {
                    System.Windows.Forms.MessageBox.Show(e.ToString());
                }


But it always gives me the follow error:

 A first chance exception of type 'System.IndexOutOfRangeException' occurred in MyApp.exe
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in MyApp.exe

Additional information: Index was outside the bounds of the array.

So i am assuming it is not finding any module ? is that right ?

SOLVED
if (HandleP.Length == 1) {
foreach (System.Diagnostics.ProcessModule i in modules) {
....


I use this same code for other stuff and it worked just fine...

Well appreciate any help thx.