110,536
社区成员
发帖
与我相关
我的任务
分享
private void 遍历怪物_Tick(object sender, EventArgs e)
{
打开进程();
listView1.BeginUpdate();
listView1.Items.Clear();
int 怪物数组最大=100;
string[] 怪物名字;
int 一级基址, 二级基址, 怪物名字基址, 三级基址, 四级基址,五级基址;
byte[] 怪物名字字集 = new byte[256];
byte[] 怪物名 = new byte[256];
openprocess = win32API.API.OpenProcess(win32API.API.OPEN_PROCESS_ALL | win32API.API.PROCESS_CREATE_THREAD | win32API.API.PROCESS_VM_WRITE, 0, pid);
win32API.API.ReadProcessMemory(openprocess, 0x5f6e20, out 一级基址, 4, 0);
win32API.API.ReadProcessMemory(openprocess, 一级基址 + 0x5fb5c, out 二级基址, 4, 0);
win32API.API.ReadProcessMemory(openprocess, 二级基址 + 4, out 三级基址, 4, 0);
for (int i = 0; i < 怪物数组最大; i++)
{
win32API.API.ReadProcessMemory(openprocess, 三级基址 + i * 4, out 四级基址, 4, 0);
if (四级基址 > 0)
{
win32API.API.ReadProcessMemory(openprocess, 四级基址 + 0x24, out 五级基址, 4, 0);
win32API.API.ReadProcessMemory(openprocess, 五级基址 + 0x0, out 怪物名字基址, 4, 0);
win32API.API.ReadProcessMemory(openprocess, 怪物名字基址, 怪物名, 32, 0);
string _DataText = System.Text.Encoding.Default.GetString(怪物名);//我感觉是这句转换出了问题但是我不知道要这么转,查MSDN越查越糊涂。。。
ListViewItem listItem = new ListViewItem(_DataText);
listView1.Items.Add(listItem);
}
}
listView1.EndUpdate();
win32API.API.CloseHandle(openprocess);
}