Member
Статус: Не в сети Регистрация: 14.11.2004 Откуда: Екатеринбург
Надеюсь, хоть кто-то знает. Как взять время в С++ не Винды, а инета. То есть , чтобы юзер не смог обмануть и переставить у себя. Одна идея есть: обновить с помощью синххронизатора Винды , а потом взять простым GetCurrentTime и все. Но как конкретно это сделать. А может иным спосом. Короче пока не знаю. Напишите, очень интересно.
Member
Статус: Не в сети Регистрация: 14.11.2004 Откуда: Екатеринбург
Root Стандартной, может и нет (к сожалению справки не ма), но идея у меня такая: использовать автоматизацию.
автоматизация - это возможность управлять поведением других программ (серверов автоматизации) или их элементов из своей программы (контроллера). Вставить в Си++ синхронизатор Винды, обновить, и взять время. Только вот где лежит ????.OLB , который отвечает за синхронизатор. Можно найти сайт, где время настоящее отображается и считать строку, вот только надо сам сайт найти.
Asteroid , так бы и писал, что точно не знаешь.
ЗЫ. Может найдется человек, который все нормально напишет или нет? Хотелось бы .
Member
Статус: Не в сети Регистрация: 14.11.2004 Откуда: Екатеринбург
S.Q.Lapp Батник - то хорошо.... А кстати. Как запустить exe файл при помощи Си++ (в смысле команда какая). Вопрос может быть дурацкий , но чего-то я не нашел как это сделать (хотя наверное это просто, так же как с Play ...)
serj Программа смотрит сколько время и выполняет определенные действия хитрожоп... пользователь может переставить время и программа отсрочит свои дествия . Вот и все.
Добавлено спустя 12 минут, 42 секунды: Хочу сказать, что раньше , да и сейчас я писал алгоритмы (всякие : вроде работы с графами и другими головоломными уклонами), а сейчас есть необходимость узнать побольше про оболочки и так далее. Вот и появились вопросы (в книгах не все написано).
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Паук писал(а):
Программа смотрит сколько время и выполняет определенные действия
Средство борьбы - периодически проверять время. Раз программа 'смотрит', то она висит запущенной. Тогда в чем проблема?
Если не понял, поясню: юзер меняет время, например на 10 минут. Твоя программа считывает время (ну или просто висит на таймере или берет системные тики, не суть) каждую секунду. У тебя выходит, что в один отсчет было ХХ.ХХ.ХХ, а в следующий YY.YY.YY - явный разрыв. Т.е. юзер именно полез и именно поменял. А дальше - 'твои действия'. (можно и нафиг послать )
Тут важно корректировать свое внутреннее время, а не системное - тогда юзер не узнает о бессмысленности своих действий.
Менять время в BIOS полезет далеко не каждый, да и то - если будет знать.
Перестановка на день/меся/год назад вообще отлавливается с 'пол пинка', для этого и системное время/дата не столь важны. Самый тупой вариант - пиши куда-нибудь (в реестр например) время последнего запуска программы. При смене на большое время изменяют только один или два параметра. Никто не будет менять и день и месяц и год и время. Надеюсь, я отвечал по вопросу? ... или ты другое имел в виду?
Интернет есть не у всех и привязка к нему .... не есть здорово.
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
Паук см. MSDN по функциям _exec* и _spawn*
serj
Цитата:
Менять время в BIOS полезет далеко не каждый, да и то - если будет знать.
а как насчет того, что виндовое время = БИОСному? Тупая винда же не разрыв между своим временем и временем машины сохраняет Более того - программа Паука для отслеживания изменений времени должна либо быть постоянно запущена (анрильно), либо действительно сохранять время последнего запуска, но в последнем случае она не сможет отследить некоторые варианты. Разве что сохранять тики с запуска системы, но в таком случае мы пролетаем при изменении юзером времени+перезагрузка системы
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Member
Статус: Не в сети Регистрация: 14.11.2004 Откуда: Екатеринбург
Короче. Ух! Накопилось. Отвечаю, что-ли?:) .
Яserj Ты конечно хорошо придумал "", я так и думал ,что ты так ответишь (так бы многие ответили) не в упрек. Но если юзер изменял время , допустим, из-за того ,что биос сбрасывал и решил нормальное поставить, а я его "ты че! руки от времени" (причем меняет и месяц и все такое), а может ему надо на час сдвинуть (с летенего на зимнее), тогда получится ,что прога типа вируса.
Хочу повторится, что прога для инета.
Моя прога работает в скрытом режиме (даже нет в systray). Не вирус, но наблюдатель (ничего плохого, только польза). Прописывается сама в реестре и работает с запуском винды.
Конечно можно сделать так :
если время 00:00 || 00:05 , значит скорее всего был сброшен биос (первая дыра проги)
если время сдвинуто лишь на час, то переход с зимнего на летнее (смотреть еще и число и месяц) (вторая дырка)
и еще всяких условий, но если юзер решил поменять например для Reget Deluxe не зарегестрированного, чтобы побыстрее тот загрузился, а моя программа мешает? Нехорошо. В любом случае , я неким образом мешаю правам пользователя.
Добавлено спустя 3 минуты, 22 секунды: PS. На час с зимнего сдвигает сам виндовс, но прога все равно выдаст пару крепких слов.
Добавлено спустя 9 минут, 25 секунд: serj Может ты как-то по-другому хочешь. ПредLOGай.
У вас может возникнуть вопрос:как программа может приносить пользу если не дает юзеру обмануть себя, ведь получается , что она его контролирует или что-то еще! Но нет.! Юзер может переставить время и забыть, и тогда прога хрен ему
Добавлено спустя 2 минуты, 40 секунд: Кстати. Только заметил! Внизу у этого сайта есть независимое время! Можно , РЕАЛЬНО, считывать его отсюды..
Добавлено спустя 2 минуты: Забудьте абзац : "У вас может возникнуть вопрос:как программа может приносить пользу если не дает юзеру обмануть себя, ведь получается , что она его контролирует или что-то еще! Но нет.! Юзер может переставить время и забыть, и тогда прога хрен ему ....", прога не закончена и когда закончу все скажу.
Средство борьбы - периодически проверять время. Раз программа 'смотрит', то она висит запущенной. Тогда в чем проблема?
serj писал(а):
Тут важно корректировать свое внутреннее время, а не системное - тогда юзер не узнает о бессмысленности своих действий.
serj писал(а):
Самый тупой вариант - пиши куда-нибудь (в реестр например) время последнего запуска программы. При смене на большое время изменяют только один или два параметра. Никто не будет менять и день и месяц и год и время.
Ну, не все так просто. Как-то делал прогу, вот кусок Readme
Цитата:
... Пакет предназначен для запуска других приложений в измененном системном времени с последующим автоматическим восстановлением реального системного времени. ...
Виды защиты, которые Вы описали, легко обходились, включая и ПО, которое во время выполнения периодически проверяло системное время и сохраняло контрольные данные в реестре и / или файле.
Правда, пользователь должен был иметь определенный уровень подготовки.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения