Что такое модификация файла
модификация информации — Изменение содержания или объема информации на ее носителях при обработке техническими средствами. [Домарев В.В. Безопасность информационных технологий. Системный подход.] Тематики защита информации … Справочник технического переводчика
модификация информации — 3.46 модификация информации (modification of information): Обнаруженное или необнаруженное несанкционированное или случайное изменение информации. Источник: ГОСТ Р ИСО/ТО 13569 2007: Финансовые услуги. Рекомендации по информационной безопасности… … Словарь-справочник терминов нормативно-технической документации
модификация — 3.5 модификация (modification): Изменение конструкции оборудования, которое позволяет осуществить обработку конкретных материалов более эффективным способом, отличающимся от первоначального, или которое позволяет обрабатывать материалы,… … Словарь-справочник терминов нормативно-технической документации
МОДИФИКАЦИЯ — наследственно не закрепленное изменение признаков или свойств организма под влиянием внешней среды. Является реализацией генетической информации в онтогенезе организма приспособительного к среде характера … Словарь ботанических терминов
модификация сознания — Один из проектов ЦРУ 1950 х годов, посвященных методам контроля над сознанием и ставивших задачу обеспечить безопасность агентов во время выполнения миссии, назывался BLUEBIRD. В нем была предпринята попытка разработать такие методы подготовки… … Словарь технической реальности: Культурная интеллигенция социальный контроль
нарушение целостности информации — 1. Утрата информации, при ее обработке техническими средствами, свойства целостности в результате ее несанкционированной модификации или несанкционированного уничтожения. Несанкционированная модификация информации может быть случайной (искажение) … Справочник технического переводчика
подделка информации — 1. Умышленная несанкционированная модификация информации при ее обработке техническими средствами с целью получения определенных выгод (преимуществ) перед конкурентом или нанесения ему ущерба. 2. Предумышленное искажение информации. [Домарев В.В … Справочник технического переводчика
Руководящий документ. Защита от несанкционированного доступа к информации. Термины и определения — Терминология Руководящий документ. Защита от несанкционированного доступа к информации. Термины и определения: 29. Администратор защиты Субъект доступа, ответственный за защиту автоматизированной системы от несанкционированного доступа к… … Словарь-справочник терминов нормативно-технической документации
Фильтрация сенсорной информации — фильтрация афферентных сигналов нервной системой. В результате такой фильтрации на определённые уровни обработки поступает только часть полученной предшествующими уровнями сенсорной информации. В английской литературе используется термин sensory… … Википедия
Эта система предназначена для контроля и документирования текстовых файлов путем создания некоторого аналога учетной ведомости.
Инструментальное средство SCCS представляет собой пакет программ, который может функционировать под управлением OS типа UNIX (в том числе, CONVEX-OS и OC System V), файловая система которых не поддерживает такой атрибут, как версия.
В процессе модификации исходного файла, находящегося под управлением инструментального средства SCCS , изменение его содержимого фиксируется инструментальным средством SCCS всякий раз, когда пользователь осуществляет запись файла на магнитный диск. Таким образом текущая версия исходного файла представляет собой совокупность его текущего содержимого и информации и последовательных модификациях этого содержимого, начиная с его первой версии.
Информация о последовательных модификациях исходного файла может быть представлена в виде набора последовательных изменений его содержимого, каждому элементу которого присваивается уникальный идентификационный номер - номер версии. Например, первая версия исходного файла может иметь идентификационный номер 1.1 , а две последующие - идентификационные номера 1.2 и 1.3 соответственно. Подобный подход дает пользователю возможность хранить в файле с одним и тем же именем несколько версий его содержимого. Вместе с тем при осуществлении ссылки на этот исходный файл пользователь может специфицировать различные идентификационные номера версий и таким образом обработать последовательно несколько различных вариантов исходного файла.
При отсутствии спецификации идентификационного номера версии инструментальное средство SCCS автоматически использует последнюю версию файла.
Любой исходный файл, независимо от того, содержит он исходный текст некоторой программы или текст журнальной статьи, может быть передан под управление инструментального средства SCCS, для чего необходимо воспользоваться командой ADMIN и ввести с терминала, например, следующее:
% admin -i file s.file
NO ID KEYWORDS (cm7)
После этого оригинальный исходный файл должен быть удален из файловой системы OC UNIX
Для восстановления его содержимого (с учетом всех модификаций) достаточно ввести
В результате в текущем каталоге появится исходный файл, не находящийся под управлением инструментального средства SCCS , доступ к которому разрешен только по чтению. Для вывода содержимого исходного файла на стандартный вывод нужно набрать командную строку
Для того, чтобы осуществить модификацию (с помощью редактора текста) содержимого исходного файла, находящегося под управлением инструментального средства SCCS , необходимо ввести следующую командную строку:
В результате этого, в текущем каталоге появится файл, доступ к которому разрешен и по чтению, и по записи, представляющий собой копию оригинального исходного файла, а также будет создан рабочий файл инструментального средства SCCS ( p.file ). После того, как редактирование исходного файла завершено, необходимо сообщить об этом инструментальному средству SCCS набрав командную строку
после этого на экране появится предложение ввести комментарий:
По желанию можно ввести текст комментария. После этого инструментальное средство SCCS создает новую версию исходного файла. Команда delta автоматически увеличивает номер версии на единицу. Чтобы вывести на терминал всю последовательность осуществленных преобразований содержимого исходного файла т.е. ``историю развития" файла нужно набрать в командной строке
Ниже приведем несколько примеров работы с инструментальным средством SCCS .
Если нужно вызвать для редактирования уже существующий файл s.file версию 1.5 , нужно набрать:
% get -r1.5 -e s.file
далее вызвать редактор vi (для редактирования версии 1.5)
после окончания редактирования передать файл программе delta
Если нужно передать файл под управление инструментальному средству SCCS впервые и начать нумерацию версий не с 1.1 (по умолчанию), а с версии 5.1
% admin -r5.1 -ifile s.file
Если нужно вывести содержимое файла s.file версию 1.4 (ранее созданную) на экран
% get -r1.4 -p s.file
Например, если нужно отредактировать уже существующую версию 1.1 , то после редактирования при записи программа delta присвоит номер версии 1.1.1.1.
Рассмотренные здесь примеры демонстрируют лишь небольшую часть возможностей инструментального средства SCCS , тем не менее даже по ним можно уже получить представление об использовании этой системы.
Напомним еще раз о существующих возможностях:
- admin - выполняет управляющие функции над закодированным файлом;
- get - восстанавливает версию закодированного файла;
- delta - помещает новую версию в закодированный файл;
- prs - печатает закодированный файл.
Более полную информацию можно получить в man admin , man get , man delta .
Заключение
Путешествие в мир меток времени файлов в Linux оказалось намного длиннее чем я сам ожидал. Зато мы узнали о четырёх разных метках времени, о том, как их посмотреть и изменить, а также как искать файлы по любой из трёх меток времени.
Я об этом уже говорил, но напомню ещё раз — редактируя метки времени файла, не нужно забывать о соответствующих метках времени в метаданных самого файла (а не файловой системы). Про просмотр и удаление метаданных вы найдёте больше информации по ссылкам:
- Как просмотреть или отредактировать метаданные pdf или изображениях из командной строки Linux
- Как удалить метаданные файла на Linux
- Insiderer (мощная программа по извлечению всей возможной метаинформации)
- mat (набор инструментов анализа/удаления метаданных)
- Геолокация фотографий по GPS меткам в метаданных (онлайн сервис)
- mat2: новая версия программы для удаления метаданных
- Массовый поиск геотэгов на сайтах и в локальном хранилище
Как изменить время создания и модификации файла в Windows
Кстати, если вам интересно, как поменять время создания файла в Windows, то это можно сделать с помощью утилиты NirCmd:
Я проверил команду nircmd.exe — сработала идеально в последней Windows 10.
Поиск и сортировка файлов по времени модификации, доступа и изменения
Теперь мы переходим к потрясающей команде find. С её помощью мы будем выводить нужные файлы по дате изменения, а также искать файлы, которые были изменены или к которым был получен определённое время назад.
Кстати, настоятельно рекомендуется к изучению следующий материал по команде find:
С помощью команды find можно настроить очень гибкий поиск и вывод результатов.
Предположим, я хочу просмотреть файлы в папке /etc отсортированные по дате модификации:
Аналогично, но файлы отсортированы по дате доступа:
И снова аналогичный пример, но файлы отсортированы по времени изменению статуса:
В команде find вы можете настроить формат даты под свои нужды, а также указать любые фильтры, которые она поддерживает. Например, ниже команда для показа файлов, отсортированных по дате модификации, но только тех из них, у которых в имени встречается ssh:
Или только файлов с расширением .desktop:
Или любых файлов, отсортированных по дате доступа, но только первых 20:
Что такое время доступа к файлу, время модификации файла и время изменения файла в Linux
Метки времени (timestamps):
Доступ (Access - last access) — время, когда файл был прочитан последний раз. Это время меняется при доступе таких системных вызовов как mknod(2), utimes(2) и read(2). Если это текстовый файл, то дата последнего доступа обновляется при каждом его открытии. Если это исполнимый файл, то дата доступа обновится при его запуске.
Но прежде чем придумывать практическое использование времени последнего доступа к файлу (например, чтобы проверить, какие команды запускалась за последний час), нужно учитывать очень важные нюансы. Выше показано, что поддержка определённых меток времени зависит от файловой системы. Ещё поведение меток времени зависит от того, с какими опциями была смонтирована файловая система. Например, при запуске скрипта мы ожидаем, что время доступа к этому файлу изменится на текущее. Это так — для выполнения скрипта его нужно прочитать и atime должна поменяться на время выполнения. Обычно это так и происходит. Но если запускаемый/читаемый файл находится в файловой системе, которая смонтирована с опциями noatime или relatime (или другими возможными опциями, которые могут повлиять на изменение atime — к пример «только чтение»), то поведение будет другим.
noatime
Не обновлять на этой файловой системе время доступа к иноде (например, для ускорения производительности за счёт исключения ненужных операций)
relatime
Обновлять время доступа к иноде относительно времени модификации или изменения. Время доступа обновляется только если предыдущее время доступа было более старым, чем время модификации или изменения, либо если предыдущее время доступа старше 1 дня.
Итак — время последнего доступа к файлу может быть неточным! По сути, если при монтировании диска используется опция relatime, то получается, что оно показывает:
1) время последнего изменения или модификации файла
2) время сегодняшнего первого открытия файла
3) ИНОГДА оно действительно показывает время последнего доступа к файлу (если сегодня файл открывали только один раз), либо если этот доступ к файлу выполнен после его модификации или изменения статуса
Модифицирован (Modify - last modified) — время последнего изменения содержимого файла. То есть если это текстовый файл, то время модификации поменяется когда вы его откроете и удалите какое-то слово или что-то допишите. Меняется системными вызовами mknod(2), utimes(2) и write(2).
Изменён (Change - last changed) — Время последнего изменения метаданных файлов в файловой системе. То есть если в файле изображения вы измените EXIF метаданные — это будет модификация (поскольку по сути поменяется содержимое файла). Примером Изменения файла является смена разрешений доступа к нему (чтение, запись, выполнение), смена владельца, группы и т. д. Меняется с chmod(2), chown(2), link(2), mknod
Модификация кода
После декомпиляции мы получили папку со следующей структурой:
информация о программе:
- версия
- автор программы
- цифровая подпись
- другая информацию
Также могут присутствовать папки
- assets — аналог папки ресурсов. Основным отличием ресурсов в этом папке является то, что для получения списка asset’ов можно использовать метод AssetManager.list() в коде приложения, получая их динамически;
- lib — оригинальные статические библиотеки Linux, написанные с помощью NDK (Native Development Kit) на C/C++.
Основными объектами модификации являются:
- Ресурсы - их можно напрямую заменять, не изменяя имён. Можно добавлять, удалять, переименовывать, но это потребует изменить файл описания ресурсов.
- Исходный код программы - в зависимости от метода декомпиляции это может быть код на smali, или java.
- Файл AndroidManifest.XML - если нужно изменить набор прав для приложения, ему название и т.д.
Как в Linux изменить время создания файла
Хотя файловая система ext4 поддерживает такое свойство файлов как «время создания», в ядро Linux возможность чтения этого свойства была добавлена недавно. Что касается возможности изменения времени создания файла, то такой функции нет (и не факт, что файловые системы это вообще поддерживают).
Но, как обычно, можно что-то придумать.
Время назад
При копировании файла в другой файл, его временем создания становится текущее время. Если перевести системное время на то, которое вы хотите установить для файла в качестве времени создания, а затем скопировать содержимое файла в новый, то таким образом можно установить любое время создания для нового файла.
Изменение времени создания в других ОС или файловых системах
В Интернете попадаются инструкции об изменении времени создания файла в операционных системах, которые это поддерживают. Также предлагается использовать некоторые другие файловые системы — например, сетевые, в которых также можно поменять это свойство.
Действительно, в Windows можно изменить не только время модификации файла, но и время создания. Но проблема в том, что при переносе в Linux сохраняется только время модификации. В качестве времени создания записывается текущее (то есть время создания иноды в файловой системе). И если это понимать — что временем создания файла является время модификации иноды, то становится понятно, невозможно никак перенести файл (ни в архиве, ни как-то ещё) с сохранением временем создания.
Также становится понятно, что из Windows невозможно изменить время создания файла, который находится в совместной папке в файловой системе ext4 (хотя я на всякий случай попробовал).
То есть вариантов поменять дату создания файла в Linux всего два: 1) поменять время системы; 2) низкоуровневое редактирование файловой системы (например, шестнадцатеричным редактором или специальными инструментами (если они существуют)) — с соответствующими рисками нарушить целостность файловой системы.
То есть плохая новость в том, что изменить время создания файла очень трудно или практически невозможно. Но хорошая новость в том, что время создания файла на практике почти не используется из-за того, что это поддерживают не все файловые системы, и в самой Linux эта поддержка появилась недавно. Например, команда find ничего не знает о времени создания файла (хотя может искать по другим трём меткам времени: модификация, доступ, изменение статуса), команда ls также не умеет отображать время создания файла (только обычные три метки времени).
Обычно используется время модификации файла, которое очень легко можно поменять с помощью touch.
Компиляция apk
Сборка модифицированного нами кода выполняется командой
После этого внутри директории проекта появятся еще две директории:
- build - в ней лежат скомпилированные файлы
- dist - тут располагается сам готовый файл apk. Но установить его на устройство пока не получится, так как требуется этот файл подписать. Если Вы посмотрите, в этом apk просто отсутствует каталог META-INF, в котором хранится цифровая подпись.
Скачивание файла из Google Play
На сайте Google Play необходимо найти требуемое приложение и скопировать его адрес (в строке адреса браузера).
С помощью специальных сервисов, например, этого, скачать файл на компьютер, используя ранее скопированный адрес.
Поиск файлов по времени изменения
Для этого мы опять будем использовать команду find. Для поиска по времени у неё есть следующие опции:
-amin n
Последний раз к файлу был совершён доступ n минут назад.
-atime n
К файлу был совершён доступ n*24 часов назад. Когда find определяет, как много 24-часовых периодов назад к файлу был совершён доступ, любая дробная часть игнорируется, поэтому для соответствия -atime +1 к файлу должен быть сделан доступ по крайней мере два дня назад.
-cmin n
Статус файла был изменён последний раз n минут назад.
-ctime n
Последний раз статус файла был изменён n*24 часов назад. Смотрите комментарий для -atime для понимания, как округление влияет на интерпретацию времени изменения статуса файла.
-mmin n
Данные файла последний раз были изменены n минут назад.
-mtime n
Данные файла были изменены последний раз n*24 часов назад. Смотрите комментарий для -atime для понимания, как округление влияет на интерпретацию времени модификации файла.
То есть если в опции слово min — то число n трактуется как минуты, а если в опции присутствует слово time, то n трактуется как сутки.
В качестве числа n можно указать точное значение, а также выражения «больше чем n» и «меньше чем n» следующими способами:
С find можно строить весьма сложные конструкции условий чтобы найти именно то, что вам нужно. Далее всего несколько примеров — но количество возможностей безгранично. С опцией -name можно указывать шаблон имени, можно комбинировать с поиском по любым другим свойствам файла: размер, права доступа и т.д.
Чтобы найти все файлы, содержимое которых было изменено ровно 50 дней назад:
Чтобы найти все файлы, к которым был получен доступ ровно 50 дней назад:
Чтобы найти все файлы, содержимое которырх было модифицировано более 50 дней назад и менее 100 дней назад:
Чтобы найти файлы, статус которых был изменён за последний час:
Чтобы найти файлы, которые содержимое которых было модифицировано за последний час:
Чтобы найти все файлы, доступ к которым был сделан за последний час:
Чтобы найти все файлы в текущей папке с расширением .php, которые были изменены или созданы за последние 10 дней:
find . -name '*.php' -mtime -10
Чтобы найти все исполнимые файлы в текущей папке, которые были изменены или созданы за последние 10 дней:
Декомпиляция apk
Декомпиляция apk может быть выполнена с помощью утилиты apktool. bat файл для её запуска Вы можете скачать внизу статьи. Самую последнюю версию утилиты можно взять на сайте авторов.
В Ubuntu apktool устанавливается командами:
Утилита apktool написана на языке Java и требует установки на компьютер Java 8 (JRE 1.8).
После установки JRE необходимо переименовать файл утилиты в apktool.jar (убрать из имени версию, только в случае, если Вы скачивали файл с официального сайта) и перенести jar и bat файлы в папку, которая описана в системной переменной path.
По сути, после этого мы можем уже начать декомпилировать apk.
Способов получения файла APK много.
Кто-то использует для этого Android Device Bridge (ADB).
Кто-то скачивает файл на компьютер непосредственно из Google Play.
Но лично я использую другой способ. Многие файловые менеджеры позволяют создавать резервные копии приложений. Я, например, использую "Cx Проводник", создаю резервную копию, а потом с его же помощью перебрасываю файл на компьютер через сеть, либо Яндекс диск.
Итак, у нас есть apk-файл, который мы планируем исследовать и поменять. Также у нас есть инструмент, необходимый для его декомпиляции.
После этого у нас в том же каталоге, где находится apk, появится папка с тем же именем, внутри которого находится декомпилированная структура файла apk.
Данная структура совпадает с тем, что видели с помощью архиватора, если открывали apk как архив.
Но в ней появилась директория smali, где лежит дезассемблированный код dex-файла, плюс в корне появился файл apktool.yml. Этот файл является служебным файлом apktool и понадобится утилите при обратной сборке проекта.
С этим всем нам и предстоит работать.
В данном способе есть один минус: исходный код получается в small (аналог ассемблера).
Чтобы получить более читаемый код, используют связку dex2jar и jd-gui (В качестве его альтернативы можно использовать Jad, а можно даже использовать облачную декомпиляцию).
Первый позволяет получить из apk файл jar, а второй - собственно дезассемблировать jar.
Также могут пригодиться:
-
- ассемблер/дизассемблер smali / dex. - программа для подписывания apk (входит в состав Android SDK и требует его установки) - не помешает, если мы планируем разрабатывать код для Android. Можно сказать, что это целый "комбайн". - еще вариант для подписывания apk - программа, с функционалом, аналогичным apktool, но имеющая графический интерфейс и работающая под Windows.
Какое время показывает команда ls -l
Если запустить команду ls с опцией -l, то она покажет последнее время модификации содержимого файла (или директории). Используя опцию --time можно вызвать показ других меток времени:
Как можно увидеть, с помощью ls невозможно вывести время создания файла, поскольку эта возможность была добавлена в ядро недавно.
Если добавить опцию --sort=time, то будет также выполнена сортировка по выбранной метки времени.
Имеется несколько сокращённых опций:
Можно выбрать формат времени:
Значением TIME_STYLE могут быть: full-iso, long-iso, iso, locale или +ФОРМАТ.
Значение ФОРМАТа как в date(1). Если значение ФОРМАТа равно ФОРМАТ1ФОРМАТ2, то ФОРМАТ1 применяется не к последним файлам, а ФОРМАТ2 к новым. Если TIME_STYLE начинается с «posix-», то он применяется только для локалей отличных от POSIX. Также, используемый стиль по умолчанию задаёт переменная окружения TIME_STYLE.
Есть сокращение популярного варианта:
Связанные статьи:
факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!
Я недавно просматривал предлагаемый поставщиками перечень дисплеев и отметил, что мой дисплей (Samsung CQ-4551) не указан в качестве поддерживаемого операционной системой Windows XP. На практике, конечно, не представляет труда обеспечить его поддержку с помощью inf-файла, поэтому я скопировал этот файл и поместил его в папку с резервными копиями системных файлов, расположенную непосредственно в папке INF. Исходный файл был сохранен без изменений, и представилась возможность добавить новый файл для поддержки указанного монитора. Однако перед созданием нового файла информации мне хотелось бы дать несколько рекомендаций, которые могут оказаться полезными при его изменении.
Предупреждение
Производите модификацию Inf-файла только после создания его копии. Исходный файл следует помещать в каталог с резервными копиями системных файлов и использовать специальное расширение. Модифицированный Inf-файл должен появляться в каталоге INF, так чтобы Windows XP могла правильно его распознавать и применять. Сохранение копии исходного файла в указанном каталоге позволяет восстановить его на более поздних этапах работы.
1. Распечатайте копию исходного inf-файла. После этого при добавлении или изменении записей можно быстро просмотреть перечень, поскольку некоторые записи определяются видом других записей файла. При неправильном вводе данных или их неверной интерпретации inf-файл становится совершенно бесполезным.
2. Используйте другие записи файла в качестве эталонных при создании новых записей. Windows XP обеспечивает точную интерпретацию данных inf-файла. Добавление так называемых усовершенствований к некорректной на первой взгляд записи может привести к тому, что inf-файл станет непригодным для дальнейшего применения.
3. Используйте необходимые знаки пунктуации, выделение прописными буквами и следуйте синтаксису файлов информации при вводе новой записи, поскольку Windows XP весьма чувствительна к форматированию записей inf-файла.
4. Никогда не пытайтесь изменить раздел Version (Версия) inf-файла.
5. Введите необходимые данные в уже существующий файл – это гарантия того, что новые записи будут аналогичными уже существующим.
Теперь можно непосредственно перейти к модификации inf-файла. Допустимо воспользоваться теми же операциями, которые служат для обновления других файлов папки INF. Единственное, что может изменяться при переходе от файла к файлу, это формат записей и используемые разделы.
Примечание
Эта модификация должна обеспечивать нормальную работу с любой версией операционной системы Windows XP. Однако я хотел бы напомнить, что при ее осуществлении использовалась именно Windows XP.
Имена файлов могут отличаться от тех, которые я задал при модификации. Удобно воспользоваться утилитой Поиск (Search) в программе Проводник с целью поиска соответствующего файла monitor7.inf для вашего монитора:
1. Используйте стандартную программу Windows XP – Блокнот – для открытия файла monitor7.inf.inf-файл содержит четыре раздела, требующих изменения (см. табл. 4.1). Первый модифицируемый раздел включает данные об изготовителе. Поскольку я предполагал добавить запись для монитора фирмы Samsung, то применил команду Правка → Найти (Edit → Find) приложения Блокнот для поиска названия поставщика. Фирма Samsung присутствовала в перечне, поэтому не пришлось добавлять новую запись.
2. После обнаружения изготовителя я перешел к разделу устройств, который содержит перечень устройств, поставляемых этими изготовителями и поддерживаемых Windows XP, и добавил туда новые записи, чтобы операционная система могла правильно распознавать новое устройство:
Как несложно видеть, я задал формат в строгом соответствии с форматом уже существующих записей. Это представляется весьма важным моментом процедуры добавления записей (для устройств, изначально не поддерживаемых Windows XP). Новая запись информирует систему о том, что фирма Samsung изготавливает модель монитора CQ-4551, а также о том, что подробные сведения об этой модели можно найти в разделе CQ-4551 inf-файла.
3. Используйте команду Найти (Find) текстового редактора Блокнот для поиска записи SAM-3Ne. Эта запись появляется в разделе Инсталляция (Install) inf-файла. Я добавил приводящиеся ниже записи (они выделены полужирным шрифтом) для того, чтобы проинформировать Windows XP, каким образом следует инсталлировать новый монитор. Данные рекомендации выглядят точно так же, как и те макрокоманды, которые вы, возможно, создали для своих приложений:
AddReg=SAM-3Ne.AddReg, 1024, DPMS
Я также добавил заголовок, призванный идентифицировать код макрокоманды для процедуры инсталляции модели монитора CQ-4551 фирмы Samsung.inf-файл всегда содержит подобные заголовки, заключаемые в квадратные скобки ([…]). Кроме того, я внес в этот раздел две записи (макрокоманды). Первая информирует Windows XP о необходимости исключения текущей записи из реестра. Эта старая запись должна быть удалена для того, чтобы избежать конфликтных ситуаций в тех случаях, когда Windows XP попытается сконфигурировать видеоадаптер с учетом спецификаций монитора. Вторая запись говорит о необходимости добавления новой записи в реестр с соответствующими инструкциями, присутствующими в разделе CQ-4551.AddReg inf-файла. Код 640, приводящийся после команды AddReg, сообщает операционной системе о необходимости применения режима с разрешением 640 (имеется в виду режим по умолчанию).
4. Используйте команду Найти (Find) в Блокноте для поиска записи SAM-3Ne в следующем разделе файла. Я добавил приводящиеся ниже записи (выделены полужирным шрифтом) с целью проинформировать Windows XP о том, каким образом нужно модифицировать запись в реестре для поддержки нового монитора. Следует напомнить, что вы пока еще работаете с разделом Install (Инсталляция):
Раздел Registry (Реестр) inf-файла требует предварительного просмотра. Представление о том, каким образом модифицируют запись этого раздела для поддержки нового устройства, позволит правильно сконфигурировать систему и обеспечить ее работоспособность. (Более полное описание раздела Registry приводится в главе 12.) Проверьте спецификации устройства на предмет наличия однотипных характеристик. Все изменения, выполненные в inf-файле, предусматривают проведение подобной операции в обязательном порядке. В рассматриваемом случае первым важным компонентом является MODES\640, 480, который указывает разрешение монитора. Второй компонент, Model, сообщает операционной системе о том, что данный режим является основным режимом, обеспечиваемым монитором.
Если обратиться к другим записям inf-файла, вы убедитесь в том, что некоторые мониторы поддерживают режимы многофункционального типа. Последний компонент, "31.5, 60.0-70.0,-,-", выглядит на первый взгляд странно, но все проясняется при ознакомлении с соответствующим руководством по эксплуатации монитора. Первое число компонента, 31.5, соответствует частоте горизонтальной (строчной) развертки. В этой позиции также допустимо указать приемлемый диапазон частот. Диапазон 60.0-70.0, заданный в компоненте, соответствует диапазону частот вертикальной (кадровой) развертки. Два минуса информируют о том, что данный монитор не является многофункциональным.
5. Перейдите к последнему разделу inf-файла – Strings (Строки). Здесь можно описать монитор с помощью понятных для пользователя терминов. Для поиска последней записи типа SAM-2Ne используйте команду Найти в программе Блокнот. После обнаружения подобной записи добавьте следующую запись:
CQ-4551 = «Samsung CQ-4551»
SAM-3Ne="Samsung SyncMaster 3Ne"
На этом модификация inf-файла завершается, и если вы в ней разобрались, то в будущем сможете обеспечить адекватную поддержку со стороны Windows XP для любого изначально проблемного устройства. Конечно, некоторые сложности останутся (например, отсутствие защищенных драйверов или проблемы совместимости). Если вы хотите посмотреть, как выглядит новая запись, необходимо сначала сохранить inf-файл. На следующем этапе воспользуйтесь процедурой ускоренного просмотра записей монитора, для чего выполните следующие действия:
1. Щелкните правой кнопкой мыши по значку папки Мой компьютер в меню Пуск, воспользуйтесь опцией Свойства в контекстном меню, а затем вкладкой Оборудование (Hardware).
3. Откройте папку Мониторы (Monitors), щелкните правой кнопкой мыши по значку нужного монитора и выберите опцию Свойства в контекстном меню для открытия диалогового окна Свойства: [подключенная модель монитора] (Monitor Properties).
4. Выберите вкладку Драйвер (Driver) и нажмите кнопку Обновление (Update Driver). Появится диалоговое окно Мастера обновления оборудования (Hardware Update Wizard).
5. Включите опцию автоматической установки программного обеспечения для выбранного устройства или опцию установки из указанного места (поиска подходящего драйвера на заданных носителях), после чего нажмите кнопку Далее. В следующем окне Мастера воспользуйтесь опцией Не выполнять поиск. Я сам выберу нужный драйвер (Don't Search, I Will Choose the Driver to Install) и нажмите кнопку Далее. Вы увидите перечень моделей мониторов, совместимых с вашей системой.
6. Активизируйте опцию Только совместимые устройства (Show Compatible Hardware) для вывода перечня всех мониторов, поддерживаемых Windows XP. Этот перечень занимает два окна и содержит название изготовителя (в левой части) и моделей мониторов (в правой части).
7. Просмотрите перечень поставщиков и найдите фирму Samsung, при этом появится возможность познакомиться с новой записью для монитора (рис. 4.3).
Рисунок 4.3. Результаты модификации файла MONITOR7.INFможно наблюдать с помощью диалогового окна Мастер обновления оборудования
Добавление нового устройства в inf-файл может на первый взгляд показаться делом достаточно сложным, а иногда и просто нереализуемым. Тем не менее подобный подход демонстрирует ряд преимуществ, которые позволяют уменьшить время, затрачиваемое на обслуживание системы, и в этом смысле заслуживает самого пристального внимания.
Вероятно, на пути создания своих форков приложений для Android придётся идти по пути не написания их "с нуля", а модификации уже готовых, зачастую системных приложений.
Постараюсь вкратце описать процесс такой модификации.
Состоит она из четырех этапов:
Этичный хакинг и тестирование на проникновение, информационная безопасность
Всё началось с того, что я заинтересовался, как найти в системе файлы созданные или изменённые за определённый промежуток времени. Например, как узнать, какие файлы в папке /etc были изменены за последний день или за последнюю неделю?
С этой задачей прекрасно справляется команда find, правда выяснилось, что у каждого файла доступны следующие метки времени:
- Доступ
- Модифицирован
- Изменён
- Создан
Чтобы понимать, что именно мы нашли, нужно чётко знать разницу между этими свойствами файла.
Именно этому и посвящена данная статья, в ней будет рассказано:
- как посмотреть время изменения файла и чем время изменения отличается от времени модификации файла
- как узнать, когда файл последний раз открывали
- как узнать время создания файла в Linux
- как поменять время доступа, модификации и изменения файла.
- как поменять время создания файла в Linux и возможно ли это вообще
- как найти файлы, которые недавно были изменены или открыты
- как найти файлы, которые открывали, редактировали или создавали в определённый день или определённое время назад
Все эти вопросы имеют практический смысл: от простого домашнего использования — поиск файла, для которого мы не помним имя, но для которого помним время создания; до серьёзного профессионального — появление новых файлов на сервере, либо недавние модификации важных файлов, могут свидетельствовать о взломе системы или неавторизованном доступе, могут помочь при расследовании подобных случаев для понимания событий произошедшего. Либо быть применены с противоположными мотивами — что и как нужно поменять в метках времени, чтобы снизить возможности криминалистического исследования.
Временные метки файла в файловой системе и в метаданных
Прежде чем начать говорить о временных метках файла, нужно понять, что это является частью функциональности файловой системы. Следовательно, на различных файловых системах некоторые временные метки могут быть недоступны.
Кроме как в свойствах файла в файловой системе, временные метки могут храниться в метаданных самого файла. Очень многие форматы имеют метаданные и довольно часто эти метаданные содержат свой собственный набор временных меток, которые отличаются по составу и даже по текущему их значению от меток времени в файловой системе. Например, для документов Word в метаданных кроме даты создания могут также содержаться метки времени о дате печати файла, об общем времени редактировании файла и так далее.
Для изображений в EXIF метаданных также могут содержаться независимая от файловой системы информация о времени создания файла.
Нельзя ни в коем случае забывать о метаданных если ваша цель отредактировать метки времени! Для доступа/редактирования к метаданным используются различные приложения и эти вопросы не входят в тему данной статьи. Данная статья посвящена меткам времени файлов и папо, которые хранит файловая система.
Скачивание файла с помощью ADB
В Windows потребуется предварительно установить USB драйвера для вашего Андроид устройства (если Вы не устанавливали его ранее). В Linux этого скорее всего не потребуется.
Для установки в Ubuntu используется команда:
Подключите Android устройство к компьютеру через USB кабелю.
Вывести список всех установленных на устройстве пакетов можно командой:
Естественно, если Вы используете Ubuntu, то можете использовать grep для фильтрации вывода и поиска искомого пакета (в Windows команда не сработает).
Теперь мы можем узнать полный путь к пакету при помощи команды
Теперь мы можем скачать файл с устройства на компьютер:
Второй параметр является не обязательным.
Что из себя представляет apk-файл
По своей сути apk-файл - это zip-архив, внутри которого хранятся исполняемые и служебные файлы.
Если Вы поменяете расширение на zip, то сможете увидеть его содержимое.
Но работать с этими файлами нельзя, так как они представлены в бинарном виде, даже XML.
Подписывание apk с помощью apksigner
В отличии от uber-apk-signer в этом приложении можно указать свои параметры для генерации электронной подписи.
На первой вкладке программы (Key Generator) мы создаем ключи, на второй вкладке (APK Signer) производим подписывание apk.
Для создания цифровой подписи необходимо заполнить на первой вкладке следующие поля:
- Target File — файл хранилища ключей;
- Password и Confirm — пароль хранилища;
- Alias — имя ключа в хранилище;
- Alias password и Confirm — пароль секретного ключа;
- Validity — срок жизни ключа (в годах).
Также подпись можно проводить и из командной строки.
Следующим шагом мы подписывем apk. На вкладке APK Signer нужно выбрать только что сгенерированный файл, ввести пароль хранилища, алиас ключа и пароль ключа, затем нужно выбрать файл apk и нажимаем кнопку «Sign».
Что такое время доступа, время модификации и время изменения директории в Linux
Посмотреть метки времени папки можно также с помощью команды stat:
Например, чтобы посмотреть информацию о текущей папке:
Для папок время последнего доступа обновляется при просмотре списка файлов внутри неё. Действуют такие же правила, как и для файлов — зависит от опций, с которыми смонтирована файловая система.
При создании или удалении нового файла внутри директории, при модификации содержимого или изменении свойств файла внутри папки, одновременно обновляется и время изменения, и время модификации данной папки.
Как посмотреть время создания, редактирования и открытия файла в Linux
Сразу все временные метки файла можно посмотреть с помощью команды stat. Запуск очень простой:
Например, я хочу узнать информацию о файле prog.txt:
С временем создания всё понятно — это когда файл был создан. Между прочим, эту информацию программа stat стала показывать довольно недавно. До этого на вопрос «как узнать время создания файла?» знатоки отвечали, что ядро Linux это не поддерживает. В качестве рабочего решения нужно было посмотреть иноду интересующего файла, а затем другой командой посмотреть дату создания этой иноды — это и считалось временем создания файла.
Выше показан вывод для команды на файловой системе ext4. Для файловой системы ext2 дата создания файла по-прежнему недоступна:
Теперь давайте разберёмся, что означают другие метки времени в Linux.
Как отредактировать метки времени файла
С помощью команды touch можно изменить три метки времени файла или папки:
- время доступа
- время модификации
- время изменения статуса
Если вы хотите изменить все эти значения на текущее время, то достаточно запустить команду вида:
Можно отдельно поменять только время доступа или только время модификации, соответствующие опции:
С помощью опции -t можно установить любое время, на которое мы хотим поменять метки файла. Формат указания времени следующий:
В этой строке то, что в фигурных скобках, является необязательным. Значения букв следующее:
- CC – Первые две цифры года (от слова century — века)
- YY – Вторые две цифры года
- MM – Месяц года (01-12)
- DD – День месяца (01-31)
- hh – Часы дня (00-23)
- mm – Минуты часа (00-59)
- ss – Секунды (00-59)
Если не указать века или год вообще, то будет использоваться текущий год. Если не указать секунды, то значением по умолчанию является 00.
С помощью опции -t невозможно указать доли секунды и в выводе команды stat на их месте всегда будет 000000000
С помощью опции -d можно использовать разные более человечные способы указать время, например, «две недели назад». Это должно работать на английском, не знаю как с национальными языками. Опция -d (судя по описанию) понимает много разных вариантов синтаксиса, но для меня самым интересным свойством является возможность установить доли секунды, чтобы метки времени выглядели естественно, поскольку временные метки с девятью нулями на конце наводят мысль о том, что они спуфлены. Пример установки времени с указанием долей секунды:
То есть формат строки такой (из неё можно пропустить дефисы и двоеточия — опция -d всё равно её поймёт, но я их добавил для наглядности):
Подписывание apk с помощью uber-apk-signer
Подписывание выполняется командой:
В результате в директории с исходным apk появится файл с именем -aligned-debugSigned.apk
Это и есть наш подписанный файл.
Подписание apk-файла
Мне известно два способа подписания apk-файла:
- С помощью uber-apk-signer
- С помощью apksigner из состава Android SDK
Но хочу оговориться, что установить приложение сразу не получится. Дело в том, что Google Play блокирует установку приложений, у которых электронная подпись отличается от предыдущей версии. Сделано это в целях защиты от установки подложных приложений.
Поэтому "поверх" пересобранное приложение установить нельзя. Нужно предварительно удалить оригинальное и установить своё.
Либо изменить название и установить свой форк рядом с оригиналом.
Читайте также: