Это мой Form1 код:Как я могу найти начальную и конечную память процесса?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
namespace ReadMemory
{
public partial class Form1 : Form
{
List<int> memoryAddresses = new List<int>();
public Form1()
{
InitializeComponent();
Process proc = Process.GetCurrentProcess();
IntPtr startOffset = proc.MainModule.BaseAddress;
IntPtr endOffset = IntPtr.Add(startOffset, proc.MainModule.ModuleMemorySize);
for (int i = 0; i < startOffset.ToInt64(); i++)
{
memoryAddresses.Add(startOffset[i]
}
}
private void modelsToolStripMenuItem_Click(object sender, EventArgs e)
{
}
}
}
Я пытался сканировать все адреса памяти от начала до конца, и добавить их в список. Но я получаю сообщение об ошибке на линии:
memoryAddresses.Add(startOffset[i]
Ошибка 3 Не удается применить индексирование с [] к выражению типа
Второй вещи «System.IntPtr» делает в цикле: startOffset .ToInt64() в порядке? Или я должен сделать ToInt32()?
Возможный дубликат [Добавить смещение в IntPtr] (http://stackoverflow.com/questions/1866236/add-offset-to-intptr) – BartoszKP