Файл up чем открыть

Обновлено: 03.07.2024

Привет, хабровчане. В рамках курса "Reverse-Engineering. Basic" Александр Колесников (специалист по комплексной защите объектов информатизации) подготовил авторскую статью.

Также приглашаем всех желающих на открытый вебинар по теме «Эксплуатация уязвимостей в драйвере. Часть 1». Участники вебинара вместе с экспертом разберут уязвимости переполнения в драйверах и особенности разработки эксплойтов в режиме ядра.

Статья расскажет о подходах к анализу запакованных исполняемых файлов с помощью простых средств для обратной разработки. Будут рассмотрены некоторые пакеры, которые применяются для упаковки исполняемых файлов. Все примеры будут проведены в ОС Windows, однако изучаемые подходы можно легко портировать на любую ОС.

Инструментарий и настройка ОС

Для тестов будем использовать виртуальную машину под управлением ОС Windows. Инструментарий будет содержать следующие приложения:

установленный по умолчанию плагин x64dbg Scylla;

Самый быстрый и простой способ провести распаковку любого исполняемого файла — применить отладчик. Но так как мы будем также рассматривать язык программирования Python, то может понадобится проект:

uncompile6 проект, который позволяет разобрать байткод виртуальной машины Python;

pyinstallerExtractor инструмент для распаковки архива pyInstaller.

Общие методы снятия паковки

Разберемся, что же такое паковка. В большинстве случаев исполняемые файлы современных языков программирования имеют довольно большой размер при минимальном наборе функций. Чтобы оптимизировать данную величину, можно применить паковку или сжатие. Наиболее распространенный на сегодняшний день пакер — UPX. Ниже приведен пример того, как пакер проводит сжатие исполняемого файла.


На картинке может показаться, что файл стал по размеру больше, однако это не всегда так. Большинство файлов за счет такой модификации могут уменьшить свой размер до 1.5 раз от исходного объема.

Что же от этого реверс-инженеру? Почему надо знать и уметь определять, что файл упакован? Приведу наглядный пример. Ниже приведен снимок файла, который не запакован:


И файл, который был пропущен через алгоритм UPX:


Изменения коснулись в этом случае двух основных точек исполняемого файла:

Точка входа — в случае с упакованным файлом это начало алгоритма распаковки, настоящий алгоритм программы будет работать только после того, как будет распакован оригинальный файл;

Код оригинального файла: теперь не найти паттернов, которые можно сразу разбирать как команды.

Итак, чтобы снова анализировать оригинальный файл, нужно найти настоящую или оригинальную точку входа. Для этого нужно разбить алгоритм на основные этапы:

Этап подготовки исполнения файла — загрузчик ОС настраивает окружение, загружает файл в оперативную память;

Сохранение контекста — упаковщик сохраняет контекст исполнения файла (набор значений регистров общего назначения, которые были установлены загрузчиком ОС);

Распаковка оригинального файла;

Передача управления оригинальному файлу.

Все описанные выше этапы можно легко отследить в отладчике. Особенно может выделяться процедура сохранения контекста. Для нее в разных архитектурах могут быть использованы команды pushad/popad или множественное использование команды push . Поэтому всегда приложение трассируют до первого изменения регистра ESP/RSP, и ставят "Hardware Breakpoint" на адрес, который был помещен в регистр в первый раз. Второе обращение этому адресу будет в момент восстановления контекста, который заполнил загрузчик ОС. Без него приложение завершится с ошибкой.

Пример UPX

Попробуем с помощью отладчика найти оригинальную точку входа для приложения. Запечатлим оригинальную точку входа до упаковки UPX:


Как та же точка входа выглядит после упаковки:


Запустим отладчик и попробуем найти место сохранения контекста:


Ждем первого использования ESP — в отладчике при этом значение регистра подсветится красным цветом. Затем устанавливаем точку останова на адрес и просто запускаем приложение:


В результате попадаем на оригинальную точку входа:


Вот так просто, теперь используя плагин Scylla Hide можно сохранить результирующий файл на жесткий диск и продолжить его анализ.

Подобный метод можно применять для любого упаковщика, который сохраняет контекст на стек.

Пример PyInstaller

