一个没有加任何壳的程序在运行到OEP之前,先hook到,然后在hook的代码力想释放掉数据段(.data,这是VC的程序)的内存,用VirtualFree((LPVOID)0xxx000, 0, MEM_RELEASE),失败,LastError是87(ERROR_INVALID_PARAMETER 87 The parameter is incorrect) 。请问,这个段在装载的时候是单独分配的内存吗?
另外问一个PE头的问题,就是PE的这些段之间能不能有空隙,不是要写入代码的那种空隙,是两个段的地址本身就不相连的那种。我试着修改过段的大小和sizeofimage,只要段之间不是相连的,就提示不是合法的win32程序。