Показать полную графическую версию : Дата изменения Windows
Adler_lug
21-07-2016, 15:49
sov44, как что считается я прекрасно понял, я просто для грубой проверки на калькуляторе в днях считал, а программа в "тиках" считает (days.Ticks). Собственно в них и записывается значение в HEX.
The smallest unit of time is the tick, which is equal to 100 nanoseconds or one ten-millionth of a second. There are 10,000 ticks in a millisecond. The value of the P:System.TimeSpan.Ticks property can be negative or positive to represent a negative or positive time interval.
https://msdn.microsoft.com/ru-ru/library/system.timespan.ticks(v=vs.110).aspx
Painkiller
21-07-2016, 17:02
Adler_lug, а подробнее можешь написать как это сделать вручную ?? Например имеем на сегодня 21.07.16 , как перевести ??
как это сделать вручную ?? »
Painkiller, смотри https://yadi.sk/i/1CXXwVMLtWFS2
Adler_lug
21-07-2016, 17:41
Painkiller, в смысле вручную? Совсем вручную не знаю, т.к. вручную проблемно посчитать разницу в днях (основное что нужно) между датами в разных веках :) Ну по крайней мере я не знаю как это сделать и честно говоря выяснять желания нет.
Слегка смухлевав можно вычислить разницу в днях:
К примеру тут: - http://fincalculator.ru/kalkulyator-dnej
http://i.imgur.com/dzI2SwA.png
Таких калькуляторов много в интернете, я ткнул в первый попавшийся.
Имеем - 151 777 дней. Переводим это в секунды умножив на 86400 (60*60*24) и получаем 13113532800, дорисовываем 7 нулей (т.е. умножить на 10 000 000, т.к. нам надо значение в тактах) = 131135328000000000
И дальше с помощью калькулятора (или чего нибудь еще) переводим в шестнадцатиричное значение и получаем - 1D1E2E2D2F1C000.
Разбиваем на 2 группы по 8 знаков с конца 0x01D1E2E2 и 0xD2F1C000 (в первой группе 0 дописываем т.к. знаков 7).
Сравним со скрином о sov44: http://i.imgur.com/PZkQOFv.png значения те же (у меня там еще какое то время берется в расчет, поэтому значение другое, но так же указывает на ту же дату).
Если нам надо более точно указать (с учетом времени), то надо время перевести в количество секунд и добавить к соответствующему значению.
К примеру сейчас 17:30 (округлил), т.е. 63000 секунд (3600*17+30*60). (13113532800 + 63000)*10000000= 131135958000000000 = 1D1E37581DEDC00 (hex) = 0x01D1E375 и 0x81DEDC00
sov44, вы мне только что открыли глаза, т.к. я не знал, что на калькуляторе можно даты расчитывать :)
Если вечером будет вдохновение (без вдохновения мне лень :)), то допиляю утилиту с добавлением нескольких функций...
Adler_lug
21-07-2016, 19:40
Слегка допилял.
http://i.imgur.com/PgcSoHD.png
Потестите пожалуйста. Вроде правильно все, но всетаки...
http://i.imgur.com/7Bdufqg.png
P.S. Подумаю как сделать обратный пересчет...
Adler_lug, немного заузьте окно даты, чтоб лучше смотрелось. Плюс ещё одна хотелка - сделать кнопку для копирования хешей в буфер обмена.
Adler_lug
21-07-2016, 21:23
Добавил обратный пересчет.
http://i.imgur.com/nQnXARD.png
Двойной клик мышью по результатам копирует значение в буфер обмена.
Двойной клик мышью по полю для обратного пересчета вставляет значение из буфера обмена.
P.S. В программе нет обработки ошибок, соответственно ввод некорректных данных в поля вызовет ошибку...
Adler_lug
21-07-2016, 22:20
Не знаю кому это надо и надо ли вообще, но в качестве эксперимента сделал генерацию уникального (случайного) <LOWPART> (галочка возле поля времени).
Принцип простой, к полному значению (к примеру к 131135328000000000) прибавляется случайно сгенерированное число от 0 до 9999999 вместо неиспользуемых 10000000 тиков (доли секунды). Точность значения так и остается до 1 секунды, но HEX значение для <LOWPART> меняется при каждом новом расчете. Все остальные функции как и в прежней версии.http://i.imgur.com/xPLzu6k.png
Adler_lug, если есть желание добавьте в новой закладке конвертер даты в Unix формат (отсчёт от 01.01.1970) наподобие этого http://rgho.st/87rP5Pgms.
Adler_lug
21-07-2016, 22:41
sov44, как нибудь в другой раз может добавлю...
Adler_lug, что за хитрая кнопочка? http://i.imgur.com/dWNdQsr.png
Adler_lug
21-07-2016, 23:01
sov44, а нажмите и увидите :) Для тестирования использовал, но решил оставить. Копирует значения из полей результата в поля для обратной дешифровки.
Painkiller
21-07-2016, 23:31
Adler_lug, sov44, огромное спасибо, теперь мой набор умеет менять дату ! =) Adler_lug , отличная утилита !
Adler_lug
22-07-2016, 11:34
По просьбе трудящихся добавил пересчет в Unix time и обратное конвертирование. Небольшие исправления.
Добавил функцию копирования параметров <HIGHPART> </LOWPART> (по клику кнопки С между полями результата) в формате конфигурационного файла в следующем виде:
<HIGHPART>0x01D1E3AB</HIGHPART>
<LOWPART>0xFD5B8000</LOWPART>
http://i.imgur.com/ouH1oVi.png
http://i.imgur.com/NqTKvuU.png
P.S. Заменил прикрепленный файл на перекомпилированный, что бы Kaspersky не ругался.
Painkiller
22-07-2016, 11:38
Adler_lug, у меня уже касперский начал ругаться , даже не даёт скачать. Я то знаю что вирусов нет , но от других пользователей будет крику как всегда . =)
Adler_lug
22-07-2016, 12:34
Painkiller, "вылечил" :) Перекомпилировал с другой версией Net Framework (4.0) и попустило. В предыдущем посте заменил прикрепленный файл. Добавил отчет VirusTotal
Adler_lug
22-07-2016, 14:38
Без особых танцев с бубном дату сборки можно сменить используя wimlib-imagex (https://wimlib.net/):
wimlib-imagex.exe info install.wim 1 --image-property CREATIONTIME/HIGHPART="0x01D1E424" --image-property CREATIONTIME/LOWPART="0x215AA800"
Так же можно и дату последней модификации (если надо) исправить:
wimlib-imagex.exe info install.wim 1 --image-property LASTMODIFICATIONTIME/HIGHPART="0x01D1E424" --image-property LASTMODIFICATIONTIME/LOWPART="0x215AA800"
Где install.wim соответствующий файл, 1 - номер образа, ну и значения <HIGHPART> и <LOWPART> соответственно.
Painkiller
22-07-2016, 14:43
Adler_lug, так и делаем =) Касперский молчит =)
дату сборки можно сменить используя wimlib-imagex: »
знакомый код :wink:
Adler_lug
22-07-2016, 15:43
sov44, я не ищу легкий путей :), я к этому сам пришел (http://usbtor.ru/viewtopic.php?p=26868#26868) (и ниже в той же теме) гугля (нагуглил что xml можно вимлибом править в принципе) и читая мануал (как добраться до вложенного параметра), а только потом посмотрел то, на что вы вчера ссылку выкладывали...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.