找到了一个游戏的移动call,伪造了参数,其中一个参数是一个结构指针,我用VirtualAllocEx函数申请了内存,填写了结构。问题来了,如果每次用完,都free掉下一次重新VirtualAllocEx,就有几率在某一次移动开始一段后直接闪退,而如果VirtualAllocEx申请了就重复使用这片内存,就不会出现闪退的问题。但是如果我直接把我的测试程序关闭(此时没有free),再重新运行测试程序(会再分配一次内存,之后重复使用),运行也有几率闪退。求教各位大佬,问题可能出现在哪?或者这种闪退有没有办法捕获和定位?我用windows事件查看器没有找到这个闪退的错误事件。万分感谢!
具体用到这两个内存函数是下面这样:
LPVOID Address;
Address
=
VirtualAllocEx(handle, NULL, size, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
如果用了free则是下面这样:
VirtualFreeEx(handle, Address, NULL, MEM_RELEASE)
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!