Не всегда подобный подход работает для приложений, которые используют более сложную структуру исполняемого файла. Рассмотрим файл, который был создан с помощью PyInstaller — пакет, который позволяет преобразовать Python скрипт в исполняемый файл. При генерации исполняемого файла создается архив, который содержит виртуальную машину Python и все необходимые библиотеки. Сам исходный код приложения при этом преобразуется в байт код и его нельзя дезассемблировать.

Попробуем все же получить что-то читаемое. Создадим простое приложение на Python и упакуем с помощью PyInstaller. Исходный код приложения:

Установим пакет pyInstaller и создадим exe файл:

Итак, проведем сбор информации о том, что в итоге получилось. У нас есть архив, который должен запустить виртуальную машину, и код, который мы записали в виде скрипта. Попробуем восстановить исходник и просто его прочесть даже без запуска.

После выполнения команд выше, у вас должна создаться директория ./dist/test.exe . Откроем последовательно файл с помощью pyinstallerextractor и uncompile3 :


Наш скрипт находится в директории, которая создается в результате распаковки. Наименование файла должно соответствовать названию exe файла. В нашем случае это test.pyc . Откроем его в hiew :


Декомпиляция стандартными средствами невозможна, так как инструменты просто не умеют работать с байткодом Python. Применим специализированный инструмент — uncompile6 .

Открываем любые файлы

Файлы с незнакомыми расширениями встречаются не каждый день. Однако бывают ситуации, когда именно их очень нужно открыть. CHIP расскажет, как определить формат данных, и предоставит необходимые приложения для работы с ними.


Каждому файлу — своя программа

Определить тип файла можно просто по его расширению, после чего станет понятно и его предназначение.

Заставляем систему отображать расширения
Выбираем приложение

Чтобы увидеть, какая программа будет обрабатывать файл по умолчанию, нужно кликнуть по нему правой кнопкой мыши и выбрать в контекстном меню пункт «Свойства». В открывшемся окне на вкладке «Общие» вы увидите тип файла и его расширение, а также утилиту, которая назначена ответственной за открытие данных в таком формате. Если нужно другое приложение, кликните по «Изменить». Откроется список рекомендуемых программ. Если ни одна из них вас не устраивает, нажмите кнопку «Обзор», в появившемся окне зайдите в папку, соответствующую нужной утилите, и кликните по исполняемому файлу. Как правило, это имя приложения с расширением EXE.

Определяем тип файла

Конвертируем в нужный формат

В некоторых случаях решить проблему с открытием файла помогает его преобразование в другой, более распространенный формат. Сделать это можно с помощью специальных программ-конвертеров.

Векторные изображения

С помощью универсального бесплатного инструмента UniConvertor вы можете преобразовывать файлы из одного векторного формата в другой. В плане импорта программа поддерживает такие расширения, как CDR, CDT, CCX, CDRX, CMX (CorelDRAW), AI, EPS, PLT, DXF, SVG и другие. Экспорт осуществляется в форматы AI, SVG, SK, SK1, CGM, WMF, PDF, PS. Утилита доступна в версиях для Windows и Linux.

Растровая графика

Программа Free Image Convert and Resize занимает мало места на жестком диске, но предлагает функции по конвертированию и преобразованию растровых изображений, в том числе в пакетном режиме. Поддерживаются следующие форматы файлов: JPEG, PNG, BMP, GIF, TGA, PDF (последний — только для экспорта).

Видеофайлы

Мощный бесплатный инструмент Hamster Video Converter обеспечивает преобразование видеофайлов из одного формата в другой. Поддерживается конвертирование в 3GP, MP3, MP4, AVI, MPG, WMV, MPEG, FLV, HD, DVD, M2TS и т. д. Доступна пакетная обработка.

Аудиоданные

Бесплатная программа Hamster Free Audio Converter от того же производителя предлагает конвертирование аудио между форматами AIFF, OGG, WMA, MP3, MP2, AC3, AMR, FLAC, WAV, ACC, COV, RM. На сайте производителя также имеются преобразователи архивных форматов и электронных книг.

Используем онлайн-сервисы

Не всегда есть возможность установить программу-конвертер на ПК — в этом случае помогут интернет-ресурсы для преобразования документов.

Zamzar
FreePDFconvert

Бесплатная утилита UniConvertor поможет быстро преобразовывать файлы векторных форматов в пакетном режиме Free Image Convert and Resize наделена простейшими функциями конвертирования и изменения размера изображений Для конвертации видео- и аудиофайлов удобно использовать программы Hamster со встроенными кодеками и набором пресетов Онлайн-ресурсы Zamzar (верхний скриншот) и FreePDFConvert — универсальные конвертеры с ограничением по объему

