-
-
[求助]morphine壳中VirtualAlloc分配内存 地址问题
-
发表于:
2007-10-16 17:56
7455
-
[求助]morphine壳中VirtualAlloc分配内存 地址问题
morphine壳及其它的后续者(CI Crypt等)加壳的时候,都会变换程序基址,对一些exe文件,很多都是没有重定位表的,比如有个基地址是0x00400000的exe程序加壳后,在脱壳的时候,脱壳代码会调用VirtualAlloc函数去申请0x00400000这片内存,一般情况是可以申请到这个地址的内存的,这样程序也能正常运行
但是有些时候,是申请不到这个地址,这个时候,如果原来程序没有重定位表的话,程序就运行不起来了
我想问的问题是,像morphine这类壳是怎么保证,大多数情况下可以申请到0x00400000这个地址内存的
现在在写虚拟机调试器,以前没有把虚拟机注入到"被调试程序"时候,申请内存机制应该跟直接用OD没区别,可以申请到0x00400000这片内存,程序能正常运行
但是把虚拟机注入到"被调试进程"后,虽然没有任何模块占用0x00400000这个地址,但是在它不多远处的地址被用了(非模块占用,也非堆栈占用,不知道这片内存用来干嘛了),导致申请0x00400000这个地址的内存不成功,后面出现一些异常情况
各位大侠,有没有办法,让这片内存能申请成功啊?谢谢!
[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!