我找到了一个完美适用于静态地址的代码。
但是,我将如何更改此代码以使其适用于指针?我需要从这个指针获得价值:
0x1002CAA70 + 0x10 + 0x18 + 0x0 + 0x18。
它适用于 64 位应用程序。
public class Program
{
private const int PROCESS_WM_READ = 0x0010;
[DllImport("kernel32.dll")]
public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
[DllImport("kernel32.dll")]
public static extern bool ReadProcessMemory(int hProcess,
Int64 lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead);
static void Main(string[] args)
{
Process process = Process.GetProcessesByName("Tutorial-x86_64")[0];
IntPtr processHandle = OpenProcess(PROCESS_WM_READ, false, process.Id);
int bytesRead = 0;
var buffer = new byte[4];
ReadProcessMemory((int)processHandle, 0x0011D598, buffer, buffer.Length, …Run Code Online (Sandbox Code Playgroud) 我收到错误
"'指数数组的边界之外"
string Open = array[0].ToString();数组为空时在此行上.
我使用"if"语句来查看当数组为空时它是否可以被旁路.
但是,为什么我仍然会收到此错误?我该如何绕过/修复它?
if (array != null || array.Length != 0)
{
int c = array.Count();
string Open = array[0].ToString(); <--- ERROR
}
Run Code Online (Sandbox Code Playgroud) 我有一个像下面这样的数组:
{1,5,5,4,5,6,7,8,9,10,11,12,13,14,1,16,17,5}
我想在每个10个元素中找到从一个到另一个的重复项.
我需要一个能够告诉我5在10个元素中重复3次的代码(在5s(4)之间最多只有1个元素.它应该是最后5个,因为它太远了.只有3个5个在10个元素内) .我不希望代码返回1,因为两个1之间有13个元素.
我有一个代码可以计算重复,但如何更改它,以便它可以计算重复项与10个元素?
var dict = new Dictionary<string, int>();
foreach (var count in combined2)
{
if (dict.ContainsKey(count))
dict[count]++;
else
dict[count] = 1;
}
foreach (var val in dict)
{
MessageBox.Show(val.Key + " occurred " + val.Value + " times");
}
Run Code Online (Sandbox Code Playgroud)
我只关心发生最多的重复.如果某个号码重复两次但另一个号码重复3次.我只想知道重复3次的数字(含10个项目).谢谢