Просмотр любого файла

Программы-просмотрщики зачастую не позволяют работать с файлом полноценно — например, редактировать его. Но с их помощью вы сможете открыть файл и посмотреть на его содержимое.


Программа ICE Book Reader Professional является универсальным инструментом для чтения файлов электронных книг и различного рода текстовых документов, к которым относятся DOC, TXT, HTML, PDF и многие другие.

Бесплатная утилита Free Viewer открывает файлы разных форматов, отображая дополнительно окно с информацией. С ее помощью можно точно узнать, какая программа необходима для открытия того или иного файла. Кроме того, в приложении имеется встроенный конвертер, и оно позволяет установить ассоциацию для файлов на уровне ОС.


Небольшая бесплатная программа XnView послужит удобным просмотрщиком графических файлов. К тому же в ней можно выполнять элементарные операции редактирования картинок (вставка надписи, поворот, применение эффектов). Всего утилита поддерживает более 400 различных расширений и позволяет конвертировать их более чем в 50 форматов. Среди дополнительных возможностей программы — работа со сканером, создание скриншотов, запись рисунков на компакт-диск.


Если данные повреждены

Онлайн-справочники типов файлов

Прочесть о типах файлов и разобраться в их многообразии можно на специализированных онлайн-ресурсах.

Все пользователи, которые работают в операционной системе, постоянно открывают те или иные данные. В большинстве случаев с их запуском не возникает никаких проблем, достаточно использовать любой из способов запуска:

  • двойной клик левой кнопкой мыши;
  • выделение значка мышью, кнопкой tab или стрелочками, а после нажатие на enter;
  • щелчок право кнопкой мыши, а потом выбор: открыть или открыть с помощью.

Так происходит в большинстве случаев, потому что в системе по умолчанию задано сопоставление для самых распространенных файлов, и она знает какую программу использовать для открытия элементов с подобными расширениями.


Здесь стоит обратить внимание на расширение, ведь в будущем придется искать и устанавливать приложение для того, чтобы ОС научилась работать с ними. Расширение можно узнать и другим способом. Например, можно кликнуть ПКМ по элементу и выбрать его свойства, в главном окне можно увидеть тип, также можно зайти на вкладку Подробно и увидеть его расширение там. Само расширение пишется через точку после имени.


В этом случае, приложение уже сопоставлено расширению и можно увидеть это на главной странице, в случае неизвестного типа элемента приложение отображаться не будет. Можно просто включить отображение расширений в проводнике. Для этого нужно зайти в панель управления, дальше перейти к параметрам папок и снять галочку с требуемого пункта.


Какой программой открыть файл

Теперь, когда пользователь знает тип, можно приступать к его открытию. Конечно, проще всего скопировать название типа в строку поиска и написать «Чем открыть», однако, есть возможность попасть на не самые благонадежные сайты. Дальше будут приведены типы, которые используются чаще всего, а также утилиты, с помощью которых с ними можно работать.

Rar, 7z — это архивы и могут быть открыты архиваторами, которые схожи по названию с расширением. Winrar, 7zip — они же могут работать и с большинством других архивов.

В Pdf могут хранится документы, чертежи, картинки и еще множество различных данных. Открыть их можно с помощью foxit reader или acrobat reader.

Что такое редактор реестра в Windows и как им пользоваться

DJVU также представляют собой отсканированные документы, часто в таком формате хранятся целые книги. Открыть можно с помощью DJVU reader, в некоторых случаях данные не сопоставляются, тогда следует запустить утилиту, выбрать файл-открыть и указать путь к элементу.

Flv, mkv, avi, mp4 и так далее являются видео данными. Некоторые могут открываться и через стандартный проигрыватель, для других же придется качать другой плеер. В любом случае, лучше будет сразу после установки системы загрузить и установить K-Lite Codec Pack. Он способен воспроизводить почти все известные видео форматы.

WAV, mp3 и т.д являются файлами аудио формата, для их воспроизведения подойдет любой плеер, даже встроенный. Для некоторых более специфических типов придется искать и устанавливать дополнительные утилиты.

Fb2, mobi, к этому типу относятся электронные книги. Их понимают большинство читалок и программ для чтения книг на андроиде. В виндовс можно установить расширение FB2 reader и открывать через него.

