首页
社区
课程
招聘
未解决 [求助]VirtualAllocEx指定位置申请内存一直失败 50.00雪花
发表于: 2019-6-27 09:54 2389

未解决 [求助]VirtualAllocEx指定位置申请内存一直失败 50.00雪花

2019-6-27 09:54
2389
各位大神:

        小弟是一个新手,现想学习写一个简单的程序:把一个exe程序读到内存,拉伸后贴到指定位置修改OEP运行。

        具体步骤如下:

        1、新建一个工程xxxx,将此工程的ImageBase改为0x02000000,让自己的程序在高空运行;

        2、用VirtualAllocEx(GetCurrentProcess(),(LPVOID)0x400000,0x136000,MEM_RESERVE,PAGE_READWRITE);在0x400000的位置申请0x136000大小的内存

        3、用fread()函数将一个exe读到内存中(正常exe程序的ImageBase都是0x400000);

        4、将读到内存中的exe拉伸后贴到申请的0x400000位置的内存中;

        5、根据导入表自己载入DLL,修改IAT表;

        6、跳转到exe的OEP执行。


        但是小弟在用 VirtualAllocEx()申请内存时,始终申请不到内存。

        于是小弟写一个简单的程序进行测试,代码如下:

        编译后用OD进行调试,发现在我要申请的内存段0x00400000--0x00536000范围内有几段priv 00021004 和 priv 00021104的数据,具体如图:

        这些数据的位置不是固定的,每次重启exe,数据的位置都是变化的,但是总在这附近。总有数据占用了我要申请的内存。

        求各位大神指点,这些数据是怎么产生的?要怎样避免这些数据占位置?或者说要怎样才能申请到0x00400000--0x00536000位置的内存?


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//