{"id":45,"date":"2026-08-08T11:39:00","date_gmt":"2026-08-08T11:39:00","guid":{"rendered":"https:\/\/easyextract.online\/blog\/how-windows-icons-are-stored-in-exe-files\/"},"modified":"2026-08-26T08:14:08","modified_gmt":"2026-08-26T08:14:08","slug":"how-windows-icons-are-stored-in-exe-files","status":"publish","type":"post","link":"https:\/\/easyextract.online\/blog\/how-windows-icons-are-stored-in-exe-files\/","title":{"rendered":"How Windows Icons Are Stored in EXE Files"},"content":{"rendered":"<p><strong>A Windows program&#8217;s icon is stored inside the <code>.exe<\/code> itself, in the file&#8217;s resource section, as one or more <code>RT_ICON<\/code> images tied together by an <code>RT_GROUP_ICON<\/code> directory.<\/strong> The icon you see in Explorer is not a separate file \u2014 it is a resource embedded in the executable&#8217;s PE (Portable Executable) structure. Knowing how that works explains why one program can show a crisp icon at every size, and how to pull the icon back out.<\/p>\n<p>This guide covers the PE resource layout, why an icon is really several images in one, and how to <a href=\"https:\/\/easyextract.online\/icon-extractor\/\">extract an icon from an EXE<\/a> \u2014 including DLLs \u2014 directly in your browser.<\/p>\n<h2>The PE format and its resource section<\/h2>\n<p>Every Windows <code>.exe<\/code> and <code>.dll<\/code> follows the <strong>Portable Executable (PE)<\/strong> format. Besides the code the program runs, a PE file contains a <strong>resource section<\/strong> (named <code>.rsrc<\/code>) that holds non-code assets: icons, cursors, menus, version information, dialog layouts and embedded images. The resource section is a small tree, organised first by resource <em>type<\/em>, then by <em>name\/ID<\/em>, then by <em>language<\/em>.<\/p>\n<p>Icons live under two resource types in that tree: <code>RT_ICON<\/code> and <code>RT_GROUP_ICON<\/code>.<\/p>\n<h2>Why an icon is several images in one<\/h2>\n<p>What looks like a single icon is actually a <strong>set<\/strong> of images at different sizes and colour depths \u2014 16&times;16, 32&times;32, 48&times;48, 256&times;256, and so on. Windows picks the closest match for wherever the icon is displayed: a small one in a list view, a large one on the desktop. This is exactly what an <code>.ico<\/code> file is: a container of multiple bitmaps.<\/p>\n<p>Inside the EXE, each of those individual images is stored as its own <strong><code>RT_ICON<\/code><\/strong> resource. On its own, an <code>RT_ICON<\/code> is just one bitmap; nothing links it to the others.<\/p>\n<h2>How RT_GROUP_ICON ties them together<\/h2>\n<p>The glue is <strong><code>RT_GROUP_ICON<\/code><\/strong>. This resource is a small directory that lists all the images belonging to one logical icon: for each, it records the width, height, colour depth and \u2014 crucially \u2014 the resource ID of the matching <code>RT_ICON<\/code>. When Windows needs &#8220;the application icon&#8221;, it reads the <code>RT_GROUP_ICON<\/code> directory, then fetches the <code>RT_ICON<\/code> entries it points to.<\/p>\n<p>To rebuild a usable <code>.ico<\/code> file from an executable, a tool has to do the same thing: read the group directory, collect the referenced <code>RT_ICON<\/code> images, and reassemble them into a single icon file. Grabbing one <code>RT_ICON<\/code> in isolation gives you only one size.<\/p>\n<h2>One executable, many icons<\/h2>\n<p>A program can contain many icon groups \u2014 the main application icon, document-type icons, toolbar graphics, and more. System DLLs are the extreme case: files like <code>shell32.dll<\/code> and <code>imageres.dll<\/code> hold hundreds of the icons Windows uses across its interface. That is why an icon extractor that handles DLLs as well as EXEs is so useful.<\/p>\n<h2>How to extract the icon<\/h2>\n<p>To pull the icon out, you need a tool that parses the PE resource tree, reads the <code>RT_GROUP_ICON<\/code> directories and reassembles the referenced <code>RT_ICON<\/code> images. Drop the file into the <a href=\"https:\/\/easyextract.online\/icon-extractor\/\">icon extractor<\/a>: it lists every icon group in the executable and lets you download each one at full size \u2014 all in your browser, so the <code>.exe<\/code> is never uploaded. Because it reassembles the stored images, you get every size the program shipped, not a single screenshot.<\/p>\n<p>If you are inspecting an installer or an executable more broadly, the <a href=\"https:\/\/easyextract.online\/exe-extractor\/\">EXE extractor<\/a> and the <a href=\"https:\/\/easyextract.online\/file-extraction\/\">archive &amp; executable tools<\/a> cover the rest of what a PE file holds.<\/p>\n<h2>Frequently asked questions<\/h2>\n<p><strong>Where is the icon stored inside an EXE file?<\/strong><br \/>\nIn the executable&#8217;s PE resource section (<code>.rsrc<\/code>), as <code>RT_ICON<\/code> images grouped by an <code>RT_GROUP_ICON<\/code> directory. It is embedded in the file, not stored separately.<\/p>\n<p><strong>How do I extract an icon from an EXE or DLL?<\/strong><br \/>\nOpen the file in a tool that reads the PE resource tree, such as the <a href=\"https:\/\/easyextract.online\/icon-extractor\/\">icon extractor<\/a>, and download the icon. DLLs like <code>shell32.dll<\/code> often contain hundreds of icons.<\/p>\n<p><strong>Why does one icon have several sizes?<\/strong><br \/>\nWindows needs the icon at different sizes for different places (lists, the desktop, the taskbar). Each size is a separate <code>RT_ICON<\/code> image, and the <code>RT_GROUP_ICON<\/code> directory ties them into one logical icon.<\/p>\n<p><strong>Can I get the icon at full resolution?<\/strong><br \/>\nYes. The images are stored in the file, so a proper extractor rebuilds the full icon \u2014 including the largest size, often 256&times;256 \u2014 rather than capturing what is on screen.<\/p>\n<p><strong>Can a single EXE contain more than one icon?<\/strong><br \/>\nYes. Applications usually have a main icon plus document and toolbar icons, and system DLLs can hold hundreds.<\/p>\n<h2>Related reading<\/h2>\n<ul>\n<li><a href=\"https:\/\/easyextract.online\/blog\/what-is-data-extraction\/\">What is data extraction?<\/a><\/li>\n<li><a href=\"https:\/\/easyextract.online\/blog\/are-online-file-converters-safe\/\">Are online file converters safe?<\/a><\/li>\n<\/ul>\n<p><em>Last updated: 16 August 2026.<\/em><\/p>\n<p><script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"Where is the icon stored inside an EXE file?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"In the executable's PE resource section (.rsrc), as RT_ICON images grouped by an RT_GROUP_ICON directory. It is embedded in the file, not stored separately.\"}},\n{\"@type\":\"Question\",\"name\":\"How do I extract an icon from an EXE or DLL?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Open the file in a tool that reads the PE resource tree, such as the icon extractor, and download the icon. DLLs like shell32.dll often contain hundreds of icons.\"}},\n{\"@type\":\"Question\",\"name\":\"Why does one icon have several sizes?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Windows needs the icon at different sizes for different places (lists, the desktop, the taskbar). Each size is a separate RT_ICON image, and the RT_GROUP_ICON directory ties them into one logical icon.\"}},\n{\"@type\":\"Question\",\"name\":\"Can I get the icon at full resolution?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. The images are stored in the file, so a proper extractor rebuilds the full icon, including the largest size (often 256x256), rather than capturing what is on screen.\"}},\n{\"@type\":\"Question\",\"name\":\"Can a single EXE contain more than one icon?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Applications usually have a main icon plus document and toolbar icons, and system DLLs can hold hundreds.\"}}\n]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Windows program&#8217;s icon is stored inside the .exe itself, in the file&#8217;s resource section, as one or more RT_ICON images tied together by an RT_GROUP_ICON directory. The icon you see in Explorer is\u2026<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"How Windows Icons Are Stored in EXE Files (and How to Extract Them)","description":"A Windows program's icon lives inside the .exe as a PE resource \u2014 RT_ICON images grouped by an RT_GROUP_ICON directory. Here's how it works, and how to extract the icon in your browser."},"footnotes":""},"categories":[3],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-guides"],"_links":{"self":[{"href":"https:\/\/easyextract.online\/blog\/wp-json\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/easyextract.online\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/easyextract.online\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/easyextract.online\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/easyextract.online\/blog\/wp-json\/wp\/v2\/comments?post=45"}],"version-history":[{"count":1,"href":"https:\/\/easyextract.online\/blog\/wp-json\/wp\/v2\/posts\/45\/revisions"}],"predecessor-version":[{"id":66,"href":"https:\/\/easyextract.online\/blog\/wp-json\/wp\/v2\/posts\/45\/revisions\/66"}],"wp:attachment":[{"href":"https:\/\/easyextract.online\/blog\/wp-json\/wp\/v2\/media?parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/easyextract.online\/blog\/wp-json\/wp\/v2\/categories?post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/easyextract.online\/blog\/wp-json\/wp\/v2\/tags?post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}