Чи може здатися, що файл може бути змінений до його створення? [дублікат]


9

Чи можливо мати файл, який має змінену дату, що до дати його створення? Які дії спричинили б цю подію?


7
Створіть файл. Поверніть годинник назад. Змініть файл. Поставте годинник знову.
DavidPostill

@DavidPostill Зауважте, що, принаймні, у Windows, зміна системного часу вимагає адміністративних привілеїв, хоча існують й інші способи створення смішних файлів, які цього не роблять.
Бен Н

Відповіді:


8

Розглянемо архів .tar, який витягується. Зазвичай вилучені файли матимуть останню часову позначку модифікації, призначену з вмісту архіву (що, як правило, минуле, якщо ви не мандрівник часу). Що стосується файлової системи, то ці файли щойно створені.

Існують також утиліти для зміни часу модифікації існуючих файлів, наприклад, у Linux це сенсорна команда.


І для одного файлу, cp -pі для речей, які його імітують, як rcp -pі scp -p, як і rsyncз, -tабо -aзабирає модтайм з джерела.
dave_thompson_085

"час створення" - це термін Windows, а не * nix. * nix має "час зміни", який легко сплутати з "часом створення", але не те саме.
підключення

ext4, мабуть, зберігає "час народження", який схожий на (але не такий, як) "час створення" Windows, але немає хорошого способу отримати доступ до нього. unix.stackexchange.com/a/50184/122182
plugwash

8

Якщо ви створюєте файл з нуля, він отримує час створення "зараз" та дату модифікації "зараз". Тепер уявіть, як скопіювати цей файл на інший диск. Windows збереже час модифікації, але час створення цього файлу буде встановлено на момент копіювання файлу на цей диск (тобто час створення файлу на цьому диску). Просто як це.

Це насправді правильно:

  • Останній раз, коли вміст файлу було змінено, зберігається у час модифікації.
  • Час створення файлу на цьому самому накопичувачі зберігається під час створення.

Цей коментар має найбільш сенс, тому що він демонструє дуже ймовірний сценарій, коли виникне створена / змінена невідповідність дати.
Шукри Адамс

7

У Windows дуже просто встановити (якщо ви хочете підробити) створений і змінений файл. Вам не потрібно змінювати годинник комп'ютера; вам навіть не потрібен місцевий доступ адміністратора. Все, що вам потрібно, це записати доступ до питання, про який йде мова.

Щоб встановити час створення файлу за допомогою PowerShell, використовуйте SetCreationTime:

[System.IO.File]::SetCreationTime("C:\path\to\file.ext", (Get-Date "8/8/2088"))

Щоб встановити час останнього модифікації за допомогою SetLastWriteTime:

[System.IO.File]::SetLastWriteTime("C:\path\to\file.ext", (Get-Date "7/4/1776"))

В Linux ви можете легко змінити час останнього змінення файлу з -dпрапором touch, як показано в цьому запитанні відповіді Ubuntu . Насправді не існує поняття дати створення файлів у файлових системах Linux ( подальше читання в Unix & Linux ).


3

Так. У Windows внесіть зміни у файл та збережіть його. Тепер скопіюйте файл. Переглянувши властивості копії, ви побачите, що вона має раніше змінену дату.


1

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

Звідси ми бачимо, що завжди можна (за винятком медіа для запису, як-от CD), перейти та безпосередньо змінити біти на диску, які зберігають останній час, або навіть час створення.

Що більш практично, це також можливо зробити в рамках загальних операційних систем, як відзначали інші відповіді. У Windows це передбачено функцією WinAPI SetFileTime, і це можна зробити за допомогою utimeLinux. Такі інструменти, як touchзбірка на основі цих API.

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


0

На мій досвід, це було, коли один або декілька комп'ютерів були використані для зміни файлу, і один з них має неправильний системний час. Три найпоширеніші причини, коли системний час помиляється, не в конкретному порядку:

  1. Не всі комп'ютери налаштовані автоматично переходити на літній час.
  2. Люди «випадково» змінили системний час на комп’ютері.
  3. Люди «навмисно» змінили системний час на комп’ютері як жарт.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.