遍历工具遍历游戏:[[[[[[5f6e20]+5fb5c]+4]+0..4 30]+16]
得到: 偏移地址:[[[[[[5f6e20]+5fb5c]+4]+0]+16] 内存地址:2B42106 整形:117949
无符整形:1179649 byre:1 偏移地址:[[[[[[5f6e20]+5fb5c]+4]+74]+16] 内存地址:1807616 整形:33554432
无符整形:33554432 byre:0
五级基址=[[[[5f6e20]+5fb5c]+4]+0..4 30]
C#代码:
win32API.API.ReadProcessMemory(openprocess, 五级基址 + 0x16, 区分01, 4, 0);这里要要区别这个内存地址出来:
我想要的到 byre=0 这个数组ID
要这么写?
希望我说的够明白
得到: 偏移地址:[[[[[[5f6e20]+5fb5c]+4]+0]+16] 内存地址:2B42106 整形:117949
无符整形:1179649 byre:1 偏移地址:[[[[[[5f6e20]+5fb5c]+4]+74]+16] 内存地址:1807616 整形:33554432
无符整形:33554432 byre:0
五级基址=[[[[5f6e20]+5fb5c]+4]+0..4 30]
C#代码:
win32API.API.ReadProcessMemory(openprocess, 五级基址 + 0x16, 区分01, 4, 0);这里要要区别这个内存地址出来:
我想要的到 byre=0 这个数组ID
要这么写?
希望我说的够明白
解决方案 »
- 【请教】C#中picturebox背景图片设置问题
- 求高手帮忙
- 求二个正则写法
- 求Socket编程发送浮点数组的最佳转换方法?
- 求助:使用UdpClient.Receive方法接收对方回复时,如若对方没有答复,怎么解决Receive方法死等的问题?
- 老板要求做数据描画,问几个问题
- 多客户端控制的问题?
- 求助:如何将字符串写入xml文件
- 使用datareader对象的疑问。
- 关于C# 加法的问题,想写一个方法,这个方法既可以执行double类型的相加,也可以执行int类型的相加等等
- C#做windows Form的调查问卷,如何实现一页中有多个题目?
- vs.net2010带的那个sql server express 2008是哪个版本?
public static extern void CopyMemory(System.IntPtr Dest, System.IntPtr Source, int32 Length);
http://topic.csdn.net/u/20100209/12/D5258785-3A2D-4377-ACC6-50171D082FFD.html
byte[] 区分01 = new byte[32];我是这样写,但是不好判断,判断了也是错误。我自己也不太懂,资料也很难找到
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, 五级基址 + 0x0d, out 区分怪物, 4, 0);
win32API.API.ReadProcessMemory(openprocess, 五级基址 + 0x16, 区分生死, 4, 0);
win32API.API.ReadProcessMemory(openprocess, 五级基址, 怪物名,16, 0);
引用 1 楼 wuyq11 的回复:
[DllImport( "kernel32 ")]
public static extern void CopyMemory(System.IntPtr Dest, System.IntPtr Source, int32 Length);
可以解释下吗?。
而下面这个例子,基本没帮助,只是注入和写,没有删除其他的不用的数组啊
// PROCESS_VM_WRITE = 0x10
// 2344是任意进程的id
IntPtr hProcess = API.WindowsAPI.OpenProcess(0x10, true, 2344);
byte[] buffer = new byte[100];
// 0x77ef0000是gdi32模块的首地址,肯定是有数据的。
API.WindowsAPI.ReadProcessMemory(hProcess, 0x77ef0000, buffer, 100, 0);
这样解释不知道你明白否?
而这个比如
if(buffer=0 )是错误的,
for(int i = 0; i < buffer.length; i++)
{
if(buffer[i] != 0)
{
boolResult = false;
}
}//数据是特定类型的话,可以直接用unsafe指针。 unsafe
{
fixed (byte* intBuffer = buffer)
{
if (*((int*)intBuffer) == 0)
{
boolResult = false;
}
}
}
显示错误:不安全代码只会在在使用/unsafe 编译下错误