実行可能なインジェクターを WINDOWS のプロセスにしようとしましたが、プログラムはエラーなしでコンパイルされますが、プログラムを (Microsoft Visual Studio のデバッグ モードで) 実行すると、ランタイム エラーが発生します。ビジュアルスタジオは行を強調表示します(コメントでマークしました)
#include <windows.h>
#include "resource.h"
int main()
{
PIMAGE_DOS_HEADER IDH;
PIMAGE_NT_HEADERS INTH;
PIMAGE_SECTION_HEADER ISH;
//Lets load the resource
HRSRC hResource=FindResourceA(NULL,(LPCSTR)MAKEINTRESOURCE(IDR_EXE1),"EXE");
DWORD ResourceSize=SizeofResource(NULL,hResource);
HGLOBAL hGlob=LoadResource(NULL,hResource);
LPSTR lpFileMaped=(LPSTR)LockResource(hGlob);
//obtain the DOS and PE headers
IDH=(PIMAGE_DOS_HEADER)&lpFileMaped[0];
INTH=(PIMAGE_NT_HEADERS)&lpFileMaped[IDH->e_lfanew]; //this is the highlighted line
// which supposedly causes an error at runtime
....
なぜそうなのか、誰か詳しく説明してもらえますか?