DOI: 10.15514/ISPRAS-2022-34(2)-3
Поиск ошибок в бинарном коде методами динамической символьной интерпретации
1А.В. Вишняков, ORCID: 0000-0003-1819-220X <vishnya@ispras.ru> 1,2И.А. Кобрин, ORCID: 0000-0002-6035-0577 <kobrineli@ispras.ru> 1А.Н. Федотов, ORCID: 0000-0002-8838-471X <fedotoff@ispras.ru>
1 Институт системного программирования им. В. П. Иванникова РАН,
109004, Россия, г. Москва, ул. А. Солженицына, д. 25 2Московский государственный университет имени М.В. Ломоносова, 119991, Россия, Москва, Ленинские горы, д. 1.
Аннотация. Современное программное обеспечение стремительно развивается, принося новые ошибки, и все больше компаний следуют безопасному циклу разработки ПО. Одними из самых популярных средств для поддержки безопасного цикла разработки являются фаззинг и символьная интерпретация программ, позволяющие автоматически тестировать программу и искать в ней ошибки. Гибридный фаззинг – наиболее эффективный подход, который заключается в применении комбинации этих двух техник, при котором две техники работают совместно. Другим способом искать программные ошибки является символьная интерпретация с использованием предикатов безопасности – условий на входные данные, при выполнении которых будет проявлена ошибка. В этой работе мы предлагаем метод автоматизированного поиска ошибок с помощью динамической символьной интерпретации, совмещающий гибридный фаззинг с проверкой предикатов безопасности. Гибридный фаззинг требуется для получения большого количества различных входных данных, а ошибки работы с памятью и неопределенного поведения в программах ищут предикаты безопасности, которые позволяют находить ошибки деления на нуль, выхода за границы массива, целочисленного переполнения и другие. Результаты работы предикатов безопасности верифицируются с помощью санитайзеров, чтобы отбросить ложно положительные срабатывания. В результате практического применения предложенного метода к программам с открытым исходным кодом было найдено 11 различных новых ошибок в 5 разных проектах.
Ключевые слова: динамическая символьная интерпретация; DSE; фаззинг; предикат безопасности; автоматическое обнаружение ошибок; безопасный цикл разработки; SDL; бинарный код; санитайзер; ошибка; CWE
Для цитирования: Вишняков А.В., Кобрин И.А., Федотов А.Н. Поиск ошибок в бинарном коде методами динамической символьной интерпретации. Труды ИСП РАН, том 34, вып. 2, 2022 г., стр. 2542. DOI: 10.15514/ISPRAS-2022-34(2)-3
Благодарности. Работа поддержана грантом РФФИ № 20-07-00921 A.
Error detection in binary code with dynamic symbolic execution
1A.V. Vishnyakov, ORCID: 0000-0003-1819-220X<vishnya@ispras.ru> 1,2E.A. Kobrin, ORCID: 0000-0002-6035-0577 <kobrineli@ispras.ru> 1A.N. Fedotov, ORCID: 0000-0002-8838-471X <fedotoff@ispras.ru> lIvannikov Institute for System Programming of the RAS, 25, Alexander Solzhenitsyn Str., Moscow, 109004, Russia 2Lomonosov Moscow State University, GSP-1, Leninskie Gory, Moscow, 119991, Russian Federation
Abstract. Modern software is rapidly developing, revealing new program errors. More and more companies follow security development lifecycle (SDL). Fuzzing and symbolic execution are among the most popular options for supporting SDL. They allow to automatically test programs and find errors. Hybrid fuzzing is one of the most effective ways to test programs, which combines these two techniques. Checking security predicates during symbolic execution is an advanced technique, which focuses on solving extra constraints for input data to find an error and generate an input file to reproduce it. In this paper we propose a method for automatically detecting errors with the help of dynamic symbolic execution, combining hybrid fuzzing and checking security predicates. Firstly, we run hybrid fuzzing, which is required to increase number of corpora seeds. Then we minimize corpora. Thus, it would give the same coverage as the original corpora. After that we check security predicates on minimized corpora. Thus, security predicates allow to find errors like division by zero, out of bounds access, integer overflow, and more. Security predicates results are later verified with sanitizers to filter false positive results. As a result of applying the proposed method to different open source programs, we found 11 new different errors in 5 projects.
Keywords: dynamic symbolic execution; DSE; fuzzing; security predicate; automatic error detection; security development lifecycle; SDL; binary code; sanitizer; bug; error; CWE
For citation: Vishnyakov A.V., Kobrin E.A., Fedotov A.N. Error detection in binary code with dynamic symbolic execution. Trudy ISP RAN/Proc. ISP RAS, vol. 34, issue 2, 2022, pp. 25-42 (in Russian). DOI: 10.15514/ISPRAS-2022-34(2)-3
Acknowledgements. This work was supported by RFBR grant 20-07-00921 A.
1. Введение
Современное программное обеспечение стремительно развивается. Новый код неизбежно приносит с собой новые ошибки и уязвимости [1]. Всё больше и больше индустриальных компаний следуют безопасному циклу разработки [2-4] для улучшения качества программного обеспечения и защиты его от злонамеренных атак. Главной целью безопасного цикла разработки является поиск ошибок в разрабатываемом программном обеспечении, включающих в себя как простые ошибки, приводящие к неправильной работе программы в несущественных местах, так и те, которые приводят к аварийному завершению работы программы или открывают доступ для различных злонамеренных атак. В результате применения безопасного цикла разработки программное обеспечение становится безопаснее, надежнее и качественней.
Одной из наиболее распространенных технологий для поддержки безопасного цикла разработки остается фаззинг с обратной связью по покрытию [5-6]. Гибридный фаззинг извлекает выгоду из динамической символьной интерпретации [7-17], открывая сложные состояния программы, трудно досягаемые с помощью простого фаззинга. Фаззинг представляет собой метод автоматического тестирования программ, при котором программе на вход подается множество наборов входных данных, после чего анализируется реакция программы и генерируются новые входные данные. Целью фаззинга является поиск входных данных, которые приведут выполнение программы к аварийному завершению, переполнению по памяти или зависанию.
Символьная интерпретация представляет собой метод автоматического тестирования, при котором происходит интерпретация программы, где конкретным значениям переменных, зависящих от входных данных, сопоставляются символьные переменные, принимающие произвольные значения. Анализируемый путь выполнения программы может быть описан предикатом пути – системой уравнений и неравенств, зависящих от символьных переменных, решение которой обеспечивает прохождение потока управления по тому же пути. Предикатом безопасности мы называем дополнительные условия на предикат пути, которые позволяют проявить ошибочную ситуацию в программе.
В данной работе мы описываем разработанный метод поиска ошибок работы с памятью и неопределенного поведения в программном обеспечении, использующий гибридный фаззинг программ и предикаты безопасности, и представляем результаты практического применения этого метода на программах с открытым исходным кодом.
2. Обзор
2.1 KLEE
KLEE – это инструмент для символьной интерпретации, способный автоматически генерировать тесты для достижения высокого покрытия и поиска ошибок на разнообразном наборе сложных программ [18]. Во время символьной интерпретации KLEE для потенциально опасных операций генерирует условные переходы, которые проверяют, существует ли какой-либо набор входных данных, который может привести к проявлению ошибки. Например, инструкция деления генерирует условный переход, проверяющий, может ли делитель быть равен нулю. Такие условные переходы будут работать так же, как и обычные условные переходы: при выполнимости предиката пути, содержащего такой условный переход, будет сгенерирован входной файл для воспроизведения ошибки и будет порожден новый процесс работы KLEE, который продолжит анализ пути с условием, обратным условию для проявления ошибки. Таким образом, даже если проверка успешна (то есть обнаружена ошибка), KLEE продолжает работу по пути, на котором ошибка не проявляется, добавляя отрицание условия проверки в качестве ограничения на путь.
2.2 Mayhem
Mayhem – это система для автоматического обнаружения программных ошибок в бинарных файлах [19]. Каждая ошибка, найденная с помощью Mayhem, сопровождается работающей эксплуатацией этой ошибки. Mayhem генерирует эксплойты для каждой возможной перезаписи счетчика инструкций, обычно вызываемой переполнением буфера. Когда Mayhem находит символьный адрес инструкции, он пытается сгенерировать эксплуатацию перехода по регистру. В таких случаях счетчик инструкций должен указывать на инструкции по типу jmp eax, а регистр eax должен указывать на место в памяти, где может быть размещен какой-то произвольный код. Такие условия конструируются в виде формулы, которая передается математическому решателю. Если решение существует, то ошибка может быть проэксплуатирована. Если решения не существует, то генерируется более простая формула, где счетчик инструкций должен указывать конкретно на место в памяти, где может быть размещен произвольный код.
Для форматных строк Mayhem проверяет, содержат ли аргументы для форматной строки или сама форматная строка символьные байты. Если так, то Mayhem пытается разместить в аргументе данные, которые приведут к перезаписи адреса возврата из форматирующей функции.
2.3 Google Sanitizers
Google Sanitizers – это набор инструментов c открытым исходным кодом для динамического анализа кода [20], позволяющие обнаруживать различные ошибочные ситуации во время выполнения программы.
Реализация санитайзеров основана на инструментации программного обеспечения на этапе его компиляции. Например, при использовании AdressSanitizer различные манипуляции с памятью в процессе выполнения программы одновременно отображаются определенным способом в отдельной структуре данных, называемой теневой памятью, позволяющей следить за корректностью выполнения различных операций с памятью. При использовании UndefinedBehaviorSanitizer в код программы на этапе компиляции встраиваются различные проверки на целочисленные переполнения и другие ошибки неопределенного поведения. Существует несколько санитайзеров: AddressSanitizer, LeakSanitizer, ThreadSanitizer, UndefinedBehaviorSanitizer и MemorySanitizer.
AddressSanitizer позволяет обнаруживать ошибки работы с памятью во время ее выполнения. Он способен обнаружить переполнение буфера на стеке, куче, а также переполнение глобальных буферов. Также он позволяет обнаруживать использования указателей после освобождения памяти, на которую они ссылаются, и обнаруживает двойные и некорректные освобождения памяти, а также другие ошибки работы с памятью.
LeakSanitizer позволяет обнаруживать утечки памяти. Для использования этого санитайзера отдельно не требуется инструментации программы, однако также он встроен в AddressSanitizer, что позволяет использовать эти два санитайзера совместно. ThreadSanitizer позволяет обнаруживать ошибки гонки данных, которые происходят, когда разные потоки выполнения обращаются к одним и тем же областям памяти без синхронизации и где хотя бы одно из обращений являются записью в эту область памяти. UndefinedBehaviorSanitizer позволяет обнаруживать ошибки неопределенного поведения, являющиеся результатом выполнения операций с неспецифицированными семантиками, таких как деление на нуль, разыменование нулевого указателя, использование неинициализированной нестатической переменной и т.п.
MemorySanitizer позволяет обнаруживать ошибки неинициализированного чтения из памяти. Этот санитайзер находит случаи, когда производится чтение из памяти, выделенной на стеке или в куче, до того, как в эту память было что-либо записано.
2.4 SAVIOR
SAVIOR – это фреймворк для гибридного тестирования программного обеспечения, нацеленный на поиск ошибок [21]. Работа SAVIOR основывается на двух механизмах: механизме распределении приоритетов, основанном на ошибках, и механизме верификации с учетом ошибок.
Суть механизма распределения приоритетов заключается в том, чтобы производить символьную интерпретацию не на всех наборах входных данных, а отдавать приоритет таким входным данным, которые с большей вероятностью приведут к обнаружению программных ошибок. До тестирования программного обеспечения SAVIOR анализирует исходный код и статически помечает потенциально опасные места в программе. Также SAVIOR высчитывает набор базовых блоков, достижимых от каждого условного перехода. Во время символьной интерпретации SAVIOR считает приоритетными те наборы входных данных, которые смогут привести к посещению наибольшего числа важных условных переходов. Таким образом, SAVIOR ускоряет обнаружение новых ошибок в программах.
Суть механизма верификации заключается в следующем. Получая наборы входных данных в результате фаззинг-тестирования, SAVIOR выполняет программу на этих входных данных и для каждого ранее помеченного потенциально опасного места верифицирует
соответствующий ему предикат, проверяя его с учетом пути выполнения. Если предикат удовлетворим, то ошибка подтверждена. Это позволяет SAVIOR генерировать доказательство обнаружения ошибки в виде конкретных входных данных или ее несуществования на конкретном пути выполнения программы.
Пометка потенциально опасных мест производится с помощью Undefined Behavior Sanitizer. На основе инструментации от санитайзера SAVIOR инструментирует по-тенциально опасные места в программе предикатами, удобными для математического решателя, которые будут проверяться на этапе верификации. Таким образом, SAVIOR поддерживает предикаты для ошибок выхода за границы массива, битовых сдвигов на слишком большое значение, знакового и беззнакового целочисленного переполнения. С помощью статического анализа SAVIOR учитывает знаковость операндов и их размеры при составлении предикатов для дальнейшей проверки на этапе верификации.
2.5 ParmeSan
ParmeSan – инструмент для фаззинга с обратной связью по санитайзерам, который оптимизирован специально для покрытия ошибок [22]. Основной идеей является использование инструментации, производимой санитайзерами, для обеспечения эффективного механизма поиска интересных базовых блоков для обратной связи с фаззером. В отличие от фаззеров с обратной связью по покрытию, которые вслепую покрывают все базовые блоки программы, ParmeSan направлен на исследование путей выполнения программы, имеющих наибольший шанс проявления ошибок за кратчайшее время. Первым делом ParmeSan исследует интересные цели из данного санитайзера, которым была проинструментирована программа, убирая неинтересные проверки. Затем динамически конструируется граф потока управления, чтобы направить фаззинг на конкретные цели. Сам процесс фаззинга основан на двух этапах: фаззинга для конструирования графа потока управления и фаззинга целевых точек программы, нацеленного на поиск ошибок в программе. Для ускорения работы второго этапа ParmeSan использует доступную из анализа потока данных информацию. Одной из основных идей, заложенных в работу ParmeSan, является то, как система направляет фаззинг по путям выполнения, ведущим к интересным блокам. ParmeSan в процессе работы строит граф потока управления. ParmeSan выполняет программу на исходных наборах входных данных и смотрит, до каких базовых блоков дошло выполнение программы. Основываясь на построенном графе потока управления, ParmeSan с помощью введенной авторами метрики вычисляет дистанцию от пройденных базовых блоков до целевых блоков, и на основе полученных значений метрики и графа потока управления направляет фаззинг так, чтобы как можно скорее дойти до целевых блоков, содержащих потенциальную ошибку. Для этого фаззер, представленный ParmeSan, при выборе следующего набора входных данных для мутации выбирает тот набор, при выполнении которого были посещены базовые блоки, имеющие наименьшую дистанцию с целевыми блоками, и повышает приоритет для инвертирования тех условных переходов, которые наиболее близко расположены к целевым базовым блокам.
Санитайзеры инструментируют программу двумя разными способами. Некоторые инструментации просто обновляют внутренние структуры данных (например, теневую память), другие инструментации используются, когда санитайзеры обнаруживают ошибку, используя условие условного перехода, которое взаимодействует с внутренними структурами данных или непосредственным состоянием программы. Цель ParmeSan -направить фаззинг в те точки программы, где санитайзер обновляет свои внутренние структуры данных, и решать предикаты, вставленные санитайзерами, выполнимость которых означает обнаружение ошибки, с помощью мутаций на основе анализа потока данных. Таким образом, процесс работы ParmeSan состоит из трех фаз. Первая фаза – быстрое исследование путей исполнения с опорой на покрытие и этап трассировки, чтобы получить
граф потока управления. В течение первой фазы ParmeSan собирает трассы и пытается построить граф потока управления настолько точно, насколько это возможно. Вторая фаза -направленное исследование, чтобы достичь целевых базовых блоков. Третья фаза -генерация входных данных, проявляющих ошибку, – начинается, когда целевой блок был достигнут.
2.6 IntScope
IntScope – инструмент для обнаружения ошибок целочисленного переполнения при помощи символьной интерпретации программного обеспечения [23]. IntScope предлагает следующий подход для обнаружения ошибок целочисленного переполнения. При помощи символьной интерпретации анализируются инструкции, реализующие арифметические операции. Далее найденные места с потенциальной ошибкой целочисленного переполнения проверяются лениво, то есть арифметическая инструкция проверяется не сразу, а лишь когда помеченное символьное значение используется в чувствительных точках, таких как выделение памяти функциями malloc, calloc. IntScope предупреждает о потенциальной ошибке целочисленного переполнения, только если помеченное символьное значение, используемое в чувствительных местах, может переполниться.
Недостоверный источник – арифметическая инструкция в программе, где потенциально может произойти ошибка целочисленного переполнения, и один из операндов получен из помеченных данных. Помеченные данные могут быть получены из недоверенных источников входных данных, таких как сеть, файлы или опции командной строки. Функциями, с помощью которых могут быть получены помеченные данные, считаются read, fread, recv.
Сток ошибки – место в программе, в котором использование переполненного значения может привести к дальнейшим программным уязвимостям. В IntScope выделяются следующие стоки ошибок:
• выделение памяти (использование переполненного значения в аргументах таких функций, как malloc);
• доступ к памяти (переполненное значение использовано в качестве индекса или смещения при разыменовании адреса);
• условный переход (использование переполненного значения в условном переходе, который может привести к пропуску проверок на безопасность).
При достижении потенциального стока ошибки, использующего уже найденный источник ошибки, происходит соответствующая проверка. Если сток – аргумент функции выделения памяти, то значение проверяется как беззнаковое. Также информацию о знаковости символьного значения IntScope получает с помощью инструкций условных переходов, таких как JG (знаковый), JA (беззнаковый) и подобных.
2.7 Обнаружение целочисленных уязвимостей переполнения в двоичном коде программного обеспечения
В данной работе авторы предлагают свой подход для поиска ошибок целочисленного переполнения в бинарных файлах [24]. Подход основан на символьной интерпретации и двойном отображении памяти. Для этого строится усеченный граф потока управления, основанный на машинном коде. Слои графа проверяются на выполнение условий для обнаружения уязвимости.
Главная идея подхода – использовать символьную интерпретацию кода для конструирования условий, проявляющих уязвимость, на входные переменные. После эти условия нужно будет решить.
Представленный подход можно разделить на следующую последовательность фаз. 30
• Построение графа потока управления. Входной файл используется для построения графа потока управления тестируемой программы, в результате которого должны быть обнаружены вершины ввода и вывода. Вершина ввода отображает части кода, где происходит ввод данных, а вершина вывода отображает части кода, где происходит вызов функций выделения памяти.
• Отсеивание неиспользованного пути в графе потока управления. Все вершины, которые не были использованы в любом из путей от вершины ввода до вершины вывода должны быть удалены.
• Построение символьного входа. Входные данные и неинициализированные ячейки памяти полагаются символьными. Каждая ячейка изначально отображается как пара, состоящая из символьного числа и символьного адреса.
• Символьная эмуляция. Каждый путь обрабатывается независимо. Обработка включает в себя символьную эмуляцию машинных инструкций. Она затрагивает обе части отображения ячеек (число и адрес). Символьные ячейки могут потерять один из этих параметров, если в процессе интерпретации становится понятно, является ли символьная переменная адресом или числом. Например, если переменная была разыменована, то она является адресом, тогда параметр числа отбрасывается.
• Построение системы условий. Система условий описывает доступность вершины вывода от вершины ввода. Ограничения добавляются в систему по мере исследования путей выполнения. Условия для проверки возможности ошибки используются в качестве последнего условия в системе.
• Проверка существования решения системы. Созданные условия проверяются с помощью автоматической системы доказательства теорем. Если система имеет решение, то программа уязвима, а сгенерированное решение является доказательством найденной ошибки.
Символьная эмуляция программы применяется к каждому пути в графе, приводящему к назначенной вершине вывода. Уравнения и неравенства на символьные переменные, из которых составляется система, которую позднее будет решать математический решатель, могут встречаться между вершинами графа и являться условиями операторов ветвления или условиями на переполнение в инструкциях, реализующих арифметические операции, таких как add, sub, mul, imul, shl и т.д.
Составленная система уравнений и неравенств на символьные переменные проверяется решателем последовательно по достижению вершины вывода, то есть вызова некоторой опасной функции, использование переполненного значения в которой может привести к серьезным последствиям. Если система решаема, то это говорит об уязвимости вызываемой функции.
3. Символьные предикаты безопасности
Предикаты безопасности – это дополнительные условия на предикат пути, которые позволяют обнаружить ошибку в программе. Для построения предиката безопасности во время символьной интерпретации программы анализируются определенные ее инструкции и места, которые считаются опасными. Если такое место находится, то составляется предикат безопасности, представляющий собой уравнения и неравенства над символьными переменными и константными значениями. Затем предикат безопасности и предикат пути совместно образуют систему уравнений и неравенств, которая передается в качестве входных данных SMT-решателю [25]. Решение такой системы уравнений представляет собой набор входных данных, которые обеспечивают как прохождение потока управления по исследуемому пути, так и проявление конкретной программной ошибки. Таким образом,
запуск программы на этих входных данных воспроизводит найденные ошибки. Предикаты безопасности были разработаны в рамках инструмента Sydr [26].
Одним из разработанных предикатов безопасности является предикат безопасности для поиска ошибок целочисленного деления на нуль. Во время символьной интерпретации бинарного файла каждая символьная инструкция деления, такая как div или idiv, проверяется предикатом безопасности для поиска ошибки деления на нуль. Если делитель инструкции является символьным, то составляется уравнение на равенство делителя нулю. Затем получившееся уравнение конъюнктируется с предикатом пути и получается соответствующий предикат безопасности, который далее проверяется по вышеописанной схеме.
3.1 Выход за границы массива
Выход за границы массива – одна из самых опасных и распространенных программных ошибок [27]. Для обнаружения таких ошибок мы строим предикат безопасности для каждого разыменования символьного адреса.
Для того, чтобы построить предикат безопасности для ошибки выхода за границы массива, сначала нужно определить границы массива [lower bound; uppper bound). Определив границы массива, мы строим предикат безопасности, который возвращает истину, если символьный адрес выходит за границы массива. Далее получившиеся неравенства конкатенируются с предикатом пути и итоговый предикат проверяется на выполнимость. Если предикат выполним, то генерируются входные данные, приводящие к выходу за границу массива.
В случае, если Sydr не может обнаружить обе границы массива, составляется предикат безопасности для выхода за нижнюю границу массива, которую можно получить эвристическими методами. Например, в адресном выражении [rdx + rax], где rax является конкретным адресом базы, а rdx является символьным индексом, Sydr полагает конкретную часть регистра rax за нижнюю границу массива.
Для определения символьных границ адресов мы поддерживаем теневую кучу и теневой стек. Sydr оборачивает все функции для работы с динамической памятью, такие как malloc, calloc, realloc, free и т.д., и при вызове таких функций обновляет теневую кучу, которая содержит все границы выделенных в памяти буферов. Для каждой встреченной инструкции call Sydr кладет адрес, по которому располагается адрес возврата, на теневой стек; а для каждой инструкции возврата ret Sydr снимает элементы с теневого стека в соответствии с текущим значением указателя стека.
Соответственно, когда происходит разыменование символьного адреса, Sydr обнаруживает границы соответствующего буфера следующим образом. Если текущее конкретное значение адреса находится в теневой куче, то обе границы можно получить из нее. Если адрес указывает на стек, то ближайший адрес на теневом стеке, больший текущего адреса, будет считаться верхней границей массива. Нижняя граница вычисляется эвристически из конкретной части формулы символьного адреса. Главной идеей такого способа является суммирование конкретных частей символьной формулы.
Также мы оборачиваем функции копирования, такие как memcpy, memmove, mems et и т.д., чтобы обнаруживать переполнения буфера, к которым может привести небезопасное использование таких функций. Если аргумент размера копирования является символьным, Sydr пытается сделать его таким, чтобы выйти за верхнюю границу.
Перед решением предиката безопасности мы составляем конъюнкцию с дополнительными условиями на предикат безопасности, которые позволяют обнаружить ошибку, которая вероятнее приведет к аварийному завершению программы, перезаписав адрес возврата при обращении к памяти или обращаясь к отрицательному адресу. Если такой более сильный
предикат не удовлетворим, Sydr возвращается к решению изначального предиката безопасности. Если при этом и адрес, и значение, которое будет записано по адресу, являются символьными, Sydr предупреждает о возможности ошибки write-what-where для такого выхода за границы.
3.2 Целочисленное переполнение
Ошибка целочисленного переполнения является одной из самых типичных программных ошибок [27], однако она достаточно часто встречается в бинарном коде. Sydr будет работать слишком долго, если он будет проверять каждое место в программе, где может возникнуть целочисленное переполнение. Более того, в некоторых ситуациях, таких как вычисление значения хэш-функции, целочисленное переполнение является корректным. Поэтому мы выделяем только критические части программы и для них проверяем предикаты безопасности. В отличие от других предикатов безопасности, мы отделяем сток ошибки от ее источника. Источник – это инструкция, где может произойти целочисленное переполнение (например, различные арифметические инструкции, такие как сложение или умножение). Сток – это место, в коде, где предшествующее целочисленное переполнение может привести к критической ошибке.
Мы решаем предикаты безопасности для поиска ошибок целочисленного переполнения для стоков ошибки, которые используют потенциально переполненное значение. Например, стоками могу быть условные переходы (изменение потока управления в зависимости от переполненного значения), адреса для обращения к памяти и аргументы функций. Особенно критично может быть использование переполненного значения в аргументах таких функций, как malloc, memcpy и т.п. [23, 24] Мы оборачиваем некоторые функции стандартной библиотеки и полагаем все их символьные аргументы потенциальными стоками. Для остальных функций мы проверяем первые три аргумента в соответствии со стандартным соглашением о вызовах.
При анализе конкретной инструкции мы проверяем, является ли она потенциальным источником, то есть является ли она арифметической и является ли хотя бы один из ее операндов символьным. Если так, то мы строим предикаты безопасности для беззнакового (флаг CF) и знакового (OF) целочисленного переполнения. Для большинства арифметических инструкций предикат безопасности будет истинным, когда соответствующий флаг выставлен в единицу. Исключением являются инструкции битовых сдвигов, для которых мы составляем предикат безопасности отдельным способом так, чтобы он соответствовал целочисленному переполнению в таких случаях.
Затем мы проверяем, задействовано ли потенциально переполненное значение, то есть источник ошибки, в вычислении стока. Для этого мы проверяем, является ли абстрактное синтаксическое дерево источника ребенком абстрактного синтаксического дерева стока. Если так, то вычисление стока содержит потенциально переполненное значение. Далее мы узнаем знаковость арифметической операции с помощью обратного слайсинга [12]. Мы проверяем инструкции условных переходов, начиная с последнего в текущем предикате пути, пока какая-либо такая инструкция не сможет нам дать информацию о знаковости какого-либо из операндов (например, инструкция JL говорит о том, что вычисления знаковые) [23]. Также мы можем узнать знаковость вычислений с помощью реализованных нами семантик функций вида strto*l [26].
Кроме того, мы составляем дополнительные условия для функций выделения памяти, таких как malloc, calloc, и функций копирования, таких как memcpy, так как переполнение в таких функциях может привести к более серьезным последствиям. Для функций выделения памяти мы составляем дополнительное условие, чтобы значение, получившееся в результате переполнения, оказалось меньше чем значение, на котором происходило конкретное выполнение, но при этом не равнялось нулю, что позволяет переполнить размер выделяемой
памяти и при этом ее успешно выделить (если переполненное число будет больше количества памяти на машине, то malloc вернет нуль). Для функций копирования мы хотим получить переполненное значение больше чем то, что было при конкретном выполнении программы. Если предикат с дополнительными условиями не удовлетворим, мы проверяем изначальный предикат безопасности.
Также мы обрабатываем случай, когда арифметическая операция производится с типами, размер которых меньше чем sizeof(int). В таком случае в силу расширения целочисленных типов данных при вычислениях оригинальная инструкция не может привести к переполнению, поэтому мы самостоятельно строим новые предикаты безопасности для целочисленного переполнения с корректным размером операндов.
4. Метод автоматизированного поиска ошибок символьными предикатами безопасности
Для применения символьных предикатов безопасности был разработан следующий метод автоматизированного поиска ошибок. Сначала производится гибридный фаззинг выбранного проекта, при котором совместно работают фаззер и инструмент динамической символьной интерпретации Sydr [12]. После этого производится минимизация корпуса входных данных, полученных в результате гибридного фаззинга. Затем идет этап проверки предикатов безопасности на всех файлах, полученных после минимизации корпуса. Результаты предикатов безопасности верифицируются с помощью исполняемого файла, собранного с санитайзерами. Верифицированные результаты оцениваются человеком на критичность и корректность. Также возможна автоматизированная дедупликация, кластеризация и оценка критичности аварийных завершений с помощью Casr [28], если таковые были найдены на каких-либо наборах входных данных.
Для фаззинга мы использовали libFuzzer [5]. Для подготовки к этапу гибридного фаззинга требуется собрать два исполняемых файла для каждой фаззинг-цели проекта: первый должен быть собран с санитайзерами и libFuzzer’ом, второй – без санитайзеров, но с отладочной информацией (он будет использоваться Sydr’ом). После подготовки начинается этап гибридного фаззинга, в результате которого получается корпус входных данных, полученных от фаззера и Sydr’a.
Во время работы предикатов безопасности анализируется лишь конкретный путь исполнения, поэтому для проверки как можно большего количества инструкций программы необходимо проверить как можно больше входных файлов. Однако в получившемся в результате работы этапа гибридного фаззинга корпусе может содержаться большое количество файлов, похожих друг на друга и покрывающих один и тот же код в целевом проекте. Поэтому перед началом этапа проверки предикатов безопасности необходимо минимизировать корпус, чтобы оставить в нем наиболее эффективное подмножество файлов, дающее такое же покрытие кода программы, но при этом содержащее намного меньше файлов, чем изначальный корпус.
После минимизации корпуса начинается этап проверки предикатов безопасности. Проверка предикатов безопасности запускается для каждого файла из минимизированного корпуса. Новые файлы, генерируемые предикатами безопасности, верифицируются с помощью исполняемого файла, собранного с санитайзерами. Если при запуске этого исполняемого файла санитайзеры выдают предупреждение для строчки программы, аналогичной той, для которой был сгенерирован проверяемый набор входных данных, то результат считается верифицированным и сохраняется отдельно. Также, если запуск собранного с санитайзерами исполняемого файла на проверяемом наборе приводит к срабатыванию санитайзеров, отсутствовавшему при запуске этого исполняемого файла на оригинальном файле (т.е. файле, на котором проводилась символьная интерпретация и проверка предикатов безопасности),
результат также считается верифицированным. Отдельно проверяется, приводит ли проверяемый набор входных данных к аварийному завершению.
После этапа проверки предикатов безопасности стоит вручную проверить, какие именно были найдены ошибки. Зачастую найденные ошибки действительно приводят к срабатыванию санитайзеров, но с точки зрения логики работы программы могут ошибками не являться. Также, если в результате проверки предикатов безопасности были найдены наборы данных, приводящие к аварийному завершению, стоит провести их автоматический анализ и кластеризацию с помощью инструмента Casr [28], который позволяет получать подробный отчет об аварийных завершениях.
5. Результаты применения метода к проектам с открытым исходным кодом
Разработанный метод автоматизированного поиска ошибок был применен к ряду проектов с открытым исходным кодом. В результате применения разработанного метода в них были найдены новые ошибки.
5.1 FreeImage
Freeimage – это библиотека с открытым исходным кодом [29], которая поддерживает работу с изображениями различных форматов, таких как PNG, BMP, JPEG, TIFF и т.д. С помощью разработанного метода в коде FreeImage было найдено 5 ошибок целочисленного переполнения на этапе проверки предикатов безопасности [30].
unsigned off_head, off_setup, off_image, i, temp;
fseek(ifp, off_setup + 792, SEEK_SET);
Листинг 1. Беззнаковое целочисленное переполнение в fseek (BMP) Listing 1. Unsigned integer overflow in fseek (BMP)
На листинге 1 приводится фрагмент кода, относящийся к обработке изображений формата BMP, в котором была найдена ошибка беззнакового целочисленного переполнения при вызове функции fseek, смещающей текущую позицию в файле. Так как в коде отсутствуют проверки введенных значений, выражение off_setup + 792 может привести к переполнению, что в свою очередь может привести к неправильной позиции в файле, измененной с помощью функции fseek. Источником ошибки, определенным проверкой предикатов безопасности, является инструкция сложения, реализующая вычисление выражения off_setup + 792, а стоком ошибки является аргумент смещения в функции fseek.
fseek(ifp, offset + length – 4, SEEK_SET);
Листинг 2. Знаковое целочисленное переполнение в fseek (TIFF) Listing 2. Signed integer overflow in fseek (TIFF)
Аналогичная ошибка представлена на листинге 2, где также была найдена ошибка целочисленного переполнения при вызове функции fseek, но уже в части кода, отвечающей за обработку изображений формата TIFF. Найденная ошибка целочисленного переполнения происходит в аргументе смещения функции fseek при вычислении выражения offset + length – 4.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
На листинге 3 представлен фрагмент кода FreeImage, где в аргументе функции parse_tiff происходит неявное преобразование типа long к типу int, где переменная thumb_offset имеет тип long. Так как предикат безопасности для поиска ошибок целочисленного переполнения определяет размер операндов по размеру типа стока, являющегося аргументом
функции, то предикат безопасности посчитал эту ошибку как целочисленное переполнение, которое по факту является неявным преобразованием типа, где значение, получающееся из выражения thumb_offset + 12 типа long, не может быть помещено в аргумент функции типа int меньшего размера.
int parse_tiff(int base);
parse_tiff(thumb_offset + 12);
Листинг 3. Неявное преобразование в parse_tiff Listing 3. Implicit conversation in parse_tiff
if (*len * tagtype_dataunit_bytes[(*type <= LIBRAW_EXIFTAG_TYPE_IFD8) ? *type : 0] > 4)
fseek(ifp, get4() + base, SEEK_SET);
Листинг 4. Беззнаковое переполнение в условном переходе Listing 4. Unsigned integer overflow in branch condition
На листинге 4 приводится фрагмент кода, где в условии оператора ветвления была найдена ошибка беззнакового целочисленного переполнения при умножении *len на tagtype_dataunit_bytes[(*type <= LIBRAW_EXIFTAG_TYPE_IFD8) ? *type : 0]. Инструкцией источника является умножение, а стоком – инструкция условного перехода. Были подобраны такие входные данные, что при целочисленном переполнении меняется поток управления, что приводит к ошибочной работе программы. На листинге 5 приводится фрагмент кода, где вычисляется некоторая ширина. При ее вычислении может произойти ошибка беззнакового целочисленного переполнения. Значение позже используется в условных переходах и многих других местах, и найденная ошибка может привести к неправильной работе программы.
width = raw_width – left_margin – (get4() & 7);
Листинг 5. Беззнаковое целочисленное переполнение при вычислении ширины Listing 5. Unsigned integer overflow in width computation
5.2 xlnt
xlnt – это библиотека с открытым исходным кодом для языка C++ для управления электронными таблицами и их чтения/записи из/в файлы формата XLSX [31]. С помощью разработанного метода в xlnt была найдены две ошибки целочисленного переполнения [32, 33] и ошибка выхода за границы массива [34].
in_->seekg(static_cast<std::ptrdiff_t>(sector_data_start() +
sector_size() * static_cast<std::size_t>(id))); std::vector<byte> sector(sector_size(), 0);
Листинг 6. Беззнаковое целочисленное переполнение в xlnt Listing 6. Unsigned integer overflow in xlnt
На листинге 6 приведен фрагмент кода, где были найдены обе ошибки беззнакового целочисленного переполнения в аргументе функции seekg в выражении sector data start() + sector size() * static cast <std::size t>(id) при умножении и сложении соответственно. Источником ошибки является вычисление приведенного выражения, а стоком – аргумент вызываемой функции, являющийся результатом вычислений. Сама ошибка не приводит к серьезным последствиям, однако
подобранные для воспроизведения переполнения значения могут привести к следующим исходам.
Был найден набор входных данных, при котором значения sector_size() и static_cast<std::size_t>(id) достаточно велики, чтобы при перемножении привести к переполнению. Так как значение sector_size() очень велико, то вызов конструктора std::vector<byte> sector(sector_size(),0) приводит к аварийному завершению работы программы из-за невозможности выделить слишком большое количество памяти. Также был найден набор входных данных, при котором значение id равняется -1, и при приведении этого значения к типу size_t получается очень большое значение. Это также приводит к переполнению в указанном выражении. Однако, так как значение sector_size() не было подобрано большим, то аварийного завершения программы при вызове конструктора на следующей строке не происходит. Но далее в том же файле исходного кода в функции read_directory происходит обращение на чтение из памяти: entries [static cast<std::size t>(current entry id)]. При обращении в память в силу подобранных для переполнения значений происходит выход за границы массива и аварийное завершение.
compound_document::follow_chain(sector_id start,
const sector_chain Stable) {
auto chain = sector_chain(); auto current = start;
while (current >= 0) {
chain.push_back(current);
current = table[static_cast<std::size_t>(current)];
}
return chain; }
Листинг 7. Выход за границы массива в xlnt Listing 7. Out of bounds access in xlnt
На листинге 7 приведен фрагмент кода, где была найдена ошибка выхода за границы буфера. Ошибка происходит при обращении по адресу на строке current = table[static cast<std::size t>(current)]. Значение current было подобрано равным 2147483647, что приводит к обращению в память за границами буфера. Ошибка была найдена независимо как фаззером, так и предикатами безопасности.
int sign = 0; uint32_t i = 0; uint32_t seconds = 0;
for (*endptr = nptr; **endptr; (*endptr)++) { switch (**endptr) {
case ‘9’:
i *= 10;
}
Листинг 8. Беззнаковое целочисленное переполнение в unbound Listing 8. Unsigned integer overflow in unbound
5.3 unbound
unbound – это проверяющий, рекурсивный, кэширующий распознаватель DNS [35]. В коде проекта unbound при помощи разработанного метода была найдена ошибка беззнакового целочисленного переполнения. Фрагмент кода, в котором была найдена ошибка, представлен на листинге 8.
Переполнение происходит в функции sldns_str2period, которая обрабатывает строку и переводит ее в некоторое значение времени. Переполнение происходит в переменной i внутри цикла обработки строки. Переполнение может привести к неправильной работе со строкой и вследствие к неправильному результату работы функции. Ошибка была исправлена автором проекта [36].
5.4 hdp
HDF – это библиотека, предоставляющая набор утилит для работы с файлами формата hdf, который используется для хранения научных данных [37]. Одной из таких утилит является hdp, которая обеспечивает быстрое получение основной информации из hdf-файлов. В ходе применения разработанного метода автоматизированного поиска ошибок в hdp была найдена ошибка целочисленного деления на нуль, приводящая к аварийной остановке работы утилиты [38].
int32 buf_size;
/* we are bounded above by VDATA_BUFFER_MAX */ buf_size = MIN(total_bytes, VDATA_BUFFER_MAX);
/* make sure there is at least room for one record in our buffer */ chunk = buf size / hsize + 1;
Листинг 9. Деление на нуль в hdp Listing 9. Division by zero in hdp
На листинге 9 приведен фрагмент кода, в котором происходит деление на нуль. Код приведен из функции VSread, которая считывает данные в некоторый буфер. Приведенный фрагмент кода вычисляет, какое количество элементов можно считать за раз. Так как в коде отсутствует проверка на равенство делителя нулю, на этапе проверки предикатов безопасности подбирается значение hsize, равное -1, что приводит к ошибке деления на нуль.
5.5 miniz
miniz – это высокопроизводительная библиотека сжатия данных без потерь в одном исходном файле, реализующая стандарты формата сжатия данных zlib и Deflate [39]. Также miniz входит в зависимости PyTorch – популярного фреймворка для машинного обучения [40]. В результате применения разработанного метода тестирования в miniz была найдена ошибка целочисленного переполнения [41].
if (cdir_size < pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
Листинг 10. Целочисленное переполнение в miniz Listing 10. Integer overflow in miniz
На листинге 10 приведен фрагмент кода, в котором может произойти целочисленное переполнение. Приведенное условие проверяет заголовок файла на корректность, и в случае, если заголовок некорректен, возвращается ошибка. В результате применения разработанного метода удалось найти входные данные, которые приводят к ошибке целочисленного переполнения. Однако для условных переходов мы накладываем дополнительные условия на
предикат безопасности, чтобы при проявлении ошибки был изменен поток управления. Так как при конкретном исполнении проверка проходила успешно, то были подобраны такие входные данные, при которых происходит ошибка целочисленного переполнения и меняется поток управления, в результате чего происходил возврат из функции с сообщением об ошибке. Для такого случая мы поменяли дополнительные условия на предикат безопасности так, чтобы при проявлении ошибки поток управления сохранялся. В результате этого эксперимента мы получили такие входные данные, при которых заголовок файла является некорректным, но благодаря целочисленному переполнению булево выражение в условии принимает значение истины, и проверка проходит успешно.
6. Заключение
В данной работе был предложен метод поиска ошибок в бинарном коде методами динамической символьной интерпретации, заключающийся в фаззинге для генерации корпуса входных данных и проверке предикатов безопасности на сгенерированных данных. С помощью разработанного метода можно находить ошибки целочисленного переполнения, выхода за границы массива, деления на нуль и другие. В результате практического применения разработанного метода к программам с открытым исходным кодом были найдены 11 различных новых ошибок в 5 разных проектах.
Список литературы / References
[1] CWE – common weakness enumeration. URL: https://cwe.mitre.org/.
[2] M. Howard and S. Lipner. The Trustworthy Computing Security Development Lifecycle. Microsof, 2006. URL:http://msdn.microsoft.com/en-us/library/ms995349.aspx.
[3] ISO/IEC 15408-3:2008. Information technology – Security techniques – Evaluation criteria for IT security – Part 3: Security assurance components.
[4] ГОСТ Р 56939-2016: Защита информации. Разработка безопасного программного обеспечения. Общие требования. Национальный стандарт РФ, 2016. / GOST R 56939-2016: Information Protection. Secure Software Development. General Requirements. National Standard of Russian Federation, 2016 (in Russian).
[5] K. Serebryany. Continuous fuzzing with libFuzzer and AddressSanitizer. In Proc. of the 2016 IEEE Cybersecurity Development (SecDev), 2016, p. 157.
[6] A. Fioraldi, D. Maier et al. AFL++: combining incremental steps of fuzzing research. In Proc. of the 14th USENIX Workshop on Offensive Technologies (WOOT 20), 2020, 12 p.
[7] J.C. King. Symbolic execution and program testing. Communications of the ACM, vol. 19, issue 7, 1976, pp. 385-394.
[8] J. Salwan. Triton Under the Hood. 2015, URL: https://shell-storm.org/blog/Triton-under-the-hood/#8.
[9] N. Stephens, J. Grosen et al. Driller: augmenting fuzzing through selective symbolic execution. In Proc. of the Network and Distributed System Security Symposium, volume 16 of number 2016, 16 p.
[10] I. Yun, S. Lee et al. QSYM: a practical concolic execution engine tailored for hybrid fuzzing. In Proc. of the 27th USENIX Security Symposium, 2018, pp. 745-761.
[11] R. Baldoni, E. Coppa et al. A survey of symbolic execution techniques. ACM Computing Surveys, vol. 51, issue 3, 2018, Article no. 50, 39 p.
[12] A. Vishnyakov, A. Fedotov et al. SYDR: cutting edge dynamic symbolic execution. In Proc. of the 2020 Ivannikov ISPRAS Open Conference (ISPRAS), 2020, pp. 46-54.
[13] S. Poeplau and A. Francillon. Symbolic execution with SymCC: don’t interpret, compile! In Proc. of the 29th USENIX Security Symposium, 2020, pp. 181-198.
[14] S. Poeplau and A. Francillon. SymQEMU: compilation-based symbolic execution for binaries. In Proc. of the 2021 Network and Distributed System Security Symposium, 2021, 18 p.
[15] L. Borzacchiello, E. Coppa, and C. Demetrescu. FUZZOLIC: mixing fuzzing and concolic execution. Computers & Security, vol. 108, 2021, article no. 102368.
[16] D. Kuts. Towards symbolic pointers reasoning in dynamic symbolic execution. In Proc. of the 2021 Ivannikov Memorial Workshop (IVMEM), 2021, pp. 42-49.
[17] J. Chen, J. Wang et al. JIGSAW: Efficient and Scalable Path Constraints Fuzzing. In Proc. of the 2022 IEEE Symposium on Security and Privacy (SP), 2022, pp. 1531-1531.
[18] C. Cadar, D. Dunbar, and D. R. Engler. KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs. In Proc. of the 8th USENIX Conference on Operating Systems Design and Implementation, 2008, pp. 209-224.
[19] S.K. Cha, T. Avgerinos et al. Unleashing Mayhem on binary code. In Proc. of the 2012 IEEE Symposium on Security and Privacy, 2012, pp. 380-394.
[20] Google sanitizers. URL: https://github.com/google/sanitizers.
[21] Y. Chen, P. Li et al. SAVIOR: towards bug-driven hybrid testing. In Proc. of the 2020 IEEE Symposium on Security and Privacy, 2020, pp. 1580-596.
[22] S. Osterlund, K. Razavi et al. ParmeSan: sanitizer-guided greybox fuzzing. In Proc. of the 29th USENIX Security Symposium, 2020, pp. 2289-2306.
[23] T. Wang, T. Wei et al. IntScope: automatically detecting integer overflow vulnerability in x86 binary using symbolic execution. In Proc. of the Network and Distributed System Security Symposium, 2009, 14 p.
[24] R. Demidov, A. Pechenkin, and P. Zegzhda. Integer overflow vulnerabilities detection in software binary code. In Proc. of the 10th International Conference on Security of Information and Networks, 2017, pp. 101-106.
[25] A. Niemetz and M. Preiner. arXiv: 2006.01621, 2020, 2 p.
[26] A. Vishnyakov, V. Logunova et al. Symbolic security predicates: hunt program weaknesses. In Proc. of the 2021 Ivannikov ISPRAS Open Conference (ISPRAS), 2021, pp. 76-85.
[27] 2021 CWE top 25 most dangerous software weaknesses. URL: https://cwe.mitre.org/top25/archive/2021/2021_cwe_top25.html.
[28] G. Savidov and A. Fedotov. Casr-Cluster: crash clustering for Linux applications. In Proc. of the 2021 Ivannikov ISPRAS Open Conference (ISPRAS), 2021, pp. 47-51.
[29] FreeImage project. URL: https://freeimage.sourceforge.io/.
[30] FreeImage: Integer overflow errors in differnet places. URL: https://sourceforge.net/p/freeimage/bugs/347/.
[31] xlnt project. URL: https://github.com/tfussell/xlnt.
[32] xlnt: Integer overflow in compound_document: :read_sector. URL: https://github. com/tfussell/xlnt/issues/616.
[33] xlnt: Integer Overflow in compound_document: :read_sector leads to Heap Buffer Overflow. URL: https://github.com/tfussell/xlnt/issues/626.
[34] xlnt: Segmentation fault in xlnt::detail::compound_document::follow_chain(). URL: https://github. com/tfussell/xlnt/issues/595.
[35] Unbound project. URL: https://github.com/NLnetLabs/unbound.
[36] Unbound: Integer Overflow in sldns_str2period function. URL: https://github.com/NLnetLabs/unbound/issues/637.
[37] HDF4 library. URL: https://support.hdfgroup.org/products/hdf4/whatishdf.html.
[38] Hdp from hdf4-tools division by zero. URL: https://bugs.launchpad.net/ubuntu/+source/libhdf4/+bug/1915417.
[39] Miniz library. URL: https://github.com/richgel999/miniz.
[40] PyTorch project. URL: https://github.com/pytorch/pytorch.
[41] Miniz: Fix integer overflow in header corruption check. URL: https://github .com/richgel999/miniz/pull/23 8.
Информация об авторах / Information about authors
Алексей Вадимович ВИШНЯКОВ – младший научный сотрудник отдела компиляторных технологий, закончил бакалавриат и магистратуру ВМК МГУ в 2020 году. Сфера научных интересов: компьютерная безопасность, жизненный цикл безопасной разработки (SDL), анализ бинарного кода, символьная интерпретация, фаззинг, автоматическое обнаружение ошибок и компиляторы.
Alexey Vadimovich VISHNYAKOV works for the Compiler Technology Department, obtained BSc degree and M.D. in the Faculty of Computational Mathematics and Cybernetics at Lomonosov Moscow State University. Research interests: computer security, security development lifecycle (SDL), binary analysis, symbolic execution, fuzzing, automatic error detection, and compilers. Илай Александрович КОБРИН работает в отделе компиляторных технологий в ИСП РАН, получает степень бакалавра ВМК МГУ. Сфера научных интересов: компьютерная 40
безопасность, анализ бинарного кода, символьная интерпретация, фаззинг, операционные системы.
Eli Aleksandrovich KOBRIN works for the Compiler Technology Department at ISP RAS. He is a BSc student in the Faculty of Computational Mathematics and Cybernetics at Lomonosov Moscow State University. Research interests: computer security, binary analysis, symbolic execution, fuzzing, operating systems.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
Андрей Николаевич ФЕДОТОВ – старший научный сотрудник отдела компиляторных технологий, закончил НИЯУ МИФИ в 2013 году, кандидат технических наук с 2017 года. Сфера научных интересов: информационная безопасность, символьная интерпретация, оценка критичности ошибок, обратная инженерия, поиск ошибок, языки программирования, динамический анализ.
Andrey Nikolaevich FEDOTOV works for the Compiler Technology Department, graduated from National Research Nuclear University MEPHI (Moscow Engineering Physics Institute) in 2013. Obtained PhD degree in 2017. Research interests: information security, symbolic execution, error severity estimation, reverse engineering, error search, programming languages, dynamic analysis.
Время на прочтение
9 мин
Количество просмотров 6.5K
Изображение: Internet Archive Book Images. Modified by Opensource.com. CC BY-SA 4.0
После компиляции одного и того же исходного кода мы можем получить разные бинарные файлы. Это зависит от того, какие флаги мы передадим в руки компилятору. Часть этих флагов позволяет включать или отключать ряд свойств бинарника, имеющих отношение к безопасности.
Некоторые из них компилятор включает или отключает по умолчанию. Так в бинарных файлах могут возникать уязвимости, о которых мы не знаем.
Checksec — это простая утилита, позволяющая определить, какие свойства были включены при компиляции. В этой статье я расскажу:
- как использовать утилиту checksec для поиска уязвимостей;
- как использовать компилятор gcc для устранения найденных уязвимостей.
Установка checksec
Для Fedora OS и других систем на базе RPM:
$ sudo dnf install checksec
Для систем на базе Debian используйте apt.
Быстрый старт с checksec
Утилита сhecksec состоит из единственного скриптового файла, который, впрочем, довольно большой. Благодаря такой прозрачности вы можете узнать, какие системные команды для поиска уязвимостей в бинарных файлах выполняются под капотом:
$ file /usr/bin/checksec
/usr/bin/checksec: Bourne-Again shell script, ASCII text executable, with very long lines
$ wc -l /usr/bin/checksec
2111 /usr/bin/checksec
Давайте запустим checksec для утилиты просмотра содержимого каталогов (ls):
$ checksec --file=/usr/bin/ls
<strong>RELRO STACK CANARY NX PIE RPATH RUNPATH Symbols FORTIFY Fortified Fortifiable FILE</strong>
Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols Yes 5 17 /usr/bin/ls
Выполнив команду в терминале, вы получите отчёт о том, какими полезными свойствами обладает этот бинарник, и какими не обладает.
Первая строка — это шапка таблицы, в которой перечислены различные свойства безопасности — RELRO, STACK CANARY, NX и так далее. Вторая строка показывает значения этих свойств для бинарного файла утилиты ls.
Hello, бинарник!
Я скомпилирую бинарный файл из простейшего кода на языке С:
#include <stdio.h>
int main()
{
printf(«Hello Worldn»);
return 0;
}
Обратите внимание, что пока я не передал компилятору ни одного флага, за исключением -o (он не относится к делу, а просто говорит, куда выводить результат компиляции):
$ gcc hello.c -o hello
$ file hello
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, not stripped
$ ./hello
Hello World
Теперь запущу утилиту checksec для моего бинарника. Некоторые свойства отличаются от свойств
ls (для него я запускал утилиту выше):
$ checksec --file=./hello
<strong>RELRO STACK CANARY NX PIE RPATH RUNPATH Symbols FORTIFY Fortified Fortifiable FILE</strong>
Partial RELRO No canary found NX enabled No PIE No RPATH No RUNPATH 85) Symbols No 0 0./hello
Checksec позволяет использовать различные форматы вывода, которые вы можете указать с помощью опции –output. Я выберу формат JSON и сделаю вывод более наглядным с помощью утилиты jq:
$ checksec --file=./hello --output=json | jq
{
«./hello»: {
«relro»: «partial»,
«canary»: «no»,
«nx»: «yes»,
«pie»: «no»,
«rpath»: «no»,
«runpath»: «no»,
«symbols»: «yes»,
«fortify_source»: «no»,
«fortified»: «0»,
«fortify-able»: «0»
}
}
Анализ (checksec) и устранение (gcc) уязвимостей
Созданный выше бинарный файл имеет несколько свойств, определяющих, скажем так, степень его уязвимости. Я сравню свойства этого файла со свойствами бинарника ls (тоже указаны выше) и объясню, как это сделать с помощью утилиты checksec.
Для каждого пункта я дополнительно буду показывать, как устранить найденные уязвимости.
1. Отладочные символы
Начну с простого. Во время компиляции в бинарный файл включаются определённые символы. Эти символы используются при разработке программного обеспечения: они нужны для отладки и исправления ошибок.
Отладочные символы обычно удаляются из той версии бинарника, которую разработчики выпускают для широкого использования. Это никак не влияет на работу программы. Такая очистка (она обозначена словом strip) часто выполняется для экономии места, так как файл становится легче после удаления символов. А в проприетарном программном обеспечении эти символы часто удаляют ещё и потому, что у злоумышленников есть возможность прочитать их в двоичном формате и использовать в своих целях.
Сhecksec показывает, что отладочные символы присутствуют в моём бинарнике, но их нет в файле ls.
$ checksec --file=/bin/ls --output=json | jq | grep symbols
«symbols»: «no»,
$ checksec --file=./hello --output=json | jq | grep symbols
«symbols»: «yes»,
То же самое может показать запуск команды file. Символы не удалены (not stripped).
$ file hello
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, <strong>not stripped</strong>
Как работает checksec
Запустим эту команду с опцией –debug:
$ checksec --debug --file=./hello
Так как утилита checksec — это один длинный скрипт, то для его изучения можно использовать функции Bash. Выведем команды, которые запускает скрипт для моего файла hello:
$ bash -x /usr/bin/checksec --file=./hello
Особое внимание обратите на echo_message — вывод сообщения о том, содержит ли бинарник отладочные символы:
+ readelf -W --symbols ./hello
+ grep -q '.symtab'
+ echo_message '33[31m96) Symbolst33[m ' Symbols, ' symbols=«yes»' '«symbols»:«yes»,'
Утилита checksec использует для чтения двоичного файла команду readelf со специальным флагом –symbols. Она выводит все отладочные символы, которые содержатся в бинарнике.
$ readelf -W --symbols ./hello
Из содержимого раздела .symtab можно узнать количество найденных символов:
$ readelf -W --symbols ./hello | grep -i symtab
Как удалить отладочные символы после компиляции
В этом нам поможет утилита strip.
$ gcc hello.c -o hello
$
$ file hello
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, <strong>not stripped</strong>
$
$ strip hello
$
$ file hello
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, <strong>stripped</strong>
Как удалить отладочные символы во время компиляции
При компиляции используйте флаг -s:
$ gcc -s hello.c -o hello
$
$ file hello
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=247de82a8ad84e7d8f20751ce79ea9e0cf4bd263, for GNU/Linux 3.2.0, <strong>stripped</strong>
Убедиться, что символы удалены, можно и с помощью утилиты checksec:
$ checksec --file=./hello --output=json | jq | grep symbols
«symbols»: «no»,
2. Canary
Canary (осведомители) — это «секретные» значения, которые хранятся в стеке между буфером и управляющими данными. Они используются для защиты от атаки переполнения буфера: если эти значения оказываются изменены, то стоит бить тревогу. Когда приложение запускается, для него создаётся свой стек. В данном случае это просто структура данных с операциями push и pop. Злоумышленник может подготовить вредоносные данные и записать их в стек. В этом случае буфер может быть переполнен, а стек повреждён. В дальнейшем это приведёт к сбою работы программы. Анализ значений canary позволяет быстро понять, что произошёл взлом и принять меры.
$ checksec --file=/bin/ls --output=json | jq | grep canary
«canary»: «yes»,
$
$ checksec --file=./hello --output=json | jq | grep canary
«canary»: «no»,
$
Чтобы проверить, включен ли механизм canary, скрипт checksec запускает следующую команду:
$ readelf -W -s ./hello | grep -E '__stack_chk_fail|__intel_security_cookie'
Включаем canary
Для этого при компиляции используем флаг -stack-protector-all:
$ gcc -fstack-protector-all hello.c -o hello
$ checksec --file=./hello --output=json | jq | grep canary
«canary»: «yes»,
Вот теперь сhecksec может с чистой совестью сообщить нам, что механизм canary включён:
$ readelf -W -s ./hello | grep -E '__stack_chk_fail|__intel_security_cookie'
2: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __stack_chk_fail@GLIBC_2.4 (3)
83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __stack_chk_fail@@GLIBC_2.4
$
3. PIE
Включённое свойство PIE позволяет произвольно размещать в памяти исполняемый код независимо от его абсолютного адреса:
PIE (Position Independent Executable) — исполняемый позиционно-независимый код. Возможность предсказать, где и какие области памяти находятся в адресном пространстве процесса играет на руку взломщикам. Пользовательские программы загружаются и выполняются с предопределённого адреса виртуальной памяти процесса, если они не скомпилированы с опцией PIE. Использование PIE позволяет операционной системе загружать секции исполняемого кода в произвольные участки памяти, что существенно усложняет взлом.
$ checksec --file=/bin/ls --output=json | jq | grep pie
«pie»: «yes»,
$ checksec --file=./hello --output=json | jq | grep pie
«pie»: «no»,
Часто свойство PIE включают только при компиляции библиотек. В выводе ниже hello помечен как LSB executable, а файл стандартной библиотеки libc (.so) — как LSB shared object:
$ file hello
hello: ELF 64-bit <strong>LSB executable</strong>, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, not stripped
$ file /lib64/libc-2.32.so
/lib64/libc-2.32.so: ELF 64-bit <strong>LSB shared object</strong>, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=4a7fb374097fb927fb93d35ef98ba89262d0c4a4, for GNU/Linux 3.2.0, not stripped
Checksec получает эту информацию следующим образом:
$ readelf -W -h ./hello | grep EXEC
Type: EXEC (Executable file)
Если вы запустите эту же команду для библиотеки, то вместо EXEC увидите DYN:
$ readelf -W -h /lib64/libc-2.32.so | grep DYN
Type: DYN (Shared object file)
Включаем PIE
При компиляции программы нужно указать следующие флаги:
$ gcc -pie -fpie hello.c -o hello
Чтобы убедиться, что свойство PIE включено, выполним такую команду:
$ checksec --file=./hello --output=json | jq | grep pie
«pie»: «yes»,
$
Теперь у нашего бинарного файла (hello) тип сменится с EXEC на DYN:
$ file hello
hello: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=bb039adf2530d97e02f534a94f0f668cd540f940, for GNU/Linux 3.2.0, not stripped
$ readelf -W -h ./hello | grep DYN
Type: DYN (Shared object file)
4. NX
Средства операционной системы и процессора позволяют гибко настраивать права доступа к страницам виртуальной памяти. Включив свойство NX (No Execute), мы можем запретить воспринимать данные в качестве инструкций процессора. Часто при атаках переполнения буфера злоумышленники помещают код в стек, а затем пытаются его выполнить. Однако, если запретить выполнение кода в этих сегментах памяти, можно предотвратить такие атаки. При обычной компиляции с использованием gcc это свойство включено по умолчанию:
$ checksec --file=/bin/ls --output=json | jq | grep nx
«nx»: «yes»,
$ checksec --file=./hello --output=json | jq | grep nx
«nx»: «yes»,
Чтобы получить информацию о свойстве NX, checksec вновь использует команду readelf. В данном случае RW означает, что стек доступен для чтения и записи. Но так как в этой комбинации отсутствует символ E, на выполнение кода из этого стека стоит запрет:
$ readelf -W -l ./hello | grep GNU_STACK
GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW 0x10
Отключение NX
Отключать свойство NX не рекомендуется, но сделать это можно так:
$ gcc -z execstack hello.c -o hello
$ checksec --file=./hello --output=json | jq | grep nx
«nx»: «no»,
После компиляции мы увидим, что права доступа к стеку изменились на RWE:
$ readelf -W -l ./hello | grep GNU_STACK
GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RWE 0x10
5. RELRO
В динамически слинкованных бинарниках для вызова функций из библиотек используется специальная таблица GOT (Global Offset Table). К этой таблице обращаются бинарные файлы формата ELF (Executable Linkable Format). Когда защита RELRO (Relocation Read-Only) включена, таблица GOT становится доступной только для чтения. Это позволяет защититься от некоторых видов атак, изменяющих записи таблицы:
$ checksec --file=/bin/ls --output=json | jq | grep relro
«relro»: «full»,
$ checksec --file=./hello --output=json | jq | grep relro
«relro»: «partial»,
В данном случае включено только одно из свойств RELRO, поэтому checksec выводит значение «partial». Для отображения настроек сhecksec использует команду readelf.
$ readelf -W -l ./hello | grep GNU_RELRO
GNU_RELRO 0x002e10 0x0000000000403e10 0x0000000000403e10 0x0001f0 0x0001f0 R 0x1
$ readelf -W -d ./hello | grep BIND_NOW
Включаем полную защиту (FULL RELRO)
Для этого при компиляции нужно использовать соответствующие флаги:
$ gcc -Wl,-z,relro,-z,now hello.c -o hello
$ checksec --file=./hello --output=json | jq | grep relro
«relro»: «full»,
Всё, теперь наш бинарник получил почётное звание FULL RELRO:
$ readelf -W -l ./hello | grep GNU_RELRO
GNU_RELRO 0x002dd0 0x0000000000403dd0 0x0000000000403dd0 0x000230 0x000230 R 0x1
$ readelf -W -d ./hello | grep BIND_NOW
0x0000000000000018 (BIND_NOW)
Другие возможности checksec
Тему безопасности можно изучать бесконечно. Даже, рассказывая про простую утилиту checksec в этой статье, я не смогу охватить всё. Тем не менее, упомяну ещё несколько интересных возможностей.
Проверка нескольких файлов
Нет необходимости для каждого файла запускать отдельную команду. Можно запустить одну команду сразу для нескольких бинарных файлов:
$ checksec --dir=/usr/bin
Проверка процессов
Утилита checksec также позволяет анализировать безопасность процессов. Следующая команда отображает свойства всех запущенных программ в вашей системе (для этого нужно использовать опцию –proc-all):
$ checksec --proc-all
Вы также можете выбрать для проверки один процесс, указав его имя:
$ checksec --proc=bash
Проверка ядра
Аналогично вы можете анализировать уязвимости в ядре вашей системы.
$ checksec --kernel
Предупреждён — значит вооружён
Подробно изучите свойства безопасности и попытайтесь понять, на что именно влияет каждое из них и какие виды атак это позволяет предотвратить. Checksec вам в помощь!
Облачные серверы от Маклауд быстрые и безопасные.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
В помощь пентестеру: простые и полезные трюки для анализа бинарных файлов. Часть первая
Это первая статья трилогии, где Йори Квичко рассказывает о простых и серых, но в то же время очень полезных методах, которые могут пригодиться пентестеру при анализе отдельных файлов (будь то бинарные файлы, Flash-файлы и т. д.), попадающихся во время пентестов.
Автор: Йори Квичко (Yori Kvitchko) (Counter Hack)
Примечание редактора: это первая статья трилогии, где Йори Квичко рассказывает о простых и серых, но в то же время очень полезных методах, которые могут пригодиться пентестеру при анализе отдельных файлов (будь то бинарные файлы, Flash-файлы и т. д.), попадающихся во время пентестов. Во многих файлах, которые вам встретятся, содержится огромный объем ценнейшей информации, обладание которой существенно повысит качество пентестов. Просто удивительно насколько полезны и в то же время просты используемые техники. В первой статье Йори уделяет внимание методам поиска коммуникационных потоков.
У разработчиков программного обеспечения существуют определенные привычки, которые нам, пентестерам, следует постоянно держать в голове. Суть заключается в следующем: если определенный функционал, который я хочу использовать, упакован в отдельном исполняемом файле, то это безопасно, надежно и вообще прикольно. Так как я сам разработчик, то часто ловлю себя на том, что в своих разработках следую подобной концепции. Да, исследовать бинарные файлы непросто, но не невозможно, и мы, пентестеры, не должны пугаться «перелезать через стены» и получать все самое вкусное внутри исполняемого файла или автономного приложения.
Хотя для некоторых пентестеров реверс-инжиниринг – темное искусство, выходящее за рамки их компетенции и доступное только признанным мастерам своего дела. Да, я согласен, не так просто перейти от анализа веб-приложений к использованию IDA Pro. Однако, даже не будучи мастером в области реверс-инжиниринга, вы сможете использовать некоторые практические методы для получения важной информации и, возможно, даже сможете находить уязвимости в отдельных бинарных файлах или автономных приложениях.
В этой серии статей рассказывается о некоторых методах из области реверс-инжиниринга, которые были для меня особенно полезными в последние несколько лет. Более того, это такие техники, которые любой может изучить в сжатые сроки и тут же начать применять в своей деятельности.
Один из самых интересных видов приложений, с которым вы столкнетесь во время пентеста – утилиты для внутреннего использования. Обычно разработчики подобных инструментов придерживаются концепции «главное, чтобы работало» и не сильно заботятся о безопасности, поскольку не предполагают, что кто-то со стороны может получить доступ к таким утилитам. Однако мы, пентестеры, конечно же, знаем, что получить доступ к таким утилитам не так сложно, как кажется на первый взгляд. Вот некоторые ситуации, когда вы можете использовать техники по анализу бинарных файлов:
- Когда вы получили доступ к скомпрометированной (часто клиентской) машине, где установлено приложение для внутреннего пользования. Обращайте особое внимание на все, что маркируется именем компании.
- Когда во время пентестов владельцы исследуемой системы заодно попросили вас протестировать конкретное приложение.
- После получения доступа к внутреннему веб-серверу, на котором установлено Flash/Java или любое другое клиентское приложение, встроенное в размещаемый веб-сайт.
- Когда вы находите любой бинарный файл или приложение, которое на ваш взгляд может относиться к утилитам для внутреннего пользования. Не забудьте проверить общедоступные диски и ftp-сервера на предмет наличия на них папок с именем «tools» или нечто похожее.
Что касается самих автономных приложений, они часто используют коммуникационный канал, являющийся наиболее уязвимым для атаки. Так как же нам выяснить каким образом бинарный файл, flash-файл или любое другое приложение осуществляет коммуникацию? Многие разработчики идут по самому простому пути и используют протокол HTTP для пересылки данных между приложениями. Зная об этом, первым делом проверим файл на предмет присутствия в нем URL’ов для протоколов HTTP и HTTPS.
В Linux это можно сделать так:
$ strings app.exe | grep -E -i ‘https?://’
C:> strings app.exe | findstr /i /r “htt[ps]*://”
В настоящее время множество автономных приложений являются ни чем иным как фронтендами к старым веб-приложениям. Если это ваш случай (приложение – фронтенд к веб-серверу), ваша задача заметно упрощается. В дополнение к этому вы можете снять дамп памяти у работающего приложения (при помощи утилиты mdd или одной из утилит, которые перечислены в этом списке), а затем использовать утилиту strings. Вы можете найти GET- или POST-запросы с паролями или другой интересной информацией.
Даже если приложение не использует протокол HTTP, существует множество легко анализируемых форматов данных, которые могут использоваться приложением для «общения» по сети. Перед анализом сетевых протоколов нам необходимо собрать весь входящий и исходящий трафик приложения. Основное внимание будет уделено клиентским приложениям в ОС Windows.
Запустите приложение и найдите его PID. Это можно сделать при помощи Task Manager, Process Explorer или старой доброй командной строки, например, так:
C:> tasklist /FI “IMAGENAME eq app.exe”
Как только мы получили PID (предположим, он равен 6140), мы можем узнать IP-адреса, с которыми взаимодействует приложение. Откройте командную строку и запустите netstat с параметром, отображающим PID, и перезапуском каждую секунду.
C:> netstat -na -o 1 | findstr “6140”
Если ничего не происходит, попробуйте заставить приложение создать исходящее соединение или открыть порт на прослушивание. Как только вы получили IP-адрес, простой фильтр в Wireshark доделает за нас всю остальную работу, локализовав интересующий на IP-адрес.
ip.host == 10.10.10.1
Вы также можете поискать DNS-запросы, которые были использованы для получения IP-адреса, при помощи следующего фильтра:
dns.resp.addr == 10.10.10.1
DNS-имена часто могут помочь в определении типа бекэнда. Также не забывайте использовать сканер Nmap.
Как только обнаружен изолированный коммуникационный канал, в Wireshark вы можете использовать команду “Follow TCP Stream” для поиска данных, которые затем можно легко проанализировать. Вот некоторые протоколы, на которые следует обратить внимание: HTTP, Base64, XML, CSV или любой другой протокол, где не используется шифрование. Все остальное уже зависит от того, насколько хорошо вы сможете воспользоваться найденным коммуникационным каналом. Помните, что если используется протокол HTTP, вы можете использовать прокси-сервера (например, OWASP ZAP Proxy или Burp’s proxy) или сымитировать свой коммуникационный канал при помощи Netcat. Все зависит от вашей фантазии.
В следующей статье я продолжу рассказывать о методах анализа бинарных файлов.
Мы знаем, что биты 0 и 1 соответствуют двум разным диапазонам аналоговых напряжений. Таким образом, во время передачи двоичных данных из одной системы в другую, шум также может быть добавлен. Из-за этого могут быть ошибки в полученных данных в другой системе.
Это означает, что бит 0 может измениться на 1 или бит 1 может измениться на 0. Мы не можем избежать помех от шума. Но мы можем сначала получить исходные данные, обнаружив, присутствуют ли какие-либо ошибки, а затем исправив эти ошибки. Для этой цели мы можем использовать следующие коды.
- Коды обнаружения ошибок
- Коды исправления ошибок
Коды обнаружения ошибок – используются для обнаружения ошибок, присутствующих в принятых данных (битовом потоке). Эти коды содержат некоторые биты, которые включены (добавлены) в исходный поток битов. Эти коды обнаруживают ошибку, если она произошла во время передачи исходных данных (потока битов). Пример – код четности, код Хэмминга.
Коды исправления ошибок – используются для исправления ошибок, присутствующих в полученных данных (битовом потоке), чтобы мы получили исходные данные. Коды исправления ошибок также используют аналогичную стратегию кодов обнаружения ошибок. Пример – код Хэмминга.
Поэтому, чтобы обнаружить и исправить ошибки, дополнительные биты добавляются к битам данных во время передачи.
Код паритета
Легко включить (добавить) один бит четности либо слева от MSB, либо справа от LSB исходного битового потока. Существует два типа кодов четности, а именно четный код четности и нечетный код четности, в зависимости от типа выбранной четности.
Четный код
Значение четного бита должно быть равно нулю, если в двоичном коде присутствует четное количество единиц. В противном случае он должен быть один. Таким образом, четное число единиц присутствует в четном коде четности . Четный код четности содержит биты данных и четный бит четности.
В следующей таблице приведены коды четности, соответствующие каждому 3-битному двоичному коду. Здесь бит четности включен справа от LSB двоичного кода.
Бинарный код | Четный бит | Четный код |
---|---|---|
000 | 0 | 0000 |
001 | 1 | 0011 |
010 | 1 | 0101 |
011 | 0 | 0110 |
100 | 1 | 1001 |
101 | 0 | 1010 |
110 | 0 | 1100 |
111 | 1 | 1111 |
Здесь число битов, присутствующих в четных кодах четности, равно 4. Таким образом, возможное четное число единиц в этих четных кодах четности равно 0, 2 и 4.
-
Если другая система получает один из этих четных кодов четности, то в полученных данных нет ошибки. Биты, отличные от четного бита, совпадают с битами двоичного кода.
-
Если другая система получит коды, отличные от четных, то в полученных данных возникнет ошибка (и). В этом случае мы не можем предсказать исходный двоичный код, потому что мы не знаем битовую позицию (ы) ошибки.
Если другая система получает один из этих четных кодов четности, то в полученных данных нет ошибки. Биты, отличные от четного бита, совпадают с битами двоичного кода.
Если другая система получит коды, отличные от четных, то в полученных данных возникнет ошибка (и). В этом случае мы не можем предсказать исходный двоичный код, потому что мы не знаем битовую позицию (ы) ошибки.
Поэтому четный бит четности полезен только для обнаружения ошибки в принятом коде четности. Но недостаточно исправить ошибку.
Код нечетного паритета
Значение нечетного бита четности должно быть нулевым, если в двоичном коде присутствует нечетное число единиц. В противном случае, он должен быть один. Так что нечетное количество единиц присутствует в нечетном коде четности . Нечетный код четности содержит биты данных и нечетный бит четности.
В следующей таблице показаны нечетные коды четности, соответствующие каждому 3-битному двоичному коду. Здесь нечетный бит четности включен справа от LSB двоичного кода.
Бинарный код | Нечетный бит четности | Код нечетного паритета |
---|---|---|
000 | 1 | 0001 |
001 | 0 | 0010 |
010 | 0 | 0100 |
011 | 1 | 0111 |
100 | 0 | 1000 |
101 | 1 | 1011 |
110 | 1 | 1101 |
111 | 0 | 1110 |
Здесь число битов, присутствующих в нечетных кодах четности, равно 4. Таким образом, возможное нечетное число единиц в этих нечетных кодах четности равно 1 и 3.
-
Если другая система получает один из этих нечетных кодов четности, то в полученных данных нет ошибки. Биты, отличные от нечетного бита четности, совпадают с битами двоичного кода.
-
Если другая система получает не четные коды четности, то в полученных данных есть ошибка (и). В этом случае мы не можем предсказать исходный двоичный код, потому что мы не знаем битовую позицию (ы) ошибки.
Если другая система получает один из этих нечетных кодов четности, то в полученных данных нет ошибки. Биты, отличные от нечетного бита четности, совпадают с битами двоичного кода.
Если другая система получает не четные коды четности, то в полученных данных есть ошибка (и). В этом случае мы не можем предсказать исходный двоичный код, потому что мы не знаем битовую позицию (ы) ошибки.
Следовательно, нечетный бит четности полезен только для обнаружения ошибки в принятом коде четности. Но недостаточно исправить ошибку.
Код Хэмминга
Код Хэмминга полезен как для обнаружения, так и для исправления ошибок, присутствующих в полученных данных. Этот код использует несколько битов четности, и мы должны поместить эти биты четности в позиции степеней 2.
Минимальное значение «k», для которого следующее соотношение является правильным (действительным), является не чем иным, как требуемым количеством битов четности.
2k geqn+k+1
Куда,
«n» – количество бит в двоичном коде (информация)
‘k’ – количество бит четности
Следовательно, количество битов в коде Хэмминга равно n + k.
Пусть код Хэмминга равен bn+kbn+k−1.....b3b2b1 и битам четности pk,pk−1,....p1. Мы можем поместить биты четности ‘k’ только в степени 2 позиции. В оставшихся битовых позициях мы можем разместить n бит двоичного кода.
Исходя из требований, мы можем использовать четную или нечетную четность при формировании кода Хемминга. Но тот же метод контроля четности следует использовать для того, чтобы определить, присутствует ли какая-либо ошибка в полученных данных.
Выполните эту процедуру для поиска битов четности .
-
Найдите значение p 1 , основанное на количестве единиц, присутствующих в позициях битов b 3 , b 5 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 0 .
-
Найдите значение p 2 , основанное на количестве единиц, присутствующих в позициях битов b 3 , b 6 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 1 .
-
Найдите значение p 3 , основанное на количестве единиц, присутствующих в позициях битов b 5 , b 6 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 2 .
-
Аналогично найдите другие значения битов четности.
Найдите значение p 1 , основанное на количестве единиц, присутствующих в позициях битов b 3 , b 5 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 0 .
Найдите значение p 2 , основанное на количестве единиц, присутствующих в позициях битов b 3 , b 6 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 1 .
Найдите значение p 3 , основанное на количестве единиц, присутствующих в позициях битов b 5 , b 6 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 2 .
Аналогично найдите другие значения битов четности.
Выполните эту процедуру для поиска контрольных битов .
-
Найдите значение c 1 , основанное на количестве единиц, присутствующих в битовых позициях b 1 , b 3 , b 5 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 0 .
-
Найдите значение c 2 , основанное на количестве единиц, присутствующих в позициях битов b 2 , b 3 , b 6 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 1 .
-
Найдите значение c 3 , основанное на количестве единиц, присутствующих в позициях битов b 4 , b 5 , b 6 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 2 .
-
Аналогично найдите другие значения контрольных битов.
Найдите значение c 1 , основанное на количестве единиц, присутствующих в битовых позициях b 1 , b 3 , b 5 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 0 .
Найдите значение c 2 , основанное на количестве единиц, присутствующих в позициях битов b 2 , b 3 , b 6 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 1 .
Найдите значение c 3 , основанное на количестве единиц, присутствующих в позициях битов b 4 , b 5 , b 6 , b 7 и так далее. Все эти битовые позиции (суффиксы) в их эквивалентном двоичном файле имеют «1» в значении места 2 2 .
Аналогично найдите другие значения контрольных битов.
Десятичный эквивалент контрольных битов в полученных данных дает значение позиции бита, где присутствует ошибка. Просто добавьте значение, присутствующее в этой позиции бита. Поэтому мы получим оригинальный двоичный код после удаления битов четности.
Пример 1
Найдем код Хемминга для двоичного кода: d 4 d 3 d 2 d 1 = 1000. Рассмотрим четные биты четности.
Количество битов в данном двоичном коде равно n = 4.
Мы можем найти необходимое количество бит четности, используя следующее математическое соотношение.
2k geqn+k+1
Подставим n = 4 в вышеприведенном математическом соотношении.
Rightarrow2k geq4+k+1
Rightarrow2k geq5+k
Минимальное значение k, удовлетворяющее указанному выше соотношению, равно 3. Следовательно, нам требуется 3 бита четности p 1 , p 2 и p 3 . Следовательно, количество битов в коде Хэмминга будет равно 7, поскольку в двоичном коде 4 бита и 3 бита четности. Мы должны поместить биты четности и биты двоичного кода в код Хэмминга, как показано ниже.
7-битный код Хэмминга : b7b6b5b4b3b2b1=d4d3d2p3D1р−2bp1
Подставляя биты двоичного кода, код Хэмминга будет b7b6b5b4b3b2b1=100p3Op2p1. Теперь давайте найдем биты четности.
p1=b7 oplusb5 oplusb3=1 oplus0 oplus0=1
p2=b7 oplusb6 oplusb3=1 oplus0 oplus0=1
p3=b7 oplusb6 oplusb5=1 oplus0 oplus0=1
Подставляя эти биты четности, код Хэмминга будет иметь значение b7b6b5b4b3b2b1=1001011.
Пример 2
В приведенном выше примере мы получили код Хэмминга в виде b7b6b5b4b3b2b1=1001011. Теперь давайте найдем позицию ошибки, когда полученный код равен b7b6b5b4b3b2b1=1001111.
Теперь давайте найдем контрольные биты.
c1=b7 oplusb5 oplusb3 oplusb1=1 oplus0 oplus1 oplus1=1
c2=b7 oplusb6 oplusb3 oplusb2=1 oplus0 oplus1 oplus1=1
c3=b7 oplusb6 oplusb5 oplusb4=1 oplus0 oplus0 oplus1=0
Десятичное значение контрольных битов дает позицию ошибки в полученном коде Хэмминга.
c3c2c1= left(011 right)2= left(3 right)10
Следовательно, ошибка присутствует в третьем бите (b 3 ) кода Хэмминга. Просто добавьте значение, присутствующее в этом бите, и удалите биты четности, чтобы получить исходный двоичный код.
Большинство ошибок .bin являются результатом отсутствия или повреждения версии файла, установленного Red Hat Linux Powertools. Как правило, самый лучший и простой способ устранения ошибок, связанных с файлами WINDOWS, является замена файлов. В качестве дополнительного шага по устранению неполадок мы настоятельно рекомендуем очистить все пути к неверным файлам и ссылки на расширения файлов WINDOWS, которые могут способствовать возникновению такого рода ошибок, связанных с .bin.
Ниже представлен список самых последних версий файлов практически для всех версий Windows (а также для некоторых %%os%%), которые вы также можете скачать. В настоящее время в нашем каталоге для загрузки могут отсутствовать некоторые файлы (такие как .bin), но их можно запросить, нажав на кнопку Request (Запрос) ниже. Если ниже отсутствует необходимая вам версия, мы рекомендуем обратиться непосредственно к Red Hat Software Inc..
Настоятельно рекомендуется выполнить проверку и убедиться в том, что файл был размещён в правильном каталоге. Тщательно следуйте настоящим инструкциям, чтобы устранить возникающую ошибку, связанную с файлом .bin, однако мы рекомендуем выполнить быструю проверку. Затем вы можете повторно открыть Red Hat Linux Powertools, чтобы проверить выводится ли сообщение об ошибке.
.bin Описание файла | |
---|---|
Тип файла: | WINDOWS |
Функция: | c. 1997 |
Application: | Red Hat Linux Powertools |
Версия выпуска: | 1.0.0.0 |
Автор: | Red Hat Software Inc. |
Имя: | .bin |
Байт: | 132 |
SHA-1: | FA916B6E7FDA7B621D6D4C556C088E29DD640A8A |
MD5: | 53191091DCBA5F3288F2CE5E1F354CFA |
CRC32: |
Продукт Solvusoft
Загрузка
WinThruster 2023 — Сканировать ваш компьютер на наличие ошибок реестра в .bin
Windows
11/10/8/7/Vista/XP
Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление
WINDOWS
.bin
Идентификатор статьи: 951509
.bin
Filename | ID | Байт | Загрузить | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+ .bin | 53191091DCBA5F3288F2CE5E1F354CFA | 132.00 B | ||||||||||||||||
|
Наиболее распространенные ошибки .bin, которые могут возникнуть на компьютере под управлением Windows, перечислены ниже:
- «Ошибка в файле .bin.»
- «Отсутствует файл .bin.»
- «Файл не найден: .bin»
- «Не удалось загрузить .bin. «
- «Не удалось зарегистрироваться: .bin. «
- «Ошибка во время выполнения: .bin. «
- «Не удается загрузить .bin. «
Эти сообщения об ошибках WINDOWS могут появляться во время установки программы, в то время как программа, связанная с .bin (например, Red Hat Linux Powertools) работает, во время запуска или завершения работы Windows, или даже во время установки операционной системы Windows. Отмечание ошибок .bin с Red Hat Linux Powertools имеет решающее значение для обнаружения неисправностей электронной c. 1997 и ретрансляции обратно в Red Hat Software Inc. для параметров восстановления.
Корень проблем .bin
Проблемы .bin могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с .bin, или к вирусам / вредоносному ПО.
В частности, проблемы .bin, созданные:
- Поврежденная или недопустимая запись реестра .bin.
- Вирус или вредоносное ПО поврежден .bin.
- Вредоносное удаление (или ошибка) .bin другим приложением (не Red Hat Linux Powertools).
- Другое программное приложение, конфликтующее с .bin.
- .bin поврежден во время загрузки или установки программного обеспечения.
Для чего предназначен универсальный формат BIN с двоичными данными, и чем его открыть на компьютере
Основная задача BIN формата — сохранять двоичные данные цифровых образов CD и DVD на ПК. Чаще всего файл является цифровой эмуляцией физического носителя со свойствами, идентичными формату ISO, но может быть предназначен и для других целей. Благодаря этой статье вы поймете, чем открыть файл BIN на компьютере и зачем он нужен.
Содержание
- Чем открыть BIN-файл;
- BIN-образы CD- и DVD-дисков;
- Архивы MacBinary (macOS);
- Открыть в текстовом редакторе;
- Образы для эмуляторов игровых приставок;
- Файлы прошивки для маршрутизаторов;
- Распространенные ошибки.
Как открыть BIN
Расширение BIN представляет собой метаданные, описывающие содержимое диска, находящегося в дисководе (порядок расположения информации, тип образа, занимаемый объем памяти и т.д.). Такой формат можно назвать универсальным, т.к. файлы бинарного типа используются всеми операционными системами, включая Android и iOS.
Одним из недостатков BIN-файлов является путаница в назначении и множестве методов просмотра документа в зависимости от сферы использования. Столкнуться с данным форматом можно при работе с образами CD- и DVD-дисков, архивами на macOS, образами игр для эмуляторов, а также при прошивке маршрутизатора. Чтобы представлять, с каким BIN-файлом имеете дело, стоит взглянуть на размер и сопроводительные файлы в папке.
Помимо описанных назначений BIN встречается в смартфонах Nokia и Blackberry (RIM).
CD и DVD-образы
Формат BIN — файл образа, т.е. полная цифровая копия физического диска (эмуляция). Также под расширением скрывается инфо-файл о дорожках воспроизведения (количество фильмов и эпизодов сериала, видеоклипы и иная цифровая информация, считываемая мультимедийным плеером при воспроизведении). Следственно, для открытия файлов используется соответствующее ПО.
Программы для монтирования CD/DVD образа можно скачать на нашем сайте:
- Daemon Tools (Lite);
- UltraISO (подойдет для Windows 10);
- Alcohol 120%;
- Roxio Creator.
Для открытия двоичных видеофайлов, скачайте видеоплееры:
- VLC Media Player;
- KMPlayer;
- JetAudio.
Архивы MacBinary
На Macintosh распространены архивы MacBinary, в которых BIN-файл хранит в себе следующий набор нулей и единиц:
- заголовок Finder;
- разветвленные ресурсы и данные;
- систематизированное древо проприетарной файловой системы HFS.
В качество ПО рекомендуем использовать The Unarchiver или стандартный архиватор — Apple Archive Utility.
Также BIN-формат применялся для отправки файлов по интернету из-под macOS, однако сегодня вытеснен архивами нового типа с разрешением DMG.
Открыть BIN в редакторе
BIN-файлы хранят информацию в двоичном виде. Такие документы создаются программами и приложениями для хранения и структуризации данных в режиме «только для чтения». Переписать содержимое документа классическим текстовым редактором не получится.
Необходимое ПО:
- MS Notepad;
- OpenOffice;
- Notepad ++.
Образы для эмуляторов
Если выросли в 90-е годы, то наверняка застали игровую приставку Sega Genesis, которую в СНГ назвали Mega Drive. Причем тут BIN? Образы видеоигр для картриджей Сеги кодируются бинарно, поэтому понадобятся программы-эмуляторы.
Эмуляторы Sega для работы с BIN:
- DGen;
- Kega Fusion;
- HazeMD.
В случае с Nintendo DS картина схожая. BIN-файлы нужны для хранения исполняемых данных, которые при желании корректируются для запуска проекта на эмуляторе. Библиотеки BIN хранятся в одной папке с файлами типа NDS.
Эмуляторы Nentendo DS для работы с BIN:
- DSOrganize;
- DeSmuME;
- Ensata DS Emulator.
Для консоли Sony Playstation первого поколения разработаны эмуляторы, среди которых стоит выделить PCSX, использующий BIN-формат для сохранения BIOS оригинальной приставки. Такой подход необходим, чтобы пользователь ПК чувствовал полное погружение в игру с аутентичными ощущениями (плавность картинки, динамика, тайминги).
Эмуляторы PlayStation для работы с BIN:
- ePSXe;
- PCSX.
Прошивка маршрутизатора
Производители сетевого оборудования (Belkin, Linksys) регулярно обновляют выпускаемые маршрутизаторы программно, меняя низкоуровневые данные, управляющие модемом. BIN-файлы, содержащие свежее обновление для сетевого оборудования, инсталлируются благодаря интерфейсу самого роутера. Например, чтобы прошить оборудование от Linksys, в интерфейсе разработана вкладка «Администрирование». Попасть в настройки можно, введя в поисковой строке любого браузера «192.168.1.1».
Частые проблемы BIN-файлов
Главный недостаток формата — «любовь» со стороны злоумышленников и хакеров, которые модифицируют BIN-файлы, делая из них вирусы. В результате видны следующие ошибки на ПК:
- ошибка в файле .bin;
- отсутствует файл .bin;
- не удалось загрузить .bin.
Причины следующие:
- повреждение ключей реестра Windows или Linux;
- вирусы;
- конфликт файлов ПО (а точнее бинарных библиотек).
Существует несколько способов того, чем открыть bin файл, и в данном материале эти программы представлены в формате ТОП 5.
Бывают самые разнообразные типы таких файлов, имеющие в себе разное содержимое.
Например, в системных папках компьютера могут найтись десятки документов с таким разрешением.
Особенности
Что же это за формат. Говоря коротко, такое сочетание букв – это начало слова «binary». Это говорит о том, что все данные в таком файле сохранены в двоичном формате. И это все, то есть такой тип документа совершенно ничего не говорит о его содержимом, ведь оно может быть самым разным.
Такие документы не несут никакого самостоятельного значения. В общем случае – это дополнительный программный инструмент, необходимый для выполнения той или иной команды на устройстве. Эти материалы не рассчитаны на какие-либо изменения и даже просмотр (по крайней мере, рядовым пользователем, а не разработчиком программы).
На современных компьютерах, чаще всего, файлы такого формата относятся к одному из следующих типов:
- Образ DVD-диска или CD-диска. В этом случае он хранится в директории рядом с документом формата cue. В комплексе они представляют собой образ диска, напоминающий iso;
- Документ, содержащий данные об архиве игры. Такой находится в корневой директории диска с игрой и отвечает за порядок воспроизведения последовательностей;
- Ресурсные данные от компьютера в сжатом виде. Это наиболее значимый тип документа, находящийся в одной из корневых директорий жестокого диска. Его удаление или изменение может привести к сбоям в работе системы;
- Исполняемые файлы систем типа Юникс;
- Данные прошивки роутера;
- Игровые данные для приставок Сега, Нинтендо и других.
Так как типы данных с этим расширением очень разнообразны, то и открывать их нужно различными методами.
<Рис.1 Файл>
Стоит ли открывать?
В большинстве случаев, открывать такие файлы бессмысленно или даже опасно. Они не несут в себе специфической информации (за исключением случая с образами видеофайлов), а только вспомогательные данные в форме кодов и ключей. Это содержимое зависит от того, для чего предназначался документ, в какой программе и он был создан и многого другого.
Потому, если вы не являетесь разработчиком, то вносить изменения в такие файлы нельзя. Это приведет к полному нарушению функционирования программы, для которой он был создан, так как нарушить порядок выполнения в ней операций. Также, данные содержащиеся в bin, ничего не скажут рядовому пользователю об особенностях программы или игры.
Как открыть файл?
Как было сказано выше, это зависит от того, о каком типе файлов идет речь. Онлайн-ресурсов для этого в настоящее время не разработано. Кроме того, в Windows нет базовых утилит для открытия таких документов, а значит, для открытия их придется скачивать и устанавливать дополнительный софт.
5 место. Блокнот
Как не странно, но открыть такой документ иногда помогает простой Блокнот. Он является, по сути, универсальным способом открыть практически любые данные в текстовом формате. Для того чтобы проделать это, следуйте алгоритму:
- Кликните по файлу правой кнопкой мыши;
- В выпавшем меню нажмите на строчку «Открыть с помощью»;
- В появившемся списке программ для открытия файла укажите Блокнот;
- После этого файл откроется, представляя систему кодов, ключей и последовательностей в текстовом формате;
- Часто результат выглядит как кодировка – множество иероглифов и непонятных символов, но нередко в этой информации можно найти и нужную, представленную цифрами и латинскими буквами;
- Если вы знаете, какие изменения нужно внести, то внесите их и закройте Блокнот с сохранением файла (однако, перед внесением изменений сохранить изначальную копию);
- Если вы не уверены в том, что нужно менять, лучше ничего не трогать.
Большим преимуществом такого способа является то, что не требуется скачивать никаких дополнительных программ. Ведь Блокнот есть изначально на каждом компьютере.
Недостаток же способа в том, что он работает далеко не всегда и не со всеми типами bin. Он бывает эффективен лишь примерно в 20% случаев.
<Рис. 2 Блокнот>
4 место. Nero
Вообще, подойдет любая программа, связанная с записью дисков и работой с образами. В этом топе мы указываем именно Nero, так как в настоящее время она является наиболее популярной в данном сегменте. Идеально подходит в случае, когда bin является видеофайлом.
Как же определить, что bin – это образ DVD-диска? Руководствоваться здесь нужно его размером. Большие и очень большие по объему файлы, чаще всего, являются файлами образов.
Nero – хорошая, функциональная программа, которая реализуется бесплатно. Она работает со множеством «сложных» форматов данных. Софт постоянно обновляется, выходят новые версии, что позволяет ему более или менее стабильно работать с разными форматами.
Чтобы открыть файл, проделайте следующее:
- Запустите программу;
- В верхнем левом углу в шапке меню найдите кнопку «Запись данных»;
- Укажите файл, который хотите открыть;
- Или просто перетяните его мышью в рабочее пространство программы;
- После этого информация, имеющаяся в файле, отобразится автоматически;
- Далее можно делать то, что необходимо, например, записать образ на диск.
Тем не менее, данный способ все равно не является универсальным. Программа иногда дает сбои и не может открывать некоторые типы bin.
<Рис. 3 Nero>
3 место. Daemon Tools
Этот больше всего подходит для игровых bin. То есть, если обнаружились такие данные в диске с игрой или в папке с ней, то открывать их лучше через этот софт. Программа имеет бесплатный пробный период с практически неограниченным функционалом и стабильно работает.
Для того чтобы открыть bin, проделайте следующий алгоритм действий:
- Скачайте программу Daemon Tools версии, подходящей для вашего компьютера;
- Установите программу, следуя указаниям мастера установки;
- Запустите программу;
- В левом верхнем углу главного окна программы, в шапке меню, найдите кнопку Файл;
- Нажмите на нее и выбирайте Открыть в развернувшемся меню;
- После нажатия кнопки Открыть, запустится стандартный Проводник Windows;
- Через него укажите путь к файлу, который вы хотите открыть;
- После этого в главном окне программы отобразится содержимое файла.
При необходимости, вы можете не только ознакомиться с ним, но и внести изменения.
Программа работает гораздо стабильнее всех, перечисленных выше. Она поддерживает bin многих типов и позволяет корректно отображать их содержимое.
<Рис. 4 Daemon Tools>
2 место.Ultra ISO
Отличается от предыдущих программ топа наиболее стабильной работой. Кроме того, способна отображать содержимое большего числа типов bin. Благодаря постоянным обновлениям, работает стабильно и не дает сбоев почти никогда.
Кроме того, она не требовательна к ресурсам компьютера, не создает значительной нагрузки на «железо». Распространяется бесплатно и имеется во многих видах, для разных версий программного обеспечения компьютера.
Принцип работы в этой программе похож на все остальные:
- Скачайте и установите данный софт, следуя указаниям Мастера установки;
- Запустите программу и в левом верхнем углу главного окна найдите кнопку Файл;
- Нажмите на нее и в выпавшем меню укажите Открыть;
- В открывшемся Проводнике Виндовс укажите путь до файла, который вы хотите открыть;
- Как и в программах, описанных выше, на экране отобразится содержимое рассматриваемого bin.
Хотя принцип работы такой программы не отличается от предыдущих, ее скачать предпочтительнее. Так как она работает почти с любыми типами bin.
<Рис. 5 UltraISO>
1 место. Оригинальный софт
Под оригинальным софтом в данном случае понимается та программа, для которой был разработан файл. Если речь идет о небольшом bin, появившемся после подключения к ПК телефона или фотоаппарата, то речь идет о файле драйвера.
В этом случае открыть его можно с помощью программного обеспечения, идущего в комплекте с подключенным устройством.
<Рис. 6 Оригинальный софт>
Чем открыть bin файл?
Если вы не знаете, чем открыть bin файл, то шансов узнать это не так уж и много. Если в файле bin при просмотре текстовым редактором не удалось прочитать название программы, для которой он предназначен, то придется перепробовать их все. Корректно открыть bin файл может только программа, для которой он предназначен. Файл bin формата может быть просто файлом с любыми данными, прошивкой BIOS, архивом игры или даже образом диска.
Источник
Сегодня мы расскажем о BIN-файлах и рассмотрим способы открытия данного расширения. Открывать такие объекты можно при помощи специальных утилит и встроенных инструментов ОС. Методы работы с форматом зависят от его предназначения. Следуйте пошаговой инструкции, чтобы выяснить с каким именно типом файла вы столкнулись и корректно просматривать его содержимое.
- Что такое формат BIN?
- Как открывать БИН системными средствами?
- Программы для работы с BIN образами
- Дополнительные варианты просмотра BIN-файлов
Описание файлов формата BIN
Расширение Binary содержит двоичный код, предназначенный для совершенно разных целей. Чаще всего – это вспомогательное программное средство, необходимое для выполнения той или иной задачи на вашем ПК. Может храниться в системных папках либо идти в комплекте с каким-либо приложением, установленным на компьютер. В более редких случаях, БИН является виртуальным образом оптического носителя, подобно формату ISO, MDF, IMG, NRG и т.д.
Рассмотрим основные виды BIN-файлов
- Сжатые файлы в одной из корневых директорий жёсткого диска. Обычному пользователю не стоит вносить изменения в такой тип бинарного документа, так как удаление конфигураций кодов и ключей могут привести к серьёзным системным ошибкам или сбоям при запуске конкретной утилиты. В случае необходимости, манипуляции с данными проводятся разработчиком софта.
- Образ CD, DVD дисков. Зачастую, хранится в папке вместе с расширением CUE. Его можно просмотреть в специальных программах для работы с образами дисков, а затем смонтировать либо размонтировать.
- Двоичный видеофайл. Открывается в некоторых мультимедийных проигрывателях.
- Документ с информацией об архиве игры. Отвечает за порядок воспроизведение игровых последовательностей.
- Также это могут быть исполняемые файлы Unix и BIOS, метаданные для эмуляторов консолей PlayStation, Sega, Nintendo либо файлы прошивки роутеров (драйвера для установки или обновления ПО для маршрутизаторов).
Некоторые из вышеприведенных расширений можно конвертировать в другие более удобные форматы.
Перед конвертацией или редактированием BIN-файла, настоятельно рекомендуем сделать его резервную копию!
Кстати, открыть файл BIN в онлайне невозможно, так что пользователю придётся воспользоваться одной из специальных программ, о которых пойдёт речь в статье ниже.
Открытие BIN стандартными средствами операционной системы Windows 7, 8, 10?
Реализовать задачу можно в обычном Блокноте, входящем в штатный набор инструментов операционки. Как известно, это приложение умеет открывать и отображать практически любые виды текстов. Разумеется, метод сработает не во всех случаях, но всё же не станет лишним испытать его на практике.
- Наведите курсор на требуемый объект и щёлкните по нему правой кнопкой мыши;
- Откроется контекстное меню, выберите пункт «Открыть с помощью», где нужно найти соответствующий инструмент (владельцы ОС Windows 10 могут сразу нажать по строке «Открыть в блокноте»);
- В окне текстового редактора отобразится информация, состоящая из различных символов, иероглифов, кодировок и так далее. Среди всего этого, можно увидеть латинские буквы и цифры, возможно — это именно то, что вы искали.
Если собираетесь редактировать содержимое, лучше предварительно сделайте его резервную копию, чтобы не столкнуться с последующими проблемами при работе с сохранённым документом.
Программы для открытия файлов расширением BIN
Чтобы выяснить, является ли БИН образом CD/DVD диска, обратите внимание на его размер. Если объём соответствует размеру оптического носителя — скорее всего, ваш файл представляет собой образ.
После того, как будете знать такую информацию, можете попробовать одну из универсальных программ для монтирования CD/DVD-образов.
UltraISO
Очень функциональная утилита, отлично справляется с распаковкой и записью разных данных. Умеет создавать установочные флешки и DVD-диски.
- Запустите Ultra ISO;
- В левой верхней стороне интерфейса нажимаем по вкладке «Файл» и выбираем «Открыть…»;
- В проводнике укажите расположение требуемого объекта;
- В правой части экрана появится содержимое вашего БИН-файла;
- Можете посмотреть и извлечь информацию либо записать её на любой накопитель.
Daemon Tools
Популярный софт с интуитивно понятным интерфейсом. Поможет узнать подробные сведения о содержимом файла и отредактировать его. Поддерживает разные версии Microsoft Windows, Mac OS и Linux.
- В процессе установки софта, не забудьте поставить галочку напротив BIN-формата (в поддерживаемых компонентах, как показано на скриншоте);
- Загрузите приложение;
- Кликните по пункту «Образы» вверху слева;
- В правой части экрана нажмите по значку в виде плюсика;
- Выбираем нужный БИН-файл в окошке файлового менеджера;
- Теперь можем просматривать материалы и выбирать подходящую опцию редактирования, конвертирования и т.д.
Nero
Ещё одна хорошая программка. Запускается автоматически вместе со стартом OS. Отличается высокой скоростью работы, предоставляет много полезных функций и настроек.
- Запускаем Неро;
- Жмём по кнопке «Файл», расположенной в верхней части меню;
- Указываем необходимый объект и открываем его;
- Дальше можем использовать одну из предложенных опций.
Стоит отметить ещё несколько популярных аналогов рассмотренному нами софту: Alcohol 120%, PowerISO, The Unarchiver for Apple MacOS, MagicISO, Hex to Bin Utility, Roxio Creator.
Дополнительные способы открыть файл .BIN
Если BIN-расширение небольшого размера появилось после подключения к компьютеру смартфона или фотоаппарата, оно связано с драйверами для подключенных устройств. Открывать такой тип файла можно через специальные программы, поставляющиеся в комплекте с гаджетом, например: Nokia PC Suite, Samsung Kies, BlackBerry Desktop Manager, Mackintosh Suite и т.д.
Бывает, что в .BIN сохраняются видео и аудио. Не все плееры воспроизводят данный контент. Вам понадобится проигрыватель VLC Media Player. Также видеофайл распознаётся в GOM Player, Media Player Classic Home Cinema и KMPlayer. Ещё воспроизводить медиа можно в Nero.
Формат файла .BIN фактически предназначен для хранения информации в двоичном формате. Бинарное форматирование совместимо с дисковым хранилищем и позволяет сохранять медиафайлы и хранить их на физическом диске.
Однако использование диска для хранения становится все более редким явлением, и формат файла не переводится в современные цифровые форматы хранения с манипуляциями для извлечения информации и миграции в формат, легко используемый устройствами Android, наряду с любыми другими соответствующими форматами цифрового считывателя.
Некоторые файлы .BIN защищены и не будут конвертироваться. Например, преобразование медиафайлов с защищенного авторским правом DVD или компакт-диска не будет работать без преодоления уровня защиты. Этот процесс также незаконен, и вам лучше просто купить цифровой формат того же носителя.
Основные виды bin-файлов
Чтобы знать, чем открыть бин формат, нужно более пристально познакомиться с основными видами файлов с расширением bin. Они следующие:
- Образ СД (ДВД) диска. В своей сути он похож на популярный образ дисков ISO, и обычно хранится рядом с файлом, имеющим расширение cue (последний описывает последовательность и структуру данных самого образа диска);BIN образ SD/DVD дисков
- файл, в котором содержаться необработанные данные в двоичном формате;
- Файл игрового архива (обычно находится на игровых дисках, в структуре игровой программы и так далее);
- Сжатый файл, содержащий ресурсы и данные от компьютера Macintosh;
- Данные для видеоигр приставок Сега Генезис, Нинтендо ДС и других;
- Файлы прошивки роутера;
- Исполняемые файлы Юникс-подобных cистем и так далее.
BIN – что это за расширение файла
Прежде всего стоит разобраться, что за расширение файла BIN.
Расширение BIN – это бинарный (двоичный) файл, который содержит в себе информацию в виде нулей и единиц. Открыв данный файл с помощью текстового редактора, например, с помощью блокнота, человек ничего не поймет. Но вот компьютер с легкостью может прочитать такой файл, главное знать, какую программу нужно использовать для его открытия.
Где используется расширение Bin
Стандартным примером использования расширения BIN является скомпилированный программный код. После первого запуска любой установленной программы происходит её отладка и в корневой папке на жестком диске создается двоичный файл выполнения кода. В дальнейшем, ярлык приложения запускает и распаковывает этот BIN файл, а в случае возникновения ошибок, снова начинается отладка программного кода.
Фактически, в формат BIN можно превратить любой файл, который не является текстовым документом. Часто в BIN хранят не только коды программ, но и образы дисков, видеоролики, картинки и другие типы объектов.
Удобство использования BIN заключается в универсальности расширения, ведь оно поддерживается на Windows, Mac OS, Linux и других крупнейших операционных системах. С помощью конвертации файла в BIN можно сохранить его первоначальную структуру и качество. Для изменения формата, достаточно просто переименовать его расширение с помощью блокнота.
В чем сложность открыть BIN файл
В чем же заключается сложность открыть файл BIN? Все дело в том, что БИН БИНУ – рознь. Если файл создавался специально для использования в какой-то конкретной программе, то открыть его можно только в ней, а другие программы попросту не справятся с этой задачей. Можно провести аналогию с гаечным ключом, которым пытаются открутить гайку, которая гораздо больше или наоборот – гораздо меньше его.
Что нужно знать, чтобы открыть файл с расширением BIN
Итак, что же нужно знать пользователю, чтобы подобрать нужную программу, которой можно открыть файл BIN?
В первую очередь нужно выяснить происхождение данного файла. Откуда он взялся? Вы его скачали или он уже был на компьютере, и вы лишь обнаружили его.
Если файл уже был на компьютере, и вы не знаете, что это за файл и какие функции он выполняет, то не стоит и трогать.
Если же вы знаете скачали этот файл и точно знаете, что он из себя представляет, то проблем с выбором соответствующей программы или приложения и открытием BIN файла быть не должно.
В первую очередь стоит обратиться к сайту, на котором был скачан этот файл. Если это какой-то файлообменник, то наверняка на странице должна быть подробная информация по установке или распаковке файла и указанием того, с помощью какой программы следует выполнить его обработку.
А вообще, файлы с расширением BIN редко используются самостоятельно. Как правило, они идут в комплекте с другими файлами, в частности – с исполняемым файлом, имеющим расширение exe. С помощью которого и выполняется запуск установки какой-либо программы, утилиты, игры и т.д.
Программы для открытия файлов формата BIN
А теперь рассмотрим типы BIN файлов, которые наиболее часто встречаются в повседневной жизни. А также соответствующие программы для открытия файлов формата BIN в Windows 7, 8, 10, XP.
Программы для редактирования BIN
Открыть файлы с расширением BIN для редактирования можно с помощью простого блокнота, программы Notepad++, или – любого другого текстового редактора, которыми открывают обычные текстовые документы. Однако, это не специализированные программы, поэтому могут возникнуть различные сбои и неверное отображение содержимого файла.
Из специализированных программ, для редактирования можно отметить:
Образы DVD и CD дисков
Образы DVD и CD дисков с играми или программами содержат в себе пакет файлов с расширением BIN, но с ними в комплекте также должны быть файлы MDF или ISO. Именно их необходимо запускать.
Программы для открытия образов дисков:
Пример использования образа в программе DAEMON Tools:
Программа «Блокнот»
Самый простой и самый бесполезный способ. Данная программа уже предустановлена практически во всех известных операционных системах. К слову сказать, при помощи блокнота можно открыть файл с любым разрешением.
Чтобы посмотреть содержание файла bin, наводим курсор на него и ПКМ вызываем контекстное меню, выбираем пункт «открыть с помощью» ->«Блокнот»:
В открывшемся окне откроется много текста, представляющего собой специальные коды и ключи для последовательности работы той программы, к которой данный файл приписан. Неопытным пользователям не рекомендуется вносить изменения.
Архивы
Если это файл с архивом, то его следует открыть с помощью распаковщиков:
Преобразование файла BIN в ISO
Для преобразования файла BIN в ISO можно использовать программу:
Двоичный видеофайл
В редких случаях BIN файлом может быть двоичный видеофайл – копией с DVD-диска. В таком случае, открыть его можно с помощью любого медиа проигрывателя:
Прочие приложения
В основном файлы bin не распространяются отдельно от софта, к которому они приписаны. Тем самым, открыть его можно средствами этих программ (если просмотр содержимого предусмотрен разработчиком ПО).
Кроме описанных разновидностей и принадлежности данных файлов, еще одна группа в которой пользователь может встретить файлы с таким расширением – это драйвера устройств или вспомогательные компоненты установки программ. Открыть их можно, но на практике это ничего не даст пользователю.
Чем открыть BIN файл
У некоторых пользователей может возникнуть необходимость открыть файл с расширением bin. Подобные файлы могут иметь различную природу (к примеру, на своём ПК вы можете найти множество файлов с таким расширением), потому раскрыть такие файлы какой-то одной специальной программой у вас вряд ли получится. В этом материале я расскажу, что такое файл bin, какие виды файлов bin существуют, и чем открыть BIN файл на вашем ПК.
Расширение BIN
Вариант 1: Программы для работы с виртуальными образами дисков
Сейчас физические диски постепенно перестают использоваться, а во многих компьютерах и ноутбуках даже нет привода, куда можно было бы вставить DVD или CD. Однако это не отменяет того факта, что определенная информация все еще хранится в образах, предназначенных для дисков, но читается она с помощью эмуляторов приводов и других специальных программ. Обычно виртуальный образ имеет формат ISO, но в некоторых случаях встречаются и BIN. Воспользуйтесь указанной ниже ссылкой, чтобы перейти к статье по теме открытия и установки BIN на компьютер, чтобы детально изучить эту тему и справиться с поставленной задачей.
Подробнее: Установка файла формата BIN
Вариант 2: Видеоплееры
Просмотр видеоконтента в операционной системе осуществляется при помощи видеоплеера. В Windows присутствует стандартный проигрыватель, но у него нет специальных кодеков и вовсе не предназначен для того, чтобы открыть фильм, сохраненный в формате BIN. Вы можете распознать, что внутри такого файла хранится именно видео только по его размеру, он будет достаточно большим даже при короткой длительности самого встроенного ролика. Разберем процесс открытия такого типа данных при помощи известного плеера под названием VLC:
Скачать VLC Media Player
-
- Запустите программу и сразу разверните всплывающее меню «Медиа».
-
- Выберите пункт «Открыть файл».
-
- Ожидайте появление нового окна Проводника, где выберите сам BIN-файл.
-
- Если воспроизведение началось, значит софт был выбран правильно. В случае появления на экране ошибки потребуется искать другой способ чтения объекта.
Если VLC Player по каким-либо причинам вам не подходит, вы можете выбрать практически любой подобный проигрыватель, например, KMPlayer. С полным списком такого ПО советуем ознакомиться в отдельном нашем материале далее.
Читайте также: Программы для просмотра видео на компьютере
Вариант 3: Эмуляторы Atari
Компания Atari занималась производством фирменных приставок и игр для них еще в далеких 80-х годах прошлого века. До нашего времени дошли практически все их игровые проекты, что позволяет запускать их на компьютерах. Все игры, разработанные специально для Atari-800 и последующих версий, как раз и имеют формат BIN. Определить их можно по соответствующему названию и небольшому объему. Для корректного запуска потребуется скачать подходящий эмулятор, что осуществляется следующим образом:
Скачать эмулятор Atari с официального сайта
-
- Перейдите по ссылке выше на англоязычный сайт, занимающийся выпуском различных эмуляторов. Там перейдите в раздел «Emulators».
-
- В списке отыщите Atari и скачайте одну из версий либо же их все сразу, чтобы проверить работоспособность имеющегося файла везде.
-
- Выберите подходящую версию, начните загрузку, а по завершении откройте архив.
-
- Устанавливать эмулятор не требуется, просто запустите имеющийся в архиве исполняемый файл.
-
- Там перейдите к запуску образа игры, щелкнув по кнопке «Boot Image».
-
- В обозревателе выберите соответствующий файл.
-
- Игра сразу начнется, если в качестве объекта BIN все же выступает образ игры от Atari.
Вариант 4: Текстовые редакторы
Если файл типа BIN был расположен в папке с какой-либо программой либо носит название, относящееся к известному вам софту, скорее всего, он содержит в себе формат двоичного кода, исполняемого в определенный момент. Доступен к просмотру он через любой текстовый редактор. Для открытия вам следует:
-
- Нажать правой кнопкой мышки по элементу и выбрать пункт «Открыть с помощью».
-
- Выбрать в списке любой удобный текстовый редактор, например стандартный Блокнот, и нажать на «ОК».
-
- После этого просмотрите содержимое. Некоторые программы могут не поддерживать используемую кодировку, поэтому вместо нормальных символов отобразятся иероглифы.
Читайте также: Текстовые редакторы для Windows
Дополнительно следует отметить, что файлы прошивок для различных роутеров или другого оборудования тоже имеют формат BIN. Они не предназначены для открытия на компьютере и загружаются непосредственно в программное обеспечение устройства. С примером прошивки маршрутизатора через BIN мы предлагаем ознакомиться, перейдя по следующей ссылке.
Читайте также: Прошиваем роутер D-Link DIR-620
В статье мы не упомянули еще множество отраслей использование файлов рассмотренного формата, однако большинство из них не открывается программно или же вообще предназначено для других операционных систем. В рамках сегодняшнего материала были рассмотрены только самые популярные применения BIN.
Мы рады, что смогли помочь Вам в решении проблемы.
Добавьте сайт Lumpics.ru в закладки и мы еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Чем открыть в в других операционных системах
Не только пользователи разработок Microsoft могут встретить на свих компьютерах файлы с расширением bin.
.bin на MAC OS
«Macbinary» файл – разновидность bin для данной операционной системы, также является системным содержимым. При необходимости открыть его можно с помощью некоторых программ на выбор:
- ZipZag;
- Apple Disk Utility;
- The Unarchiver;
- Stuffit Deluxe.
Наша статья научит вас правильно работать с форматом djvu, читайте далее – https://forzapc.ru/kak-otkryit-format-djvu.html
Если вам нужно создать диаграммы, но не хочется устанавливать специальное ПО, то мы покажем вам, как создавать их онлайн, читайте подробнее.
ОС семейства Unix
В 99% случаем на данных ОС нет необходимости открывать файл с данным разрешением. Оставшийся 1% можно просмотреть через команду «имяфайла.bin»в консоли.
Как видите, формат bin многофункционален, он используется многими играми, программами, а также операционными системами, однако рядовые пользователи не часто используют подобные файлы. Надеемся, наша статья помогла вам и вы получили ответы на свои вопросы!
Как открыть BIN файл онлайн
Формат файла BIN предназначен для взаимодействия только с соответствующими стационарными программами. Поэтому открыть файл с расширением BIN онлайн через интернет нельзя.
Надеюсь, статья «Как и чем открыть файл BIN: программыWindows» была вам полезна.
Не нашли ответ? Тогда воспользуйтесь формой поиска:
Источник
Чем открыть bin файл на андроиде
Файлы с расширение BIN могут иметь разное содержание. Чаще всего с этим расширением связывают формат образов дисков. BIN-образы можно открыть с помощью нескольких программ, представленных в этом наборе. Кроме того, файл с раcширением BIN может содержать видео. Видео в таком формате может появиться в результате копирования контента с DVD дисков. В наборе есть несколько плееров для просмотра видео в формате BIN. Что касается других вариантов использования расширения BIN, то это могут быть также обычные бинарные файлы, которые создаются и используются другими программами. Такие файлы открывать нет смысла, поскольку они не используются «самостоятельно», и являются лишь вспомогательными файлами сторонних программ.
READ Как установить патч на герои меча и магии 5 повелители орды
Программы для работы с виртуальными образами, которые вы можете скачать из этого набора, позволяют монтировать образы, создавать их, записывать на оптические диски и даже конвертировать. Монтирование образов BIN происходит также, как и монтирование других, более популярных образов (например, ISO). После создания виртуального диска, вы сможете просматривать содержимое образа или использовать его как диск в оптическом приводе.
Что касается плееров для просмотра BIN-видео, то самым популярным из них, видимо, является VLC Player, который имеет достаточно богатый функционал. Кроме поддержки многих форматов, он позволяет переключать звуковые и аудио потоки в одном файле, увеличивает громкость до 400%, имеет несколько встроенных эффектов и глубокие настройки. Есть также несколько других плееров для BIN-файлов.
Однако использование диска для хранения становится все более редким явлением, и формат файла не переводится в современные цифровые форматы хранения с манипуляциями для извлечения информации и миграции в формат, легко используемый устройствами Android, наряду с любыми другими соответствующими форматами цифрового считывателя.
Программы для работы с bin: топ-5 программ
Мы рассмотрим 5 лучших программ, известных надежностью, удобным интерфейсов и приличным функционалом. Вы узнаете как отрыть образ диска BIN бесплатными утилитами.
Total Video Player
Программа значительно проще, с невзрачным интерфейсом. Но за устаревшей графической оболочкой срывает огромный функционал. Помимо BIN, утилита открывает любое видео. Это самый универсальный продукт, проигрывающий фильмы и аудио.
Daemon Tools
Этот больше всего подходит для игровых bin. То есть, если обнаружились такие данные в диске с игрой или в папке с ней, то открывать их лучше через этот софт. Программа имеет бесплатный пробный период с практически неограниченным функционалом и стабильно работает.
Для того чтобы открыть bin, проделайте следующий алгоритм действий:
- Скачайте программу Daemon Tools версии, подходящей для вашего компьютера;
- Установите программу, следуя указаниям мастера установки;
- Запустите программу;
- В левом верхнем углу главного окна программы, в шапке меню, найдите кнопку Файл;
- Нажмите на нее и выбирайте Открыть в развернувшемся меню;
- После нажатия кнопки Открыть, запустится стандартный Проводник Windows;
- Через него укажите путь к файлу, который вы хотите открыть;
- После этого в главном окне программы отобразится содержимое файла.
При необходимости, вы можете не только ознакомиться с ним, но и внести изменения.
Программа работает гораздо стабильнее всех, перечисленных выше. Она поддерживает bin многих типов и позволяет корректно отображать их содержимое.
VLC media player
Входит в ТОП программ для просмотра видео. Открывает множество форматов фильмов, имеет понятный и приятный глазу интерфейс. Главный плюс – софт абсолютно бесплатен. Нам же она интересна из-за возможности открывать бинарные файлы, чем не может похвастаться большинство видео плееров. Программа устанавливается на все существующие системы. Установив VLC, вам будет доступна работа со сжатыми файлами в системе MacOS и Linux.
Nero
Вообще, подойдет любая программа, связанная с записью дисков и работой с образами. В этом топе мы указываем именно Nero, так как в настоящее время она является наиболее популярной в данном сегменте. Идеально подходит в случае, когда bin является видеофайлом.
Как же определить, что bin – это образ DVD-диска? Руководствоваться здесь нужно его размером. Большие и очень большие по объему файлы, чаще всего, являются файлами образов.
Nero – хорошая, функциональная программа, которая реализуется бесплатно. Она работает со множеством «сложных» форматов данных. Софт постоянно обновляется, выходят новые версии, что позволяет ему более или менее стабильно работать с разными форматами.
Чтобы открыть файл, проделайте следующее:
- Запустите программу;
- В верхнем левом углу в шапке меню найдите кнопку «Запись данных»;
- Укажите файл, который хотите открыть;
- Или просто перетяните его мышью в рабочее пространство программы;
- После этого информация, имеющаяся в файле, отобразится автоматически;
- Далее можно делать то, что необходимо, например, записать образ на диск.
Тем не менее, данный способ все равно не является универсальным. Программа иногда дает сбои и не может открывать некоторые типы bin.
Power ISO
Аналог приложения, описанного выше. Наблюдаются даже повторения в интерфейсе. Программа распространяется бесплатно, но с урезанным функционалом. Чтобы использовать все возможности софта, придется купить лицензию.
Помимо образов дисков, в формат BIN сохраняют фильмы. Пользователи привыкли к MP4, AVI, а потому, когда видят название фильма с расширением BIN – теряются.
Мы рассмотрим ещё 2 приложения для проигрывания кино из BIN.
UltraISO
Хорошая программа для открытия bin файлов. Сталкивался с ней практически любой пользователь. Может преобразовывать файлы в другие форматы, создавать из файла виртуальный диск, записывать образ на физический диск, удалять данные внутри образа. UltraISO – самая функциональная и простая утилита для наших целей. В наличии русскоязычный интерфейс, так что вам не придется пробираться через дебри иностранного языка. Когда возникает проблема: файл bin (бин) как открыть, программа UltraISO вам поможет.
Рассмотрим процесс конвертирования файла BIN через утилиту UltraISO. Мы изменим формат файла на привычный (ISO), что в дальнейшем упростит манипуляции с образом.
- Открываем наш документ.
Alcohol 120%
Старый известный софт для манипуляций с образами дисков. Отличается значительным количеством функций. Программа не просто конвертирует формат БИН, но и создает из них виртуальный диск. Функция, необходимая для использования игр и софта, распространяющихся только на физических носителях: CD/DVD дисках. Чтобы открыть образ в Alcohol 120% мы перемещаем файл в рабочую область и монтируем ее на виртуальный диск.
Частые проблемы BIN-файлов
Главный недостаток формата — «любовь» со стороны злоумышленников и хакеров, которые модифицируют BIN-файлы, делая из них вирусы.
Источники
- https://ru.brandingandwebsites.com/how-open-bin-file-android
- https://s-insider.ru/rasshirenie-bin-chem-otkryt-na-androide/
- https://a174.ru/kak-otkryvat-fayly-bin-na-windows-7/
- https://forzapc.ru/chem-otkryit-fayl-bin-na-kompyutere.html
- https://lumpics.ru/what-program-opens-bin/
- https://fintaxi.ru/kak-ustanovit-bin-fayl-na-android/
- https://handy-site.ru/chem-otkryt-bin-fajl-na-androide/
- https://o-dns.ru/programmy/programmy-dlya-otkrytiya-fajla-formata-bin-na-kompyutere
[свернуть]
Иногда возникают ситуации, когда пользователю требуется открыть бинарный файл для ознакомления с его содержимым. Стандартными путями запустить расширение BIN невозможно, ибо стандартный пакет утилит ОС не включает в набор требуемых инструментов.
Решать вопрос, как открыть файл BIN, придется собственными силами.
Что такое файл BIN?
Обратимся к терминологии. Файлы с расширением BIN (Generic Binary Executable File) – это хранилища двоичной информации. Формат не доступен классическим программам, ибо его создание производится в специализированном программном обеспечении.
Если человек желает распаковать бинарный файл или просмотреть его содержимое, потребуется установить одну из программ, которая имеет его поддержку. Альтернативное решение – использование утилит создания BIN. Замечу, что первая категория ПО и вторая – это совсем разные вещи.
Важно: открыть BIN файлы в онлайн-режиме на текущий момент невозможно. Пока не выпущено сервиса, который поддерживает данную функцию. Аналогичная ситуация и с приложениями под Android.
Расширение «.bin» — это формальное представление документа. По факту, там может храниться 20+ типов данных, каждый из которых имеет собственные заморочки по открытию. Доступ к бинарному файлу реально оформить и через блокнот, но после запуска вы получите одну длиннющую строку без какого-либо логического содержания.
Как открыть файл BIN на ПК: варианты для разных категорий
Открыть сам бинарный файл не есть проблема. Вопросы начинаются после того, как документ уже запустился. В зависимости от выбранного программного обеспечения, меняется и адекватность отображения содержимого. При условии создания файла по узкопрофильному направлению, человек может не получить нужной информации вовсе.
Обратите внимание: по сути, открывать файл с расширением BIN, не являясь профильным специалистом, смысла нет. В ряде случаев данное действие может привести к плачевным последствиям в поведении ОС или приложения, к которому относится бинарный файл.
Из вышесказанного делаем вывод, что первостепенная задача владельца BIN файла – это узнать какого типа содержится информация внутри. Если заранее вам это не сказали, придется пользоваться методом исключения. Список наиболее популярных типов данных в BIN файлах я предоставлю ниже.
1) Образы дисков
Самый популярный тип данных, который может храниться под расширением BIN. Если пользователь не знает о предназначении документа заранее, то программы для редактирования и запуска образов дисков – это первое, что следует использовать для открытия документа.
Важно: бывают случаи игнорирования запуска образа диска с BIN форматом. Для решения проблемы следует просто изменить расширение файла с «.bin» на ISO.
Программного обеспечения для запуска образов дисков в бинарном формате предостаточно. Ниже в таблице я поделюсь основным багажом ПО для запуска оговоренного формата в рамках различных операционных систем.
Название |
Описание возможностей |
---|---|
Lightning UK |
Компактная и функциональная утилита для открытия, записи и редактирования образов дисков в различных форматах данных. Имеется функция Verify, которая отвечает за читаемость анализируемого диска. При наличии ошибок выскочит соответствующее сообщение. Программа имеет поддержку более 15 форматов образов. Распознавание бинарной подачи (если это файл образа диска) в 99% случаев происходит с первой попытки. |
PowerISO |
Для операционной системы Windows данный вариант программного обеспечения считается эталонным решением уже на протяжении 3-х лет. Имеется поддержка 23+ вариантов виртуальных дисков, что позволяет монтировать практически все актуальные виды образов. Полезная функция утилиты – конвертация между форматами, а это возможности для преобразования BIN в другие расширения. |
DT Soft DAEMON Tools |
Условно-бесплатное программное обеспечение для записи и редактирования образов дисков. Функционал стандартный – запись, редактирование, открытие и перезапись уже существующих образов дисков. Из фишек выделю встроенный сервис Catch, помогающий при обмене файлами в рамках локальной сети, что хорошо заходит под мобильные операционные системы (для сброса BIN с телефона на ПК). Утилита работает под Windows + имеется версия ПО под MacOS. |
Roxio Creator |
Программа с пробным периодом использования под операционку Windows. Утилита имеет общую направленность, что отображается на ее объеме встроенных инструментов – редактирование фото и видео, просмотр BIN образов, захват и редактирование аудио, конвертация, обслуживание носителей данных и многое другое. Общее число поддерживаемых форматов – 50+. |
Smart Projects IsoBuster |
Условно-бесплатное ПО для редактирования и просмотра образов дисков с другими тематическими проектами. Специализация утилиты узконаправленная, потому ее устанавливают целенаправленно – в других областях она не поможет. В рамках ПО реализована поддержка распространенных файловых систем — NTFS, FAT, EXT, XFS, HFS, HFS + и UDF. |
Владельцам устройств под ОС MacOS будут полезны утилиты NTI Dragon Burn 4 и Roxio Toast 18. Первая позволяет запускать бинарные образы, а вторая допускает также их редактирование. Обе утилиты распространяются под платной лицензией в официальном магазине компании.
2) Двоичные данные
Двоичные данные часто используются в протоколах HTTP, при передаче документов с клиента на сервер, криптографии, представлении файлов по типу текстовой информации, для хранения в базах данных и прочее. Посоветовать определенную программу для открытия подобных файлов я дать не могу, ибо в контексте BIN все зависит от приложения, где документ создавался изначально.
Важно открыть BIN файл с двоичными данными может только программа, в которой его создали.
Применение «левого» ПО не сможет дать удовлетворительный результат. Скорее наоборот, мы получим данные несоответствующие действительности с исковерканным преобразованием. О хорошей читабельности ошибочной декодировки бинарного файла не может быть и речи.
3) Образ данных Sega Genesis
В данном контексте мы получаем BIN файл с компиляцией игры от приставки SEGA. Сегодня покупать игровую консоль для погружения в мир раритетного ПО не обязательно. Достаточно скачать файл игрушки на ПК и запустить ее через эмулятор. Формат данных BIN здесь как раз и поможет. Ниже предоставлю список программ для запуска игрового файла в рамках настольного устройства.
Название |
Описание |
Поддержка ОС |
---|---|---|
Kega Fusion |
Считаю лучшим эмулятором в своей области по Сега. Разработчик ПО Стив Снейк. Хотя обновлений программы не было уже больше 10 лет, нареканий по ее работе не имеется. Необходимые 60 кадров достигаются без использования костылей и вспомогательных плагинов. |
Windows, MacOS, Linux |
DGen/SDL |
Эмулятор консольной приставки Sega Genesis, выпускающейся до 2002 года. Последнее обновление эмулятора производилось в 2014 году, но даже без поддержки данная утилита справляется с задачей по запуску игровых бинарок от сеги «на ура». Субъективный минус – поддержка только одной операционной системы. |
Windows |
Gens Plus! |
Еще один бесплатный эмулятор, разработанный в 2000 году. 35% кода написано на С и С++, а оставшиеся 65% — это ассемблер. Последнее обновление программного обеспечения проводилось в 2006 году. |
Windows |
HazeMD |
Англоязычный эмулятор сеги для 32 и 64 разрядной операционной системы. Распространение – бесплатная лицензия. Последнее обновление ПО производилось в 2019 году, что на фоне прочих конкурентов можно считать довольно свежим шагом, хотя на текущее время поддержки у эмулятора также нет. |
Windows 7-10, ХР, Vista |
Genesis Plus |
Компактная программа на Mac всего в пару сотен Кб. Эмулятор имеет поддержку джойстиков, полноэкранного режима, звука и память по сохранениям игрушек. |
MacOS |
Некоторые игровые файлы могут выдавать ошибку запуска. В таких случаях могу посоветовать только воспользоваться конвертором из BIN в SMD. В половине случаев такая оборудка помогает решить вопрос.
4) Двоичный исполняемый файл BIN: как открыть?
Рядовому пользователю данный формат интереса не представляет. Фактически, документ является исполнительной частью одного из стандартных приложений в вашей операционной системе. Для удобства хранения команд, используется двоичная система. Осуществить просмотр исходника, исполняющего BIN файла можно посредством специальных HEX-редакторов или через стандартные инструменты самой операционной системы.
Обратите внимание: из стороннего программного обеспечения для просмотра и редактирования исполняющих бинарных файлов я могу выделить только пакет программного обеспечения Apache OpenOffice.
Набор утилит работает в рамках Windows, MacOS и Linux. Исполняющие файлы через офис доступны для просмотра, но произвести редактирование вне рамок материнского приложения здесь все равно нельзя.
5) Бинарные видео файлы
Стандартные проигрыватели не в силах разобрать ролики в бинарном формате из-за банальной недостачи кодеков. Даже вспомогательные скачивания паков с официальных сайтов и на тематических форумах решают проблему в 30%-45% случаев. Остальным приходится искать альтернативные варианты запуска видео. На текущий момент я нашел только парочку проигрывателей, способных удовлетворить запрос пользователя на проигрывание ролика в формате BIN.
Схему работы через одну из утилит я опишу ниже.
Алгоритм запуска видео в формате BIN через VLC Media Player:
- Загрузка установочного файла программы с официального сайта.
- Установка ПО на устройство.
- Изучение интерфейса.
- Запуск пункта открытия нового файла. Обратите внимание на пункт формата данных, ибо если не выбрать «все доступные», бинарный медиафайл попросту не отобразится в окне запуска.
- Выбор ролика в формате BIN.
- Настройка отображения и просмотр содержимого.
Ничего особенного. Оговоренный алгоритм выполняли все при работе через классические плееры. Преимуществом приложения является мультиподдержка с различных платформ. ПО одинаково быстро запускает на Windiws, MacOS и Linux.
Процессы Windows. Как найти и удалить вирусный процесс?
Альтернативный вариант для MacOS – это MPlayer. Утилита имеет конфигурируемый режим управления, базирующийся на командах. Для запуска BIN роликов установка вспомогательных паков кодеков не требуется. Открытый код программы дают возможность скомпилировать нужную сборку с официального сайта на собственный вкус в отношении потребностей.
6) Прошивка маршрутизатора
Прошивка роутера – это мелкое приложение с набором команд, которое записывается в энергозависимую память устройства. У 99% маршрутизаторов в продаже номер прошивки указывается на этикетке оборудования. Потребность в обновлении и смене прошивке возникает по ряду субъективных причин – смена поставщика интернета, «глюки» программного обеспечения, добавление нового функционала и прочее.
Какие маршрутизаторы используют файл прошивки в BIN разрешении:
- Linksys;
- D-Link;
- ZyXEL;
- TP-Link;
- Huawei.
Есть и другие ТМ оборудования с поддержкой заводских прошивок через BIN формат, но для полной уверенности советую уточнять информация уже по факту владения конкретным роутером, ибо политика компании по данному вопросу может сов временем измениться.
Важно: обновление или смена прошивки маршрутизаторов происходит через специальный раздел Firmware Upgrade, который расположен в меню самого оборудования. Название раздела может меняться в зависимости от модели и ТМ, но наличие подобного функционала обязательное условия выпуска продукта на рынок.
Подробная инструкция по работе с прошивкой имеется в техпаспорте оборудования. Аналогичную информацию можно получить и через официальный сайт поставщика оборудования. Специальное программное обеспечение для работы с прошивками устанавливать не требуется.
7) Файл образа PlayStation BIOS
В бинарный формат могут паковать и «картриджи» на эмулятор PlayStation под персональные компьютеры. В нынешнее время довольно много качественных мини-приложений, обеспечивающий 70%+ функционала плойки. Ниже приведу список наиболее популярных.
Название |
Описание |
Поддержка ОС |
---|---|---|
PCSX Reloaded |
Популярный эмулятор Playstation One с последним обновлением в 2016 году. Имеется русская локализация + лицензия распространения бесплатная. Работает на всех популярных платформах. Для работы достаточно провести стартовую настройку интерфейса. Запускать BIN упаковки игрушек можно простым перетягиванием на значок программы. |
Windows, MacOS и Linux |
ePSXe |
Более сложный в управлении эмулятор, что нуждается в предварительной настройке через файлы BIOS, которые упакованы в BIN обертку. Эмуляция качественная, но из-за множества ручных настроек, данный эмулятор среди рядовых пользователей не сильно популярен. |
Windows, Linux |
PCSX |
Старенький эмулятор 2003 года выпуска с последним обновлением в 2014. Используется как альтернатива предыдущим двум при их неработоспособности. |
Windows |
Большинство эмуляторов старых игровых приставок на текущий момент не имеют поддержки, но это не мешает приложениям добросовестно выполнять свои функции. Особо придирчивые могут скачивать эмуляторы с исходным кодом, и через костыли с тематических форумов дополнять возможности ПО самостоятельно.
Разбор понятия BIN файла + методы его открытия:
Исполняемые двоичные файлы Nintendo DS
Карманная игровая консоль, исполняющие файлы которой запаковываются в BIN обертку при эмуляции работы приставки на внешних устройствах. Оговоренные файлы хранятся вместе с игрушками под консоль с расширением NDS. Через их использование пользователь может тонко настроить игровой процесс или провести полную модификацию.
Через какие программы можно открыть бинарки на игры Nintendo DS:
- DeSmuME. Один из классических эмуляторов в своей нише. Сами игрушки можно проверить через официальный сайт проекта, но раздела скачки там нет, потому придется добывать ПО для погружения в мир Nintendo собственными силами с сети. Эмулятор поддерживается на Windows, MacOS и Linux;
- No$gba. Эмулятор может полноценно работать с игрушками по 2 приставкам — GameBoy Advance и Nintendo DS. Невзирая на обилие команд и опций по настройке, потребляемой число ресурсов эмулятором минимально и для системы практически незаметно. Имеется тонкая настройка графики;
- melonDS. Эмулятор поддерживает сразу 3 типа приставок с BIN фалами настроек — Nintendo DS, DSi и 3DS. ПО распространяется по бесплатной лицензии. Большой плюс – действующая поддержка разработчика. Последнее обновление приложения датируется декабрем 2020 года.
Еще парочка альтернативных эмуляторов, к которым следует обратиться при сложностях с рассмотренной выше тройкой – WinDS PRO EN 2010.04 и NeonDS v0.2.1. Программы уже без поддержки, но последние сборки все еще актуальны для почитателей эмуляции старых игрушек.
На этом разбор вопроса, как открыть файл BIN, завершен. Если у вас остались неразрешенные моменты, можете отписаться в комментариях. Удачи и крепкого здоровья!
Михаил, 29 лет
Город: Уфа
Пригодилась инфа по эмуляторам. Решил тут вспомнить детство, а разобраться что делать с бинарками в папке с игрушкой под соньку не мог. Спасибо.
Метки: как открыть файл bin, файл bin как открыть
Последнее обновление: 07/01/2022
[Время, требуемое для чтения: 3,5 мин.]
Файл 00000001.bin считается разновидностью файла Binary Disk Image. Наиболее часто он используется в ПО Microsoft OneNote 2016, разработанном компанией Microsoft. Он использует расширение BIN и считается файлом Исполняемое приложение (Binary Disk Image).
Первая версия 00000001.bin была выпущена для операционной системы Windows 10 12/03/2018 в составе Microsoft OneNote 2016.
Выпуск этого файла является последней и наиболее актуальной версией от компании Microsoft.
В этой статье приведены подробные сведения о 00000001.bin, руководство по устранению неполадок с файлом BIN и список версий, доступных для бесплатной загрузки.
Что такое сообщения об ошибках 00000001.bin?
00000001.bin — ошибки выполнения
Ошибки выполнения — это ошибки Microsoft OneNote, возникающие во время «выполнения». Термин «выполнение» говорит сам за себя; имеется в виду, что данные ошибки BIN возникают в момент, когда происходит попытка загрузки файла 00000001.bin — либо при запуске приложения Microsoft OneNote, либо, в некоторых случаях, во время его работы. Ошибки выполнения являются наиболее распространенной разновидностью ошибки BIN, которая встречается при использовании приложения Microsoft OneNote.
В большинстве случаев ошибки выполнения 00000001.bin, возникающие во время работы программы, приводят к ненормальному завершению ее работы. Большинство сообщений об ошибках 00000001.bin означают, что либо приложению Microsoft OneNote не удалось найти этот файл при запуске, либо файл поврежден, что приводит к преждевременному прерыванию процесса запуска. Как правило, Microsoft OneNote не сможет запускаться без разрешения этих ошибок.
Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.
Поиск причины ошибки 00000001.bin является ключом к правильному разрешению таких ошибок. Несмотря на то что большинство этих ошибок BIN, влияющих на 00000001.bin, происходят во время запуска, иногда ошибка выполнения возникает при использовании Microsoft OneNote 2016. Причиной этого может быть недостаточное качество программного кода со стороны Microsoft, конфликты с другими приложениями, сторонние плагины или поврежденное и устаревшее оборудование. Кроме того, эти типы ошибок 00000001.bin могут возникать в тех случаях, если файл был случайно перемещен, удален или поврежден вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.
Как исправить ошибки 00000001.bin — 3-шаговое руководство (время выполнения: ~5-15 мин.)
Если вы столкнулись с одним из вышеуказанных сообщений об ошибке, выполните следующие действия по устранению неполадок, чтобы решить проблему 00000001.bin. Эти шаги по устранению неполадок перечислены в рекомендуемом порядке выполнения.
Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.
Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Восстановление системы» и нажмите ENTER.
- В результатах поиска найдите и нажмите «Восстановление системы»
- Введите пароль администратора (при необходимости).
- Следуйте инструкциям мастера восстановления системы, чтобы выбрать соответствующую точку восстановления.
- Восстановите компьютер к этому образу резервной копии.
Если на этапе 1 не удается устранить ошибку 00000001.bin, перейдите к шагу 2 ниже.
Шаг 2. Если вы недавно установили приложение Microsoft OneNote (или схожее программное обеспечение), удалите его, затем попробуйте переустановить Microsoft OneNote.
Чтобы удалить программное обеспечение Microsoft OneNote, выполните следующие инструкции (Windows XP, Vista, 7, 8 и 10):
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Удалить» и нажмите ENTER.
- В результатах поиска найдите и нажмите «Установка и удаление программ»
- Найдите запись для Microsoft OneNote 2016 и нажмите «Удалить»
- Следуйте указаниям по удалению.
После полного удаления приложения следует перезагрузить ПК и заново установить Microsoft OneNote.
Если на этапе 2 также не удается устранить ошибку 00000001.bin, перейдите к шагу 3 ниже.
Microsoft OneNote 2016
Microsoft Corporation
Шаг 3. Выполните обновление Windows.
Когда первые два шага не устранили проблему, целесообразно запустить Центр обновления Windows. Во многих случаях возникновение сообщений об ошибках 00000001.bin может быть вызвано устаревшей операционной системой Windows. Чтобы запустить Центр обновления Windows, выполните следующие простые шаги:
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Обновить» и нажмите ENTER.
- В диалоговом окне Центра обновления Windows нажмите «Проверить наличие обновлений» (или аналогичную кнопку в зависимости от версии Windows)
- Если обновления доступны для загрузки, нажмите «Установить обновления».
- После завершения обновления следует перезагрузить ПК.
Если Центр обновления Windows не смог устранить сообщение об ошибке 00000001.bin, перейдите к следующему шагу. Обратите внимание, что этот последний шаг рекомендуется только для продвинутых пользователей ПК.
Если эти шаги не принесут результата: скачайте и замените файл 00000001.bin (внимание: для опытных пользователей)
Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла 00000001.bin. Мы храним полную базу данных файлов 00000001.bin со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии Microsoft OneNote . Чтобы загрузить и правильно заменить файл, выполните следующие действия:
- Найдите версию операционной системы Windows в нижеприведенном списке «Загрузить файлы 00000001.bin».
- Нажмите соответствующую кнопку «Скачать», чтобы скачать версию файла Windows.
- Скопируйте этот файл в соответствующее расположение папки Microsoft OneNote:
Windows 10: C:UsersTesterAppDataLocalMicrosoftOneNote16.0cachetmp
- Перезагрузите компьютер.
Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.
СОВЕТ ОТ СПЕЦИАЛИСТА: Мы должны подчеркнуть, что переустановка Windows является достаточно длительной и сложной задачей для решения проблем, связанных с 00000001.bin. Во избежание потери данных следует убедиться, что перед началом процесса вы создали резервные копии всех важных документов, изображений, установщиков программного обеспечения и других персональных данных. Если вы в настоящее время не создаете резервных копий своих данных, вам необходимо сделать это немедленно.
Скачать файлы 00000001.bin (проверено на наличие вредоносного ПО — отсутствие 100 %)
ВНИМАНИЕ! Мы настоятельно не рекомендуем загружать и копировать 00000001.bin в соответствующий системный каталог Windows. Microsoft, как правило, не выпускает файлы Microsoft OneNote BIN для загрузки, поскольку они входят в состав установщика программного обеспечения. Задача установщика заключается в том, чтобы обеспечить выполнение всех надлежащих проверок перед установкой и размещением 00000001.bin и всех других файлов BIN для Microsoft OneNote. Неправильно установленный файл BIN может нарушить стабильность работы системы и привести к тому, что программа или операционная система полностью перестанут работать. Действовать с осторожностью.
Файлы, относящиеся к 00000001.bin
Файлы BIN, относящиеся к 00000001.bin
Имя файла | Описание | Программа (версия) | Размер файла (байты) | Расположение файла |
---|---|---|---|---|
TileCache_100_0_Header… | Binary Disk Image | Microsoft OneNote 2016 | 7432 | C:UsersTesterAppDataLocalPackagesMicrosof… |
WordCombinedFloatieMod… | Binary Disk Image | Microsoft OneNote 2016 | 941616 | C:Program Files (x86)Microsoft OfficerootOf… |
urlblock_6371045882552… | Binary Disk Image | Microsoft OneNote 2016 | 70381 | C:UsersTesterAppDataLocalPackagesMicrosof… |
ExcelCtxUIFormulaBarMo… | Binary Disk Image | Microsoft OneNote 2016 | 112940 | C:Program Files (x86)Microsoft OfficerootOf… |
BootPerformanceDiagnos… | Binary Disk Image | Microsoft OneNote 2016 | 29416 | C:WindowsSystem32wdi |
Вы скачиваете пробное программное обеспечение. Для разблокировки всех функций программного обеспечения требуется покупка годичной подписки, стоимость которой оставляет 39,95 долл. США. Подписка автоматически возобновляется в конце срока (Подробнее). Нажимая кнопку «Начать загрузку» и устанавливая «Программное обеспечение», я подтверждаю, что я прочитал (-а) и принимаю Лицензионное соглашение и Политику конфиденциальности компании Solvusoft.