Docx, эти файлы способны открывать утилиты Microsoft Word 2007 и новее. До этой версии был тип .doc, старый формат открывается новыми утилитами, а новый старыми, естественно, нет, так что стоит обратить внимание на версию офиса.

Xls, xlsx — сопоставляются утилите Excel 2007 и новее. Младшие версии открывают только первый формат.

Ppt — в этом формате хранятся презентации, созданные в powerpoint.

В формате txt хранятся текстовые файлы, которые вполне можно открыть обычным блокнотом.

Многие пользователи сталкиваются с вопросом, что такое открытый формат файла и как с ним работать.

Открытый формат представляет собой формат цифровых данных, (чаще всего софт), и гарантируют доступ к данным, свободный от лицензионных ограничений при использовании.

Каждый может использовать открытый формат файла без каких-либо денежных затрат для любой желаемой цели.

Открытый формат может быть реализован, как программное обеспечение типа open source, а также, как проприетарное и свободное (или открытое) ПО.

открытое ПО

Также открытыми форматами называются свободные форматы файлов, не обремененные никакими авторскими правами, патентами, торговыми марками или другими ограничениями (например, если они находятся в свободном доступе).

В отличие от открытых форматов, закрытые форматы считаются коммерческой тайной.

Что такое открытый формат

Чтобы ответить на этот вопрос, стоит вспомнить о существовании разных форматов файлов и разных программ для их чтения и дальнейшего использования.

К примеру, тот же знакомый всем нам формат .doc или .docx открывается в Microsoft Office Word.

Чтобы программа могла открыть файл в том или ином формате, она должна знать все его особенности.

В мире разработки ПО эти особенности называются спецификацией.

программное обеспечение Open Source

Так вот, открытые форматы файлов отличаются тем, что их разработчики нисколько не скрывают эту самую спецификацию, и даже отдают её в открытый доступ.

Это означает, что любой начинающий программист может взять её и написать программу для чтения того или иного файла.

Чаще всего такое программное обеспечение тоже является открытым – код хранится в общем доступе.

Закрытые программы и форматы в литературе называются проприетарными.

Тот, кто создал проприетарный формат или программу, получает от этого прибыль, ведь чтобы пользоваться ею, необходимо программу купить.

Если создатель формата и создатель программы для его чтения – разные люди, то создатель программы отдает часть своей прибыли создателю формата.

Создание проприетарного, то есть закрытого формата – очень прибыльное дело, ведь его создатель может монополизировать рынок.

Дело в том, что если ни у кого, кроме создателя, не будет спецификации, никто не сможет создать программу для работы с таким форматом – это означает, что программа будет всего лишь одна.

Правда, для этого еще придется доказать всему миру, что этот формат лучше других, что его действительно стоит использовать и что он стоит своих денег.

open-po

Сейчас существует огромное количество открытых форматов, и это хорошая альтернатива закрытым форматам.

В начале компьютерной эры разработчики делали только закрытые форматы и закрытые программы.

Сейчас рядовой пользователь с большой неохотой покупает какую-то программу, разработчики стали делать большое количество открытых форматов и программ для их чтения.

К примеру, есть формат .odf, довольно известная альтернатива закрытому формату .doc.

Файлы с расширением .odf открываются в пакете офисных приложений OpenOffice (бесплатном аналоге Microsoft Office). Рассмотрим и другие примеры открытых форматов.

Примеры открытых форматов и программы для работы с ними

Открытые форматы документов

Один из таких форматов, odf, также можно открыть с помощью программ Symphony, KOffice, Google Docs и множества других программ.

Кроме odf, в OpenOffice также можно открывать и создавать документы следующих форматов:

  • odg – графический файл;
  • odp – презентация;
  • ods – таблицы;
  • odc – диаграмма;
  • odi – картинка;
  • odf – формула.

Для всех этих типов файлов есть множество шаблонов.

pdf open software

PDF – очень известный на сегодняшний день формат, который тоже является открытым и тоже открывается огромным количеством различных программ, хотя и является разработкой Adobe Systems и изначально открывался только в распространенной pdf-читалке Acrobat Reader.

DVI – еще один популярный формат графических документов. Преимущество его в том, что он совершенно спокойно читается на самых разных устройствах и платформах.

