💰 VirtualAllocEx 申请内存空间
🎯功能
在指定的窗口所在进程分配一段内存
📜语法
结果 = dm.VirtualAllocEx(句柄, 地址, 长度, 类型)
📥参数
参数 | 数据类型 | 解释 |
---|---|---|
句柄 | 整型数 | 窗口句柄或者进程ID. 默认是窗口句柄. 如果要指定为进程ID,需要调用SetMemoryHwndAsProcessId |
地址 | 长整型数 | 预期的分配地址。如果是0表示自动分配,否则就尝试在此地址上分配内存 |
长度 | 整型数 | 需要分配的内存大小 |
类型 | 整型数 | 需要分配的内存类型; 0 :可读可写可执行; 1 :可读可执行,不可写; 2 :可读可写,不可执行 |
📤返回
长整型数
, 分配的内存地址,如果是0
表示分配失败.
💡示例
addr = dm.VirtualAllocEx(hwnd,0,50,0)
dm.WriteString hwnd,cstr(hex(addr)),0,"哈哈"
dm.VirtualFreeEx hwnd,addr
📘备注
如果正常方式无法分配内存,可以尝试配合DmGuard中的memory护盾,突破部分窗口内存保护。
用此函数分配的内存,必须用VirtualFreeEx来释放,以免目标进程内存泄漏.