Тема: AHK: Как убедиться в верности системного времени?
Как можно проверить не подкрутил ли пользователь системное время, чтобы обмануть программу, без выхода в интернет?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как можно проверить не подкрутил ли пользователь системное время, чтобы обмануть программу, без выхода в интернет?
По временным меткам каких-нибудь файлов, наверно.
Проверить время изменения какого-нибудь системного файла - обычно время переводят перед запуском нужной программы, а не держат его постоянно.
Например, время изменения c:\pagefile.sys и c:\swapfile.sys соответствует старту системы (Win8).
FileGetTime, T, c:\pagefile.sys
if (A_Now - T < 0)
MsgBox Время переведено!
Или отлавливать сообщением:
#Persistent
OnMessage(0x1E, "WM_TIMECHANGE")
return
WM_TIMECHANGE()
{
msgbox Время изменили
return
}
Malcev, скрипт должен постоянно в памяти висеть и мониторить сообщения? Ведь скорее всего, речь идет о компьютере другого пользователя.
Malcev, скрипт должен постоянно в памяти висеть и мониторить сообщения?
Ну да. Лично я когда нуждался в переводе времени для запуска приложения - перевел его на несколько лет назад и забыл. Вспомнил только, когда плагины в браузере отказались работать - дескать система у вас слишком старая.
Проверить время изменения какого-нибудь системного файла - обычно время переводят перед запуском нужной программы, а не держат его постоянно.
Например, время изменения c:\pagefile.sys и c:\swapfile.sys соответствует старту системы (Win8).
Да, я в курсе. Это была первая мысль. Но потом я понял, что рестарт системы после смены времени сделает эту проверку бесполезной. Может есть ещё какие-то файлы windows, присутствующие во всех последних версиях, которые не так быстро меняют свойства? Чтобы даже через несколько часов после перезагрузки, можно было обнаружить обман?
Можно еще виндозный журнал событий читать.
А почему свой файл не создать? Например, в папке Temp, где этих файлов как собак нерезанных.
А почему свой файл не создать? Например, в папке Temp, где этих файлов как собак нерезанных.
Ну, они же как-то там чистятся? Насколько это надёжно?
Можно еще виндозный журнал событий читать.
Было бы здорово. А есть готовая методика для всех последних windows?
Наверняка, как-нибудь с wevtutil.
YMP пишет:А почему свой файл не создать? Например, в папке Temp, где этих файлов как собак нерезанных.
Ну, они же как-то там чистятся? Насколько это надёжно?
Ну, не моментально же. Кроме того, в реестре можно писать дату в каком-нибудь разделе с загадочным названием.
По-моему самое надежное - мониторить сообщения и в случае чего создавать в темпе нестираемый файл, при обнаружении которого программа не запустится.
Foma пишет:YMP пишет:А почему свой файл не создать? Например, в папке Temp, где этих файлов как собак нерезанных.
Ну, они же как-то там чистятся? Насколько это надёжно?
Ну, не моментально же. Кроме того, в реестре можно писать дату в каком-нибудь разделе с загадочным названием.
А что даёт не моментальность? Я что-то не очень представляю процесс.
Записи в реестр отслеживаются очень большим количеством программ. Если уж захотят обмануть, тот тут легко засекут.
Обращение к файлам тоже отслеживается соответствующими программами.
У каждого файла есть время создания, открытия и модификации. Можно по выходу из программы менять время для самого EXE-шника, например время модификации равно времени закрытия, а две других временных метки будут чуть отличаться и нести в скрытом виде контрольную сумму этого времени - на случай, если пользователь захочет ручками подправить свойства файла.
Обращение к файлам тоже отслеживается соответствующими программами.
Ну, к не системным файлам всё-таки на порядок меньше.
Если пользователь поменяет время, сделает свои дела и вернет время назад, то смысла от запоминания времени не будет. Голосую за "мониторинг" сообщений.
У каждого файла есть время создания, открытия и модификации. Можно по выходу из программы менять время для самого EXE-шника, например время модификации равно времени закрытия, а две других временных метки будут чуть отличаться и нести в скрытом виде контрольную сумму этого времени - на случай, если пользователь захочет ручками подправить свойства файла.
Интересная идея. Но во временной формат всунуть контрольную сумму - задача не из простых. И тут ещё что-то для первого запуска обмозговать надо.
во временной формат всунуть контрольную сумму - задача не из простых.
Не сложнее, чем написать программу, требующую защиты. ))
Для первого запуска можно требовать подключения к интернету (как многие программы проверяют лицензию), сверять время и на его основе изменять метки времени файла.
Для первого запуска можно требовать подключения к интернету (как многие программы проверяют лицензию), сверять время и на его основе изменять метки времени файла.
Пытаюсь избежать этого. Я же не MS, доверие к моей программе нулевое. Что у пользователя, что у сторожевых программ.
Самым кардинальным выходом мне видится чтение журналов Windows. Но я мало знаком с этой темой и есть большие сомнения, что во всех Windows выше 7 там всё одинаковое.
Кто-то может помочь в этом вопросе? Может вообще AHK что-то там найти?
А можно поинтересоваться, что за программа такая, за которую вы так переживаете?
Если она будет пользоваться популярностью, то все-равно за 2 счета крекнут.
Я же MS, доверие к программе нулевое.
Вы - Билл Гейтс?
А можно поинтересоваться, что за программа такая, за которую вы так переживаете?
Если она будет пользоваться популярностью, то все-равно за 2 счета крекнут.
Простите, нет.
Я ищу защиту от продвинутого пользователя, а не от профи.
Foma пишет:Я же MS, доверие к программе нулевое.
Вы - Билл Гейтс?
Смешно, исправил.
Продвинутый пользователь обратится к профи и все-равно взломают.
А если таки хотите читать журнал событий, то через wevtutil начиная с висты все извлекается.
А что там интересного в журнале пишется? Даты для событий берутся из часов компьютера, а их можно переводить назад.
Продвинутый пользователь обратится к профи и все-равно взломают.
А если таки хотите читать журнал событий, то через wevtutil начиная с висты все извлекается.
Профи платить надо. Я надеюсь, что это будет не выгодно. Я просто не хочу держать свой кошелёк на виду у всех. Хочу положить его во внутренний карман под молнию. Но сейф с собой таскать, конечно не буду.
Про wevtutil ничего не знаю, но поищу, спасибо.
YMP пишет:Обращение к файлам тоже отслеживается соответствующими программами.
Ну, к не системным файлам всё-таки на порядок меньше.
В смысле? Можно отследить, к каким файлам ваша программа обращается. Есть для этого средства, тот же FileMon.
А что там интересного в журнале пишется?
При переводе часов появляется событие и в security и в system на win7.
This event is generated when the system time is changed. It is normal for the Windows Time Service, which runs with System privilege, to change the system time on a regular basis. Other system time changes may be indicative of attempts to tamper with the computer.
Профи платить надо. Я надеюсь, что это будет не выгодно.
Не всегда именно так. Могут заняться и ради интереса. И вот тому пример:
http://forum.script-coding.com/viewtopic.php?id=7715
На XP при ручном переводе часов событий в журнале не появляется. И журнал можно очищать.
Ну как я понял, топикстартера не интересует XP:
Самым кардинальным выходом мне видится чтение журналов Windows. Но я мало знаком с этой темой и есть большие сомнения, что во всех Windows выше 7 там всё одинаковое.
А очищать, конечно же можно.
Я думал, что он хотел реализовать программу с ограниченным времени пробного пользования.
Я думал, что он хотел реализовать программу с ограниченным времени пробного пользования.
Пробного и оплаченного.
Foma, вам не пора правила цитирования подучить?
Системное время, файлы, реестр - всё это, как говорится, "козлиная защита". Всегда можно вернуть в первоначальный вид, и программа не узнает, который сегодня день.
OFF: Хм...
teadrinker, не нашёл про цитирование, но надеюсь, что догадался.
ypppu, я ищу защиту от продвинутого пользователя, а не от профи.
Так продвинутый пользователь понимает, что программа где-то оставляет метку. Заходит в гугол и ищет инструмент для слежения за реестром и файлами.
OFF: Как вы относитесь к "лицензионному" и "пиратскому" ПО? оставил The gray Cardinal [ 1 2 3 … 12 ]
283 33539 2008-12-19 13:57:26 оставил The gray Cardinal
teadrinker, не нашёл про цитирование
Здесь поищите.
Или просто спустя триальный срок будет откатываться.
ypppu, Malcev у нас с вами разные представления о продвинутых пользователях. )
Мой - умеет переставлять часы, перезагружаться, имеет какую-нибудь бесплатную программку в качестве антивируса, который в том числе и за подозрительными действиями с реестром следит. Откатывать систему, перезаписывать сохранённый ранее образ системного диска, знать про программы следящие за всеми файлами он не умеет.
По wevtutil ничего не понял. Если никто не подскажет или не даст готовый образец, буду использовать комбинацию других доступных мне способов.
А что такое подозрительные действия с реестром? Запись и чтение в созданный программой раздел -- подозрительны?
А с wevtutil вот так попробуй:
wevtutil qe Security /q:*[System[(EventID=4616)]]
А что такое подозрительные действия с реестром? Запись и чтение в созданный программой раздел -- подозрительны?
Это не моя формулировка. Авторы этих программ как-то делят по разделам и ещё как-то, что вот тут нормально, потому что windows часто тут и так пишет и т.п. А вот тут вот так - подозрительно.
Malcev, это куда вставлять? Само по себе не запускается даже.
В cmd.
Хотя к security только под админом дают доступ.
Можно обращаться к System:
wevtutil qe System /q:*[System[(EventID=1)]]
Malcev, спасибо, посмотрю, что с эти смогу сделать.
Если у кого-то ещё будут идеи с более простой реализацией - пишите.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться