异常:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
[DllImport("kernel32.dll")]public static extern int GetProcAddress(int hModule, string lpProcName);
[DllImport("kernel32.dll")]
public static extern int GetModuleHandleA(string lpModuleName);
[DllImport("kernel32.dll")]
public static extern int WriteProcessMemory(int hProcess, int pBaseAddress,out byte[] lpBuffer, int nSize, int lpNumberOfBytesWritten);
[DllImport("kernel32.dll")]
public static extern int ReadProcessMemory(int hProcess, int pBaseAddress, out byte[] lpBuffer, int nSize, int lpNumberOfBytesWritten);
[DllImport("kernel32.dll")]
public static extern bool VirtualProtect(int lpAddress, int dwSize, int flNewProtect, int lpflOldProtect);
sendaddress = GetProcAddress(GetModuleHandleA("ws2_32.dll"), "send");
recvaddresss = GetProcAddress(GetModuleHandleA("ws2_32.dll"), "recv");
byte[] senddata = new byte[9]; byte[] recvdata = new byte[9];
ReadProcessMemory(-1, sendaddress, out senddata, 9, 0);
ReadProcessMemory(-1, recvaddresss, out recvdata, 9, 0);
异常:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
不知道这个问题该如何解决? --------------------编程问答-------------------- 这只有上帝知道。
你的代码毫无任何道理可言。你去试图修改作为代码的存储干嘛呢? --------------------编程问答--------------------
send,防止抓包工具拦截封包 --------------------编程问答-------------------- 恕我笨拙,没看出你的代码有这么玄乎的功能。 --------------------编程问答-------------------- 我说了,你的这段代码读取的不是什么通讯的数据,而是动态链接库中函数入口地址处的一些作为指令的数据。 --------------------编程问答--------------------
WriteProcessMemory(-1, sendaddress, out senddata, 9, 0);
WriteProcessMemory(-1, recvaddresss, out recvdata, 9, 0);
VirtualProtect (sendaddress, 5, 128, 0);
VirtualProtect(recvaddresss, 5, 128, 0);
说实话,我也不是很理解,这是一个易语言的朋友帮我写的,我照着他的E改写过来的。在E中测试是没有问题的。 --------------------编程问答--------------------
我在httpwebrequest之前就执行上面的代码 --------------------编程问答-------------------- 我要做的目的只有一个,就是不让抓包工具,抓到httpwebrequest发送的地址。不知道版主大人有啥高见。 --------------------编程问答-------------------- readprocessmemory C#的翻译不对
补充:.NET技术 , C#