Хранится в разделе неуправляемых ресурсов исполняемого файла. Вы можете увидеть этот раздел с помощью File + Open + File и выбрав DLL или EXE. Откройте узел Icon. Ресурс с наименьшим номером - это тот, который Windows выбирает в качестве значка приложения.
В платформе .NET имеется пятнистая поддержка для доступа к неуправляемым ресурсам двоичного файла. Лучше всего использовать Icon.ExtractAssociatedIcon (), но вы не можете контролировать, какое из изображений на значке вы получите. Откатом пинвока является LoadImage (), но его сложно использовать. Безусловно, лучший способ - сделать значок доступным в управляемых ресурсах.