When This Error Hits
You're running a portable executable (PE) — an EXE, DLL, or SYS file — and Windows throws ERROR_RESOURCE_DATA_NOT_FOUND (0x00000714). The exact wording is "The specified image file did not contain a resource section."
Common triggers: you downloaded a cracked game that had its resources stripped by a sloppy unpacker. Or you unpacked a malware sample with UPX and the unpacker skipped the resource table. Or an antivirus tool quarantined only the .rsrc section of a DLL, leaving a broken file behind. Installing a driver from a third-party site that was re-packed by some script that forgot to keep the version resources also causes this.
Root Cause
What's actually happening here is that the PE file's structure is incomplete. Every PE file can have several sections: .text (code), .data (initialized data), .rdata (read-only data), and critically, .rsrc (resources). The resource section stores icons, version info, string tables, cursor images, dialog layouts, and manifest data. Without it, Windows can't read the file's identity — no version number, no icon in Explorer, no embedded manifest that says "run as admin."
The OS doesn't just give up because of a missing icon. The loader calls FindResource/LoadResource internally for many operations — even just showing the file properties dialog. When the section directory table lacks an entry for .rsrc, the loader returns this exact error code. The file might run fine as a command-line tool (if it doesn't need resources), but anything involving the GUI or version info will fail.
The Fix: Restore the Resource Section
- Verify the file isn't actually broken.
Runsigcheck -afrom Sysinternals. If it says "No version info" and the file has no digital signature, you're dealing with a stripped resource section. If sigcheck reports "unable to read image" or crashes, the file is too damaged — re-download it. - Check if antivirus nuked part of the file.
Temporarily disable real-time protection (Windows Defender, Bitdefender, whatever) and copy the file from a known-good backup. If the error disappears, your AV is the culprit. Add an exclusion for that folder in your AV settings. - Rebuild the resource section from scratch.
This is the real fix. You'll use a resource hacker tool — I prefer Resource Hacker (by Angus Johnson) because it's simple and doesn't mess up PE alignment.- Open the broken file in Resource Hacker. It'll show an error — ignore it. Go to File → New and create a minimal resource file with just a version info block. You can copy the version info from a working EXE of the same app (if you have one).
- Save the new .res file. Then use
cvtres.exe(part of Visual Studio Build Tools) to compile it:cvtres /OUT:fixed.res input.res - Then use
mt.exe(from the Windows SDK) to embed it:mt.exe -manifest input.manifest -outputresource:broken.exe;#1— but for missing .rsrc, you needcvtres+link /EDITor just use a dedicated tool like Resource Tuner to inject the rebuilt resources.
sfc /scannowto restore system ones. - Rebuild the PE section table.
Sometimes the .rsrc section exists in the file but the section table header is corrupted. Usedumpbin /HEADERS(from Visual Studio) orpebear(a nice free PE viewer). Look for the section table entries. If you see a section named.rsrcbut with a raw size of 0 or a virtual size of 0, that section is empty — you still have the same problem. In that case, you can manually overwrite the section header with a hex editor (like HxD) to point to valid data, but that's advanced and error-prone.
If It Still Fails
Check these:
— Is the file digitally signed? If so, the signature might rely on the resource section. You can't fix a signed file without breaking the signature. Delete it and get a fresh copy from the official source.
— Is the file actually a PE? Run file on a Linux box or use TrID on Windows. Some malware masquerades as EXEs but aren't really PE files.
— Did you run this from a network share? Windows sometimes strips resource access for UNC paths with strict Group Policy. Copy the file to a local drive first.
— Is the file in use by another process? Use handle.exe (Sysinternals) to check. If a lock exists, the resource section might be memory-mapped and not fully readable. Reboot and try again.
If nothing works, the simplest honest answer: the file is toast. Corrupted beyond repair. Re-download it from a trusted mirror or the original developer's site. Don't waste hours chasing a ghost — the file was already compromised.