You can parse the PE Header of the file and find the correct address ranges where you would expect to find the data. Either that, or you can use some of .NET's inbuilt "process" properties, such as "BaseAddress" (of a module) and "MainModule"
i.e
[highlight=vb.net]
Dim p As Process = Process.GetCurrentProcess()
MessageBox.Show(p.MainModule.BaseAddress.ToString( "X8"))
[/highlight]
scanning over 20,000 bytes at a time with RPM will start fucking up by the way.
But yeah, to optimize scanning you really need to narrow down the scan ranges.