VEG’s Blog
Есть у меня папка со старыми картинками, которые я собирал в нулевых. Переношу с компьютера на компьютер вместе со всеми моими файлами при каждом апгрейде, изредка захожу поностальгировать. Но каждый раз меня немного смущало то, что стандартный просмотрщик Windows 7 не показывал GIF-анимацию, хотя память мне подсказывала, что во времена XP анимация показывалась без проблем. При очередном приступе ностальгии я всё же решил запустить просмотрщик из XP на Windows 7. После преодоления ряда препятствий, я теперь уверен — GIF-анимация там действительно поддерживалась! А главное — теперь я могу смотреть свою старую папку с картинками в аутентичном интерфейсе просмотрщика картинок Windows XP, что создаёт более подходящую атмосферу =)
Скачать: shimgvw_xp32.7z (включает бинарник и исходный код лаунчера, плюс shimgvw.dll из англоязычной Windows XP SP3).
Как это было сделано?
Стандартный просмотрщик картинок в Windows XP — это не обычное приложение. Он находится в библиотеке shimgvw.dll, и запустить его напрямую нельзя — нужен как минимум rundll32 (указание пути к существующему файлу картинки обязательно):
Но этот трюк не срабатывает при попытке запуска shimgvw.dll из Windows XP на Windows 7 и новее — shimgvw.dll не может загрузиться, ему для корректной работы нужен режим совместимости с Windows XP. Этого можно добиться, установив соответствующий режим совместимости для копии rundll32, но совместимость с XP подразумевает под собой повышение прав приложения до максимальных, что вызывает появление диалога UAC при каждом запуске, чего хотелось бы избежать.
Небольшой танец с отладчиком позволил выяснить причину — в процессе загрузки shimgvw.dll впоследствии пытается импортировать несколько функций из shunimpl.dll, где хранятся устаревшие функции оболочки, и последняя по умолчанию отказывается загружаться, если ATOM «FailObsoleteShellAPIs» отсутствует (наличие этого ATOM разрешает загрузку библиотеки, но тогда все устаревшие функции просто возвращают код с ошибкой). Режим совместимости с XP, помимо прочего, устанавливает этот ATOM, поэтому просмотрщик и запускается.
Было решено написать небольшой лоадер, который добавляет ATOM «FailObsoleteShellAPIs», спрашивает какую картинку открыть (если в параметрах не был передан путь), и дальше передаёт управление в shimgvw.dll. Просмотрщик работает нормально (т.е. изначальная задача была выполнена), так что я не стал исследовать, что же за устаревшие функции импортируются из shunimpl.dll и в каких случаях они используются — видимо, ничего критичного для работы просмотрщика они не делают.
Поскольку для реализации лоадера не нужно ничего кроме небольшого числа функций WinAPI, я решил в качестве эксперимента собрать проект при помощи Clang без использования рантайма (ранее я всегда использовал MSVC для таких танцев). Таким образом, получился исполняемый файл размером 14 килобайт, из которых 9 килобайт ушло на иконку. Если кому-то также нравится делать мини-приложения без зависимостей от нестандартных библиотек — данный проект может послужить небольшим примером, как это делается при помощи Clang.
Очень интересно, Евгений. Всегда с интересом читаю ваши статьи на тему реверсинга и здесь и на «хабре». Даже сам стал немного приобщаться к этому делу. Некоторое время я просто компилировал на СИ, СИ++ свои простенькие примеры и изучал как они устроены в дизассемблере. А тут думаю, а не попробовать ли мне усложнить задачу. Захотелось в каком-нибудь чужом коде найти какую-нибудь интересующую меня функцию и проанализировать её. Хочу взять обычный калькулятор из Win7-32bit и найти там интересующую меня функцию. Но вот пока не могу сообразить как мне это пограмотнее или правилнее сделать. Может посоветуете что-нибудь, Жень? Мы же когда нажимаем кнопку функции, то запускаем определенный участок кода, который по окончании работы записывает в память данные. Как можно опираясь на эти события (запись в память и нажатие кнопки) найти нужный участок кода. Или в таких случаях долго и упорно анализируют дизассемблированый код и только после этого уже находят нужный участок. Как тут можно облегчить себе задачу, чтобы не делать двойную работу? Спасибо вам заранее за ответ.
Argo, стандартный калькулятор вероятно написан с использованием достаточно низкоуровневого кода, так что нужно искать типичный код работы с окнами на голом Win32 API. Найдите код, который создаёт окно, посмотрите какая там указана процедура для обработки сообщений от окна, изучите её код. Если нужно — можно на помощь призвать отладчик, посмотреть как выполняется тот или иной код в реальных условиях. Как правило, изучать вообще весь код не нужно. Но чтобы двигаться в правильном направлении, нужно представлять, как то приложение, которое вы исследуете, могло бы быть написано.
Блиин… а проперло все таки..
Заметил только что подсказки на английском. с английской версии выдрали?)
И вопрос а ассоциировать его можно?
Хочу свою голубую мечту рассказать.. как то я попробывал вин8.1 и мне она не особо понравилась.. 7ка была и стабильней и привычней.. но диспетчер задач не давал мне спокойно спать.. очень уж мне он понравился. Сейчас уже сижу на 10ке.. и приятно представлять что все таки кто нибудь таки сможет портировать диспетчер из 10ки на 7ку.
Почитал вашу статью, понял что это нереальная задача) Видимо пришло время проститься с 7кой)
shikulja, в статье указано, что файл shimgvw.dll взят из англоязычной Windows XP SP3. Если вам нужен русский язык — можете сами взять этот же файл из русскоязычной версии XP, и запускать его при помощи shimgvw.exe из статьи.
Что касается диспетчера задач из Windows 10, то в нём нет ничего такого, чего нельзя было бы сделать на Windows 7. Но Process Explorer, который можно скачать с сайта Microsoft, всё равно лучше.
Найдите код, который создаёт окно, посмотрите какая там указана процедура для обработки сообщений от окна, изучите её код.
VEG, т.е. нужно сначала мысленно в голове на основе знаний, опыта и логики локализовать примерный участок программы. Затем для выяснения каких-нибудь сомнений, просмотреть это место под отладчиком. Только так? А если не получается вычислить в голове примерное место в программе — можно ли воспользоваться какими-то косвенными ориентирами? Как я уже писал выше — по записи данных в память или по нажатию на кнопки интерфейса? Затем локализовать примерное место, а потом попробовать разобраться на этом участке кода. Ведь есть же программы, которые мониторят обращения к API-функциям. Может и с памятью и обработчиками событий(кнопками) можно такой-же финт провернуть? Хотя интуиция мне подсказывает, что VEG ответит что-то наподобие: ну вы и размечтались. :).
Argo, ну так вызовы импортируемых функций и есть те самые косвенные ориентиры. Если там программа выводит какие-то сообщения — то указатели на соответствующие строки тоже будут ориентиром.
VEG, что-то вы совсем забыли о своих читателях. Пора, видимо, вспомнить о таком понятии как совесть и цитате «мы в ответе за тех кого приручили». 🙂 Может вам открыть небольшую рубрику «Реверсинг» и «замутить» там для начала какую-нибудь статью. Для начала вполне бы подошло что-нибудь про Гидру (GHIDRA). Кстати, как вам она понравилась, непонравилась?
Библиотека DLL файлов
Новые DLL
shimgvw.dll
Разработчик: Microsoft Corporation
Описание dll файла: Photo Gallery Viewer
Совместимая операционная система: Windows All
Скачать shimgvw.dll версия файла: 6.1.7600.16385 (win7_rtm.090713-1255)
Скачать shimgvw.dll версия файла: 6.00.2900.2180 (xpsp_sp2_rtm.040803-2158)
Как установить и скачать shimgvw.dll
C: \ Windows \ System (Windows 95/98/Me)
C: \ WINNT \ System32 (Windows NT/2000)
C: \ Windows \ System32 (Windows XP, Vista, 7)
Если вы используете 64-разрядную версию Windows, вы должны также положить shimgvw.dll в C: \ Windows \ SysWOW64 \ .
Убедитесь, что вы перезаписали существующие файлы (но не забудьте сделать резервную копию оригинального файла). Перезагрузите ваш компьютер. Если проблема сохраняется, попробуйте следующее: Откройте меню Пуск и выберите пункт «Выполнить». Введите CMD и нажмите Enter (или если вы используете Windows ME, наберите COMMAND). Введите regsvr32 shimgvw.dll и нажмите Enter .
Внимание! Скачать shimgvw.dll бесплатно из сети Интернет очень легко, однако велика вероятность заражения вашего компьютера вредоносным кодом. Пожалуйста проверяйте ВСЕ скаченные из Интернет файлы антивирусом! Администрация сайта download-dll.ru не несет ответственность за работоспособность вашего компьютера.
Обратите также внимание, что каждый файл имеет версию и разрядность. DLL файлы с одинаковым названием могут быть как 32-битные, так и 64-битные. Установка в систему DLL файлов помогает не в 100% случаев, но в основном проблемы с программами и играми решаются таким незамысловатым методом. Чаще всего с DLL вы сталкиваетесь при ошибках в операционной системе. Некоторые библиотеки поставляются с системой Windows и доступны для любых Windows-программ. Замена DLL-файлов с одной версии на другую позволяет независимо наращивать систему, не затрагивая прикладные программы.
Ошибка DLL? Помогут наши спецы!
Не можете разобраться? Не запускается игра? Постоянно появляются ошибки DLL? Опиши подробно свою проблему и наши специалисты быстро и квалифицированно найдут решение возникшей неисправности. Не надо стеснятся задать вопрос!
Как исправить Shimgvw.dll (бесплатная загрузка)
Последнее обновление: 05/04/2020 [Необходимое время для чтения:
Файл shimgvw.dll использует расширение DLL, в частности известное как файл Photo Gallery Viewer. Классифицируется как файл Win32 DLL (Библиотека динамической компоновки), созданный для Microsoft® Windows® Operating System компанией Microsoft.
Файл shimgvw.dll изначально был выпущен с Windows Vista 11/08/2006 для ОС Windows Vista. Датой самого последнего выпуска файла для Windows 10 является 07/29/2015 [версия 10.0.15063.0 (WinBuild.160101.0800)]. Файл shimgvw.dll включен в версии ОС Windows 10, Windows 8.1 и Windows 8.
В этой статье приведены подробные сведения о shimgvw.dll, руководство по устранению неполадок с файлом DLL и список версий, доступных для бесплатной загрузки.
Рекомендуемая загрузка: исправить ошибки реестра в WinThruster, связанные с shimgvw.dll и (или) Windows.
Совместимость с Windows 10, 8, 7, Vista, XP и 2000
Средняя оценка пользователей
Обзор файла
| Общие сведения ✻ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Имя файла: | shimgvw.dll | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Расширение файла: | расширение DLL | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Описание: | Photo Gallery Viewer | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Тип объектного файла: | Dynamic link library | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Файловая операционная система: | Windows NT 32-bit | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Тип MIME: | application/octet-stream | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Пользовательский рейтинг популярности: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Сведения о разработчике и ПО | |
|---|---|
| Разработчик ПО: | Microsoft Corporation |
| Программа: | Microsoft® Windows® Operating System |
| Авторское право: | © Microsoft Corporation. All rights reserved. |
| Сведения о файле | |
|---|---|
| Набор символов: | Unicode |
| Код языка: | English (U.S.) |
| Флаги файлов: | (none) |
| Маска флагов файлов: | 0x003f |
| Точка входа: | 0x47e0 |
| Размер кода: | 17408 |
| Информация о файле | Описание |
|---|---|
| Размер файла: | 26 kB |
| Дата и время изменения файла: | 2017:03:18 18:19:23+00:00 |
| Дата и время изменения индексного дескриптора файлов: | 2017:11:05 07:07:54+00:00 |
| Тип файла: | Win32 DLL |
| Тип MIME: | application/octet-stream |
| Предупреждение! | Possibly corrupt Version resource |
| Тип компьютера: | Intel 386 or later, and compatibles |
| Метка времени: | 2099:07:01 07:11:17+00:00 |
| Тип PE: | PE32 |
| Версия компоновщика: | 14.10 |
| Размер кода: | 17408 |
| Размер инициализированных данных: | 8704 |
| Размер неинициализированных данных: | 0 |
| Точка входа: | 0x47e0 |
| Версия ОС: | 10.0 |
| Версия образа: | 10.0 |
| Версия подсистемы: | 10.0 |
| Подсистема: | Windows GUI |
| Номер версии файла: | 10.0.15063.0 |
| Номер версии продукта: | 10.0.15063.0 |
| Маска флагов файлов: | 0x003f |
| Флаги файлов: | (none) |
| Файловая ОС: | Windows NT 32-bit |
| Тип объектного файла: | Dynamic link library |
| Подтип файла: | 0 |
| Код языка: | English (U.S.) |
| Набор символов: | Unicode |
| Наименование компании: | Microsoft Corporation |
| Описание файла: | Photo Gallery Viewer |
| Версия файла: | 10.0.15063.0 (WinBuild.160101.0800) |
| Внутреннее имя: | ShImgVw.dll |
| Авторское право: | © Microsoft Corporation. All rights reserved. |
| Оригинальное имя файла: | shimgvw.dll |
| Название продукта: | Microsoft® Windows® Operating System |
| Версия продукта: | 10.0.15063.0 |
✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.
Что такое сообщения об ошибках shimgvw.dll?
Ошибки библиотеки динамической компоновки shimgvw.dll
Файл shimgvw.dll считается разновидностью DLL-файла. DLL-файлы, такие как shimgvw.dll, по сути являются справочником, хранящим информацию и инструкции для исполняемых файлов (EXE-файлов), например sapisvr.exe. Данные файлы были созданы для того, чтобы различные программы (например, Windows) имели общий доступ к файлу shimgvw.dll для более эффективного распределения памяти, что в свою очередь способствует повышению быстродействия компьютера.
К сожалению, то, что делает файлы DLL настолько удобными и эффективными, также делает их крайне уязвимыми к различного рода проблемам. Если что-то происходит с общим файлом DLL, то он либо пропадает, либо каким-то образом повреждается, вследствие чего может возникать сообщение об ошибке выполнения. Термин «выполнение» говорит сам за себя; имеется в виду, что данные ошибки возникают в момент, когда происходит попытка загрузки файла shimgvw.dll — либо при запуске приложения Windows, либо, в некоторых случаях, во время его работы. К числу наиболее распространенных ошибок shimgvw.dll относятся:
- Нарушение прав доступа по адресу — shimgvw.dll.
- Не удается найти shimgvw.dll.
- Не удается найти C:\Windows\System32\shimgvw.dll.
- Не удается зарегистрировать shimgvw.dll.
- Не удается запустить Windows. Отсутствует требуемый компонент: shimgvw.dll. Повторите установку Windows.
- Не удалось загрузить shimgvw.dll.
- Не удалось запустить приложение, потому что не найден shimgvw.dll.
- Файл shimgvw.dll отсутствует или поврежден.
- Не удалось запустить это приложение, потому что не найден shimgvw.dll. Попробуйте переустановить программу, чтобы устранить эту проблему.
Файл shimgvw.dll может отсутствовать из-за случайного удаления, быть удаленным другой программой как общий файл (общий с Windows) или быть удаленным в результате заражения вредоносным программным обеспечением. Кроме того, повреждение файла shimgvw.dll может быть вызвано отключением питания при загрузке Windows, сбоем системы при загрузке shimgvw.dll, наличием плохих секторов на запоминающем устройстве (обычно это основной жесткий диск) или, как нередко бывает, заражением вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.
Как исправить ошибки shimgvw.dll — 3-шаговое руководство (время выполнения:
Если вы столкнулись с одним из вышеуказанных сообщений об ошибке, выполните следующие действия по устранению неполадок, чтобы решить проблему shimgvw.dll. Эти шаги по устранению неполадок перечислены в рекомендуемом порядке выполнения.
Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.
Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Восстановление системы» и нажмите ENTER.
- В результатах поиска найдите и нажмите «Восстановление системы»
- Введите пароль администратора (при необходимости).
- Следуйте инструкциям мастера восстановления системы, чтобы выбрать соответствующую точку восстановления.
- Восстановите компьютер к этому образу резервной копии.
Если на этапе 1 не удается устранить ошибку shimgvw.dll, перейдите к шагу 2 ниже.
Шаг 2. Запустите средство проверки системных файлов (System File Checker), чтобы восстановить поврежденный или отсутствующий файл shimgvw.dll.
Средство проверки системных файлов (System File Checker) — это утилита, входящая в состав каждой версии Windows, которая позволяет искать и восстанавливать поврежденные системные файлы. Воспользуйтесь средством SFC для исправления отсутствующих или поврежденных файлов shimgvw.dll (Windows XP, Vista, 7, 8 и 10):
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите cmd, но НЕ НАЖИМАЙТЕ ENTER.
- Нажмите и удерживайте CTRL-Shift на клавиатуре, одновременно нажимая ENTER.
- Появится диалоговое окно запроса разрешения.
- В поле нажмите «ДА».
- Должен отображаться черный экран с мигающим курсором.
- На этом черном экране введите sfc /scannow и нажмите ENTER.
- Средство проверки системных файлов (System File Checker) начнет поиск неполадок, связанных с shimgvw.dll, а также других неполадок с системными файлами.
- Для завершения процесса следуйте инструкциям на экране.
Следует понимать, что это сканирование может занять некоторое время, поэтому необходимо терпеливо отнестись к процессу его выполнения.
Если на этапе 2 также не удается устранить ошибку shimgvw.dll, перейдите к шагу 3 ниже.
Шаг 3. Выполните обновление Windows.
Когда первые два шага не устранили проблему, целесообразно запустить Центр обновления Windows. Во многих случаях возникновение сообщений об ошибках shimgvw.dll может быть вызвано устаревшей операционной системой Windows. Чтобы запустить Центр обновления Windows, выполните следующие простые шаги:
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Обновить» и нажмите ENTER.
- В диалоговом окне Центра обновления Windows нажмите «Проверить наличие обновлений» (или аналогичную кнопку в зависимости от версии Windows)
- Если обновления доступны для загрузки, нажмите «Установить обновления».
- После завершения обновления следует перезагрузить ПК.
Если Центр обновления Windows не смог устранить сообщение об ошибке shimgvw.dll, перейдите к следующему шагу. Обратите внимание, что этот последний шаг рекомендуется только для продвинутых пользователей ПК.
Если эти шаги не принесут результата: скачайте и замените файл shimgvw.dll (внимание: для опытных пользователей)
Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла shimgvw.dll. Мы храним полную базу данных файлов shimgvw.dll со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии Windows . Чтобы загрузить и правильно заменить файл, выполните следующие действия:
- Найдите версию операционной системы Windows в нижеприведенном списке «Загрузить файлы shimgvw.dll».
- Нажмите соответствующую кнопку «Скачать», чтобы скачать версию файла Windows.
- Копировать файл в соответствующий каталог вашей версии Windows:
Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.