Открыть его можно практически любой программой для чтения документов или же просто конвертировать в тот же PDF.

Появился он в результате слияния TeX и LaTeX, форматов разметки документов, о которых пойдет речь далее.

Форматы разметки документов

Самым известным форматом здесь является html, который можно открыть обычным Блокнотом, тем же OpenOffice, Notepad и большим количеством специализированных программ для веб-разработки.

В документе с таким форматом, фактически, хранится информация о форматировании страницы сайта. Если открыть его в браузере, то можно увидеть, как будет выглядеть эта страница.

открытое/закрытое ПО

XML – это формат, который позволяет создавать инструкции для других файлов. К примеру, это могут быть наборы тегов, которые впоследствии используются для создания структур данных.

Эти теги можно задавать как угодно, лишь бы другие пользователи все это понимали. Открыть документ в формате XML тоже можно практически в любом текстовом редакторе.

Вышеупомянутые TeX и LaTeX форматы являются языками разметки и языками программирования. Второй отличается от первого лишь тем, что он используется в более высокоуровневых задачах.

Специализированные форматы

Также открывается во всех браузерах.

Самым известным открытым форматом аудиофайлов является FLAC. Он, как и PNG, позволяет сжимать данные безо всяких потерь.

Открывается в Windows Media Player, Winamp, jetAudio, Spider Player, AIMP и многими другими плеерами.

DWG – формат проектов в AutoCAD, в котором могут храниться карты, фотографии и геометрическая информация. Открывается он продуктами на базе AutoCAD, Revit и Inventor.

Ниже приводится таблица большинства других популярных открытых форматов и программ для их чтения.

Таблица 1. Открытые форматы и программы для их чтения

Открытые форматы и программы для их чтения

Открытые форматы и программы для их чтения

Проблемы открытых форматов

Нередко пользователи различных операционных систем сталкиваются с тем, что открытые форматы файлов могут путаться между собой, изменяться или вообще оставаться неизвестными.

Поэтому было бы полезно разобрать, с какими проблемами сталкиваются пользователи по всему миру и как с ними бороться.

Действительный формат отличается от указанного

В большинстве случаев данная проблема проявляется в ошибке с соответствующим текстом. Пример таковой показан на рисунке ниже.

Ошибка «Действительный формат отличается от указанного»

Ошибка «Действительный формат отличается от указанного»

В таком случае можно сделать следующее:

  1. Нажать кнопку «Да». Возможно, это всего лишь какие-то неполадки в системе и файл сможет спокойно открыться в указанной программе.
  2. Просто изменить расширение файла в его названии на нужное. Разумеется, такой вариант возможен только в том случае, когда вам известно то, каким действительно должно быть расширение. Дело в том, что по каким-то причинам при загрузке файла может измениться его расширение.

Изменение расширения файла

Изменение расширения файла

Также можно скачать файл заново.

Если данная ошибка возникает при открытии файла, который должен открываться в Microsoft Excel в Windows (к примеру, xls), а чаще всего так и происходит, то необходимо сделать следующее:

  1. Нажмите Win+R или «Выполнить» в меню «Пуск» (Windows) и введите команду regedit.
  2. После этого в меню справа последовательно пройдите по следующему пути: HKEY_CURRENT_USER\Software\Microsoft\Office\[номер версии]\Excel\Security.

Ввод regedit и папка реестра Excel

Ввод regedit и папка реестра Excel

  1. На панели сверху нажимаем «Правка», затем «Создать» и «Параметр DWORD».

Меню создания параметра DWORD

Меню создания параметра DWORD

  1. В названии ввести «ExtensionHardening». Открыть указанный файл путем нажатия на него правой кнопкой мыши и выбора варианта «Изменить».

Созданный файл «ExtensionHardening»

Созданный файл «ExtensionHardening»

  1. В открывшемся окне нужно ввести значение параметра «0». Таким образом вы попросту заставите систему все равно открывать файл, даже если его расширение не совпадает действительному.
  2. Закрыть редактор реестра.

Неизвестный формат файла

Если система показывает, что формат файла ей неизвестен, вам просто нужно узнать его расширение, найти в интернете программу для его открытия (можно взять из Таблицы 1), скачать, установить ее и спокойно открыть файл.

Также распространенной ошибкой является «Файл поврежден или имеет неизвестный формат». Как с ней бороться, показано в видео ниже.

Читайте также: