RU2375739C2 - Способ и система для ограничения обновлений программного обеспечения - Google Patents

Способ и система для ограничения обновлений программного обеспечения Download PDF

Info

Publication number
RU2375739C2
RU2375739C2 RU2005108284/02A RU2005108284A RU2375739C2 RU 2375739 C2 RU2375739 C2 RU 2375739C2 RU 2005108284/02 A RU2005108284/02 A RU 2005108284/02A RU 2005108284 A RU2005108284 A RU 2005108284A RU 2375739 C2 RU2375739 C2 RU 2375739C2
Authority
RU
Russia
Prior art keywords
software
test
computer
client computer
client
Prior art date
Application number
RU2005108284/02A
Other languages
English (en)
Other versions
RU2005108284A (ru
Inventor
Каглар ГУНЯКТИ (US)
Каглар ГУНЯКТИ
Кристьян Эрик ХАТЛЕЛИД (US)
Кристьян Эрик ХАТЛЕЛИД
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2005108284A publication Critical patent/RU2005108284A/ru
Application granted granted Critical
Publication of RU2375739C2 publication Critical patent/RU2375739C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

Изобретение относится к области обеспечения безопасности компьютерного программного обеспечения, в частности к обнаружению пиратского или нелицензированного программного обеспечения. Способ включает прием запроса компьютера клиента на обновление программного обеспечения и предоставление для компьютера клиента теста, который должен быть выполнен. Тест выполняется на компьютере клиента в отношении приложения программного обеспечения клиента. Компьютеру клиента может быть отказано в обновлении программного обеспечения в результате обнаружения тестом незаконной копии программного обеспечения клиента. Изобретение может быть реализовано на практике в среде с сетевой структурой, где сервер передает программу теста клиенту для исполнения при запросе на обновление программного обеспечения. Тест выполняет проверку целостности и отказывает по запросу на обновление программного обеспечения, если обнаружено, что программное обеспечение клиента является незаконным. Использование изобретения позволяет защитить программное обеспечение от похищения. 4 н. и 11 з.п. ф-лы, 3 ил.

Description

Область техники, к которой относится изобретение
Настоящее изобретение относится, в общем, к области обеспечения безопасности компьютерного программного обеспечения. Более конкретно, настоящее изобретение относится к обнаружению пиратского или нелицензированного программного обеспечения.
Предшествующий уровень техники
Компьютерное пиратство вызывает основную озабоченность производителей программного обеспечения. Огромные потери денежного дохода приписываются незаконному копированию и использованию позиционированных на рынке продуктов программного обеспечения. Защита продуктов программного обеспечения может иметь несколько форм. Одной распространенной формой является использование внедренного в продукт программного обеспечения кода, который обычно осложняет работу с кодом, который был незаконно копирован. Хотя эти типы защиты программного обеспечения, основанные на коде, полезны, чтобы препятствовать неопытному похитителю программного обеспечения, хорошо обученных взломщиков (хакеров) такая защита попросту притормозит. На самом деле существует несколько коммерчески доступных инструментальных средств, доступных из Интернета, которые могут помочь взломщикам программного обеспечения выполнить в отношении кода восстановление структурной схемы и алгоритма работы так, чтобы можно было выработать программные исправляющие вставки (заплатки) или тому подобное, чтобы преодолеть основанную на программном обеспечении защиту. Следовательно, доступная в настоящее время защита программного обеспечения, основанная на коде, становится менее эффективной при предотвращении несанкционированного использования коммерчески доступного программного обеспечения. Тем не менее, защита программного обеспечения, основанная на коде, все-таки работает до некоторого уровня для защиты от пиратства и эффективна против некоторых предполагаемых пиратов программного обеспечения.
Таким образом, существует необходимость в методике для защиты программного обеспечения от похитителей, которая использует концепцию защиты на основе кода программного обеспечения, но также и отвечает проблеме "умного вора", который может выполнить восстановление структурной схемы и алгоритма работы в отношении кода и подавить эту защиту. Настоящее изобретение ориентировано на решение вышеупомянутых проблем и решает их с дополнительными преимуществами, как выражено здесь.
Сущность изобретения
Способ обнаружения пиратского программного обеспечения включает в себя прием запроса на обновление программного обеспечения компьютером клиента и предоставление подлежащего выполнению теста компьютеру клиента. Тест выполняется на компьютере клиента в отношении приложения программного обеспечения клиента. Как результат теста, компьютеру клиента может быть отказано в обновлении программного обеспечения, таким образом останавливая распространение похищения программного обеспечения.
Согласно одному аспекту изобретения клиент запрашивает обновление программного обеспечения с сервера, который передает код теста клиенту, клиент исполняет код и отправляет результаты на сервер. Сервер оценивает результаты и либо удовлетворяет запрос на обновление программного обеспечения, либо отказывает по этому запросу, основываясь на проверке сервером, посредством упомянутого теста, того, что программное обеспечение клиента законно. В среде без сервера тест может быть доставлен на компьютер клиента, запрашивающий обновление, с компакт-диска CD. Удовлетворение запроса на обновление или отказ по этому запросу основывается на, соответственно, успешном или неудачном прохождении теста на целостность выполняемого компьютером клиента в отношении приложения программного обеспечения.
Перечень чертежей
Предшествующее краткое изложение сущности изобретения, так же как и последующее подробное описание предпочтительных вариантов воплощения, более понятны при чтении их совместно с приложенными чертежами. Для иллюстрации вариантов воплощения изобретения на чертежах показаны примерные конструкции изобретения; тем не менее изобретение не ограничивается раскрытыми способами и инструментальными средствами. На чертежах:
Фиг.1 - блок-схема сети, в которой вариант воплощения изобретения может быть реализован на практике;
Фиг.2 - блок-схема последовательности операций способа, задействующего аспекты изобретения;
Фиг.3 - блок-схема, показывающая примерную вычислительную среду, в которой могут быть реализованы аспекты изобретения.
Подробное описание иллюстративных воплощений
Программное обеспечение, основанное на антипиратских методиках, может быть использовано для получения преимуществ при использовании антипиратского кода, добавленного к приложению, чтобы помочь установить, является ли используемая копия программного обеспечения законной лицензированной копией. Похититель программного обеспечения может изменить защиту, основанную на программном обеспечении, и отключить ее, чтобы перехитрить схему защиты, с тем чтобы позволить использовать приложение.
Аспектом настоящего изобретения является то, что может иметь место отказ в законном обновлении для такого пиратского приложения, если тест выполняется в отношении подозрительного кода на сайте приложения, так что возвращаются результаты, которые показывают целостность подозрительного кода. Проверяя надлежащее наличие и/или функциональные возможности таких элементов, как основанная на программном обеспечении антипиратская защита, может быть сделана оценка в отношении подлинности жизнеспособной лицензии. Если тест, выполненный на компьютере клиента, который вмещает подозрительное приложение, оканчивается неудачей, тогда, возможно, код был изменен и, скорее всего, не лицензирован надлежащим образом. При таких условиях может быть отказано в обновлении программного обеспечения, таким образом предотвращая продолжение обновлений при использовании пиратского кода. Предотвращение будущих обновлений в конце концов приведет к тому, что пиратская копия программного обеспечения устареет, и, следовательно, уменьшится полезность украденной копии программного обеспечения.
Примерные варианты воплощения изобретения
Существуют три основные категории атак на основанную на программном обеспечении защиту, размещенную в приложениях программного обеспечения, которые продаются потребителям. Первая категория может быть названа атаками на данные, когда механизм защиты программного обеспечения нарушается изменением данных, на основе которых выявляется условие превышения предела. Например, если приложение программного обеспечения, которое установлено на машине пользователя, скажем пробная копия, полезно в течение одной недели или одного месяца, механизм защиты программного обеспечения предотвращает доступ к приложению через одну неделю или один месяц, что соответствует дате истечения срока. Одним способом нарушить эту защиту является вход в код защиты программного обеспечения и удаление или иная подделка информации (данных) таймера, так что превышение лимита времени никогда не будет достигнуто. Таким образом, похититель берет ограниченную по времени лицензию пробного приложения программного обеспечения и незаконно расширяет период действия лицензии на бесконечное время. Другой обычной методикой является установка таймера пробного программного обеспечения на ноль при каждой загрузке пробного программного обеспечения, таким образом незаконно расширяя временный период действия лицензии. Такие типы атак могут быть названы атаками на данные.
Вторая категория атак на основанные на программном обеспечении механизмы защиты от похищения может быть названа бинарной заплаткой. Эта обычная методика включает генерацию кода похитителем программного обеспечения для работы в пиратском приложении так, чтобы оно продолжало функционировать, потому что изменяющая код заплатка нарушает параметр теста лицензии. Например, если лицензированная копия программного обеспечения должна прекратить работу в заданное время или если используются некоторые другие тесты жизнеспособности лицензии, программная заплатка может быть использована вором для установления состояния теста так, чтобы оно всегда соответствовало наличию действительной лицензии, даже если срок действия лицензии уже истек. Этот тип атаки может быть назван бинарной атакой.
Третий тип атаки на основанную на программном обеспечении защиту от похищения может быть назван утечкой ключей обхода. В этом типе атаки ключ, используемый множеством пользователей, обычно выдаваемый для предприятия как корпоративная лицензия для приложения программного обеспечения, может быть изменен, чтобы позволить неуполномоченному владельцу ключа получить копию желаемого приложения программного обеспечения. Примером может быть продажа или другое распространение ключей обхода лицензии лицам, не относящимся к данному предприятию, которое законно купило этот ключ. Дискредитированный ключ и идентификатор продукта, если они выдаются другим, могут быть использованы, чтобы получить рабочую копию желаемого приложения.
В общем, если обнаружена атака типа утечки ключей обхода, ключ обхода может быть изменен, и старый ключ может быть использован, чтобы запретить обновление для пиратского программного обеспечения. Разрешение атак такого типа в настоящее время известно в технике. Тем не менее, атаки типа атаки на данные и бинарной атаки менее просто обнаружить и преодолеть.
Атаки типа атаки на данные и бинарные атаки могут быть обнаружены исполнением тестов в отношении исходного кода украденного приложения. Если тесты обнаруживают, что исходный код является тем же, что и распространяемый производителем, тогда испытываемая прикладная программа может считаться жизнеспособной. Однако если код приложения отличается от распространяемого производителем, тогда, возможно, код был изменен. Изменение кода может быть законным или изменения могут быть показателем фальсификации, что может служить признаком пиратского кода.
Код приложения программного обеспечения, который не соответствует исходному продукту производителей, может быть результатом нормального процесса запроса легальных обновлений от производителя. Эти обновления обычно отражаются в приложении либо как новая версия, или как обновление посредством служебного пакета, которое применяется к приложению. Таким образом, могут быть необходимы различные тесты кода приложения программного обеспечения в зависимости от версии или служебного пакета программного обеспечения, которые указаны в приложении. Тесты, такие как проверка циклического на основе избыточного кода, значения контрольной суммы или хеш-функции, должны быть применены согласно уровню совершенства приложения программного обеспечения.
Другой тип теста, который может быть выполнен для определения целостности приложения программного обеспечения, может состоять в исполнении скрытого кода в приложении программного обеспечения. Код, скрытый в приложении программного обеспечения, может быть бездействующим в отношении полезности приложения, но может быть активирован, если потребуется тест на целостность. Другой основанной на программном обеспечении мерой против похищения может быть ввод различных цифровых подписей в приложение программного обеспечения. Неудача при проверке цифровых подписей может быть показателем того, что код приложения, возможно, был изменен, чтобы расширить лицензию для похитителя. Согласно одному аспекту изобретения тест в отношении приложения программного обеспечения для определения целостности его лицензии может быть выполнен в оперативном режиме (режиме он-лайн).
Фиг.1 изображает конфигурацию 100 сети, где аспекты изобретения могут быть реализованы на практике. В этой конфигурации сеть 20 соединяет между собой компьютеры A, B и C клиентов (соответственно 30, 40 и 50) с сетевым сервером 10. Хотя показан только один сервер и только три клиента конфигурация по Фиг.1 является только примерной и возможно большее число серверов так же, как и меньшее или большее число компьютеров клиентов. В конфигурации сети сервер 10 может быть назначен в качестве сервера, который может обеспечивать обновления программного обеспечения для компьютеров 30, 40 и 50 клиентов по запросу.
В предпочтительном варианте воплощения компьютеры 30, 40 и 50 клиентов предпочтительно контактируют с сервером 10, чтобы запросить обновление приложения программного обеспечения, находящегося на компьютере клиента. Сервер 10 выполнен с возможностью обеспечения требуемого обновления. Согласно аспекту изобретения сервер 10 также выполнен с возможностью обеспечения кода теста на целостность приложения программного обеспечения клиента, который может быть передан на машину клиента и исполнен на ней. Клиент 30, 40 и 50 может затем послать результаты теста обратно на сервер 10 для оценки. На основе результатов оценки можно определить, позволен ли клиенту доступ к обновлению приложения программного обеспечения или имеет место отказ по запросу на обновление на основе возможности того, что клиент исполняет пиратское программное обеспечение.
Фиг.2 иллюстрирует примерный способ, объединяющий аспекты изобретения. В системе, которая включает в себя, по меньшей мере, один клиент и один сервер, способ может быть инициирован компьютером клиента посредством генерирования и посылки запроса на обновление для приложения программного обеспечения клиента (этап 210). Сервер принимает запрос на обновление программного обеспечения и отвечает, посылая тест на компьютер клиента (этап 220). Как обсуждается здесь, тест представляет собой тест, предназначенный для обнаружения того, является ли законной копией приложение программного обеспечения клиента, для которого запрашивается обновление. Тест, посланный на компьютер клиента, специализирован для конкретного обновления программного обеспечения, запрашиваемого вместе с информацией, касающейся обновлений версии или служебного пакета, имеющихся на компьютере клиента. Таким образом, в одном варианте воплощения изобретения после приема запроса на обновление программного обеспечения может быть выполнена серия запросов между сервером и клиентом, чтобы позволить серверу в более полной мере установить объем обновления и идентифицировать продукт программного обеспечения и версию, имеющуюся на компьютере клиента.
Как только сервер определяет, какого типа и какой версии обновление приложения программного обеспечения запрашивается, сервер посылает соответствующий код теста на компьютер клиента (этап 220). Компьютер клиента принимает код теста, и затем тест может быть исполнен (этап 230). Исполняемый код теста исследует приложение программного обеспечения клиента и проверяет его на общую целостность. Тест может быть предназначен для анализа порций приложения клиента с целью определения того, был ли код подделан, или того, выходит ли код иным образом за рамки лицензии. Измененный код может быть показателем пиратства, как и возможности изменения данных, которые касаются лицензирования кода (например, информации таймера), что также может служить признаком незаконного использования.
Исполняемый тест исполняется на компьютере клиента так, чтобы он мог осуществить доступ ко всем аспектам кода программного обеспечения клиента при попытке обнаружить, находится ли испытуемое приложение программного обеспечения в пределах допуска для обновления. Аспектом изобретения является то, что код теста обеспечивается через источник вне компьютера клиента, например посредством сервера, так, чтобы любой основанный на клиенте код не смог предсказать тип теста, который должен быть запущен, чтобы проверить целостность приложения программного обеспечения клиента. Результатом является то, что похититель программного обеспечения, который внес изменения в приложение программного обеспечения клиента, навряд ли сможет замаскировать все свои действия при преодолении ограничений лицензии приложения программного обеспечения. После того как исполняемый тест окажется выполнен на компьютере клиента, результаты теста на целостность предоставляются серверу (этап 240). Сервер может затем начать обрабатывать результаты теста (этап 250).
Как альтернативный вариант воплощения, клиент может передать запрос на обновление (этап 210), и сервер может принять этот запрос (этап 221, по пунктирной линии). Сервер может определить наиболее подходящий тест, чтобы проверить целостность программного обеспечения клиента. Так же, как и выше, после того как на сервер был выполнен запрос на обновление, может быть сделана серия запросов между сервером и клиентом, чтобы позволить серверу в более полной мере установить объем обновления и идентифицировать продукт программного обеспечения и версию, имеющуюся на компьютере клиента. Когда сервер определяет надлежащий тест на целостность, сервер может сам исполнить этот тест на целостность (этап 231).
При использовании либо пути через этап 231, либо через этап 240 обработка результатов теста (этап 250) может быть либо всесторонней, либо относительно прямолинейной. Всесторонняя обработка может состоять в обработке циклического избыточного кода (CRC), контрольных сумм, значений хэш-функций, цифровых подписей, скрытого исполняемого кода или других способов теста и сравнения их со стандартами и допусками, чтобы определить, был ли тест пройден успешно или неудачно. Также возможно, что тест, выполненный в отношении приложения программного обеспечения клиента, выдает статус неудачного прохождения или статус успешного прохождения, и статус и/или данные возвращаются на сервер. В любом случае, обработанные результаты могут быть проверены на успешное или неудачное прохождение на этапе 260.
Если результаты показывают, что тест не был пройден неудачно и что приложение программного обеспечения клиента в результате предполагается законным, то сервер уполномачивается предоставить запрашиваемое обновление программного обеспечения клиента (этап 280). Если тест пройден неудачно, тогда целостность программного обеспечения, вероятнее всего, была дискредитирована и в запрашиваемом обновлении приложения программного обеспечения будет отказано (этап 270).
В одном варианте воплощения тест, который обеспечивается клиенту сервером с целью тестирования целостности приложения программного обеспечения клиента, может включать в себя посылку информации о начале отсчета времени вместе с зашифрованным идентификатором продукта (PID) или комбинацией PID/Pkey с ключом продукта (Pkey) на сервер, такой как сервер обновлений Windows®, предоставляемый Корпорацией Microsoft®, Редмонд, Вашингтон. Если сервер получает другое начало отсчета времени для одной и той же комбинации PID/Pkey более, чем N раз, например при N<100, тогда может быть сделан вывод о том, что более чем одна машина использует одинаковую комбинацию PID/Pkey. При таких обстоятельствах приложение программного обеспечения клиента может считаться работающим без лицензии и в обновлении программного обеспечения будет отказано, как описано выше.
В другом варианте воплощения в приложение программного обеспечения клиента может быть встроена основанная на программном обеспечении принудительная реализация лицензии. Соответствующие интерфейсы прикладного программирования (API) могут быть реализованы в различных бинарных файлах, которые поставляются с приложением программного обеспечения клиента. Тестовая программа, посылаемая клиенту, может быть исполнена на компьютере клиента, и тестовая программа может вызвать эти интерфейсы API, чтобы получить информацию о конкретном приложении программного обеспечения клиента и послать эту информацию на сервер. Та же тестовая программа может также вычислить значения хеш-функции для выбранных бинарных файлов и послать их на серверы обновлений. Эти значения хеш-функции затем сравниваются с действительными бинарными значениями хэш-функции в таблице на стороне сервера. Если значения хеш-функции не совпадают, тогда в отношении бинарного файла имеется высокая вероятность того, что он был модифицирован с помощью программы-заплатки или был изменен некоторым образом, не предусмотренным производителем программного обеспечения. В этом варианте воплощения может существовать механизм внутренний или внешний по отношению к серверу обновлений, который обновляет записи в хэш-таблице всякий раз, когда обновление программного обеспечения или обновление служебного пакета выпускается производителем программного обеспечения для ограниченного использования.
В другом варианте воплощения хешированные или фактические значения файлов активной лицензии, таких как файлы лицензии XrML (расширяемого языка разметки прав), могут быть посланы на сервер обновлений. Так как файлы активной лицензии или лицензии XrML могут быть изменены с меньшей вероятностью, меньше обновлений обновленных значений хэш-функции бинарных файлов может быть послано на сервер обновлений.
В другом варианте воплощения самоконтролирующийся механизм внутри самого приложения программного обеспечения клиента, который может генерировать подтверждающую работоспособность последовательность, может быть испытан сервером, если запрашивается обновление. Сервер обновлений может обнаружить эту подтверждающую работоспособность последовательность или выполнить тест в отношении данной последовательности, и действительность этой последовательности может быть подтверждена сервером обновлений. Основываясь на подтверждении, запрашиваемое обновление может быть предоставлено или в нем может быть отказано, как описано выше.
В другом варианте воплощения фактический ключ обхода лицензии может быть защищенным образом послан на сервер обновлений, тест на целостность может тогда содержать сравнение истинного ключа с ключом обхода лицензии, имеющимся на компьютере клиента. Таким образом, сервер обновлений может протестировать ключ лицензии и идентифицировать компьютеры клиентов, которые используют поддельные ключи обхода лицензии. Дополнительно, ненастоящие ключи продукта могут быть обнаружены и отделены от истинных ключей продукта, чтобы идентифицировать пиратское программное обеспечение клиента.
В варианте воплощения настоящего изобретения без сети механизмы аутентификации стороны сервера, как описано выше, могут быть использованы как исполняемые клиентом тесты в настоящем изобретении и могут также быть встроены в подписанный бинарный файл. Этот бинарный файл может быть объединен с автономной программой-установщиком пакетов программного обеспечения, которая поставляется на CD. В этом варианте воплощения пользователь покупает CD, имеющий обновления программного обеспечения. Эта программа-установщик на CD может вызвать механизм аутентификации, чтобы проверить программное обеспечение клиента, уже установленное на машине клиента до модернизации и/или применения новых обновлений. Если обеспеченный посредством CD механизм теста обнаруживает, что компьютер клиента имеет приложение с дискредитированной целостностью, в обновлении этого приложения будет отказано. Если механизм теста обнаруживает, что приложение программного обеспечения клиента является законной копией, тогда будет обеспечено обновление приложения.
Примерное вычислительное устройство
Фиг.3 и следующее обсуждение предназначены для обеспечения краткого общего описания подходящей вычислительной среды, в которой могут быть реализованы варианты воплощения изобретения. Хотя ниже описан компьютер общего назначения он является лишь одним примером, и варианты воплощения изобретения могут быть реализованы другими вычислительными устройствами, такими как клиент, выполненный с возможностью взаимодействия и взаимосвязи через сеть/шину. Таким образом, варианты воплощения изобретения могут быть реализованы в среде размещенных в сети служб, в которую включены ресурсы клиента в очень малом количестве или минимальные ресурсы клиента, например сетевая среда, в которой устройство-клиент служит только в качестве интерфейса к сети/шине, например объект, помещенный в прибор, или другие вычислительные устройства, а также объекты. По существу, любое место, где могут быть сохранены данные или откуда данные могут быть извлечены, является желаемой или подходящей средой для работы.
Хотя это и необязательно варианты воплощения изобретения могут также быть реализованы посредством операционной системы, для использования разработчиком служб для устройства или объекта, и/или включены в приложения программного обеспечения. Программное обеспечение может быть описано в общем контексте машиноисполняемых команд, таких как программные модули, исполняемые одним или более компьютерами, такими как клиентские рабочие станции, серверы или другие устройства. Обычно программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и тому подобное, которые выполняют конкретные задачи или реализуют определенные абстрактные типы данных. Обычно функциональные возможности программных модулей могут быть объединены или распределены по желанию в различных вариантах воплощения. Кроме того, специалисты в данной области техники оценят, что различные варианты воплощения изобретения могут быть реализованы на практике с другими компьютерными конфигурациями. Другие широко известные вычислительные системы, среды и/или конфигурации, подходящие для использования, включают в себя, но не в ограничительном смысле, персональные компьютеры (ПК, PC), торговые автоматы, серверные компьютеры, карманные или портативные устройства, мультипроцессорные системы, основанные на микропроцессоре системы, программируемую бытовую электронику, сетевые ПК, приборы, системы освещения, элементы контроля окружающей среды, миникомпьютеры, универсальные компьютеры и тому подобное. Варианты воплощения изобретения могут также быть реализованы на практике в распределенных вычислительных средах, где задачи выполняются устройствами удаленной обработки данных, которые связаны через коммуникационную сеть/шину или другую среду передачи. В распределенной вычислительной среде программные модули могут быть расположены и в локальных, и в удаленных компьютерных носителях информации, включая запоминающие устройства, а клиентские узлы могут в свою очередь вести себя как серверные узлы.
Фиг.3, таким образом, иллюстрирует пример подходящей среды 700 вычислительной системы, в которой могут быть реализованы варианты воплощения изобретения, хотя, как было пояснено выше, среда 700 вычислительной системы является только одним примером подходящей вычислительной среды и не предназначена для наложения каких-либо ограничений на объем использования или функциональные возможности варианта воплощения изобретения. Также не следует интерпретировать вычислительную среду 700 как имеющую какую-либо зависимость или требования, относящиеся к какой-либо компоненте или комбинации компонент, проиллюстрированных в примерной рабочей среде 700.
Согласно Фиг.3 примерная система для реализации варианта воплощения изобретения включает в себя вычислительное устройство общего назначения в форме компьютерной системы 710. Компоненты компьютерной системы 710 могут включать в себя, но не в ограничительном смысле, устройство 720 обработки данных (процессор), системную память 730 и системную шину 721, которая соединяет различные компоненты системы, включая системную память, с устройством 720 обработки данных. Системная шина 721 может относиться к любому типу структур шин, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, используя любую из множества шинных архитектур. В качестве примера, но не ограничения, такие архитектуры включают в себя шину архитектуры, соответствующей промышленному стандарту (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), локальную шину Ассоциации по стандартам в области видеоэлектроники (VESA) и шину межсоединения периферийных компонент (PCI) (известную также как мезонинная шина).
Компьютерная система 710 обычно включает в себя множество машиночитаемых носителей. Машиночитаемые носители могут быть любыми доступными носителями, к которым компьютерная система 710 может осуществить доступ, и включают в себя как энергозависимые, так и энергонезависимые носители, как съемные, так и несъемные носители. В качестве примера, но не ограничения, машиночитаемые носители могут включать в себя компьютерные носители информации и среды передачи. Компьютерные носители информации включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные носители информации включают в себя, но не в ограничительном смысле, оперативное запоминающее устройство (ОЗУ, RAM), постоянное запоминающее устройство (ПЗУ, ROM), электрически стираемое программируемое ПЗУ (EEPROM), флэш-память или память другой технологии, ПЗУ на компакт-диске (CDROM), перезаписываемый компакт-диск (CDRW), универсальный цифровой диск (DVD) или другое запоминающее устройство на оптическом диске, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске или другое магнитное устройство хранения данных, либо любой другой носитель, который может быть использован для хранения желаемой информации и к которому компьютерная система 710 может осуществить доступ.Среда передачи обычно воплощает машиночитаемые команды, структуры данных, программные модули или другие данные в модулированном информационном сигнале, таком как сигнал несущей или другой транспортный механизм, и включает в себя любую среду доставки информации. Термин «модулированный информационный сигнал» обозначает сигнал, одна или более характеристик которого установлены или изменены таким образом, чтобы обеспечить кодирование информации в этом сигнале. В качестве примера, но не ограничения, среды передачи включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Комбинации любых из вышеупомянутых сред и носителей также охватываются понятием «машиночитаемый носитель».
Системная память 730 включает в себя компьютерные носители информации в форме энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 731 и оперативное запоминающее устройство (ОЗУ) 732. Базовая система 733 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают передавать информацию между элементами в компьютерной системе 710, например, в течение запуска, обычно хранится в ПЗУ 731. ОЗУ 732 обычно содержит данные и/или программные модули, которые непосредственно доступны устройству 720 обработки данных и/или обрабатываются им в текущий момент. В качестве примера, но не ограничения, Фиг.3 иллюстрирует операционную систему 734, прикладные программы 735, другие программные модули 736 и данные 737 программ.
Компьютерная система 710 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации. Только в качестве примера, Фиг.3 иллюстрирует накопитель 741 на жестких дисках, который читает с несъемного энергонезависимого магнитного носителя или записывает на него, магнитный дисковод 751, который читает со съемного энергонезависимого магнитного диска 752 или записывает на него, и оптический дисковод 755, который читает со съемного энергонезависимого оптического диска 756, такого как CD ROM, CDRW, DVD или другой оптический носитель, или записывает на него. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации, которые могут использоваться в примерной рабочей среде, включают в себя, но не в ограничительном смысле, кассеты с магнитной лентой, карты флэш-памяти, цифровые универсальные диски, цифровые видеокассеты, твердотельное ОЗУ, твердотельное ПЗУ и тому подобное. Накопитель 741 на жестких дисках обычно подсоединен к системной шине 721 через интерфейс несъемной памяти, такой как интерфейс 740, а магнитный дисковод 751 и оптический дисковод 755 обычно подсоединены к системной шине 721 через интерфейс съемной памяти, такой как интерфейс 750.
Накопители, дисководы и связанные с ними компьютерные носители информации, обсуждавшиеся выше и проиллюстрированные на Фиг.3, обеспечивают хранение машиночитаемых команд, структур данных, программных модулей и других данных для компьютерной системы 710. На Фиг.3, например, накопитель 741 на жестких дисках проиллюстрирован как хранящий операционную систему 744, прикладные программы 745, другие программные модули 746 и данные 747 программ. Заметим, что эти компоненты могут или быть такими же, или могут отличаться от операционной системы 734, прикладных программ 735, других программных модулей 736 и данных 737 программ. Операционная система 744, прикладные программы 745, другие программные модули 746 и данные 747 программ обозначены здесь другими номерами, чтобы проиллюстрировать, что они, как минимум, являются другими копиями. Пользователь может вводить команды и информацию в компьютерную систему 710 через устройства ввода, такие как клавиатура 762 и указательное устройство 761, обычно известное как мышь, шаровой манипулятор или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую тарелку, сканер и тому подобное. Эти и другие устройства ввода часто подсоединены к устройству 720 обработки данных через интерфейс 760 ввода пользователя, который связан с системной шиной 721, но могут быть подсоединены через другие структуры интерфейсов шин, такие как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 791 или другой тип устройства отображения также подсоединен к системной шине 721 через интерфейс, такой как видеоинтерфейс 790, который может в свою очередь обмениваться данными с видеопамятью (не показана). Дополнительно к монитору 791 компьютерные системы могут также включать другие периферийные устройства вывода, такие как динамики 797 и принтер 796, которые могут быть подсоединены через периферийный интерфейс 795 вывода.
Компьютерная система 710 может работать в сетевой или распределенной среде, используя логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 780. Удаленный компьютер 780 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим обычным сетевым узлом и в типичном случае включает в себя многие или все из элементов, описанных выше по отношению к компьютерной системе 710, хотя на Фиг.3 проиллюстрировано только запоминающее устройство 781. Логические соединения, изображенные на Фиг.3, включают в себя локальную сеть (LAN) 771 и глобальную сеть (WAN) 773, но могут также включать в себя другие сети/шины. Такие сетевые среды обычны в домах, офисах, компьютерных сетях масштаба предприятия, интрасетях и Интернете.
При использовании в сетевой среде LAN компьютерная система 710 соединена с LAN 771 через сетевой интерфейс или адаптер 770. При использовании в сетевой среде WAN компьютерная система 710 обычно включает в себя модем 772 или другое средство для установления связи через WAN 773, такую как Интернет. Модем 772, который может быть внутренним или внешним, может быть подсоединен к системной шине 721 через интерфейс 760 ввода пользователя или другой подходящий механизм. В сетевой среде программные модули, изображенные относительно компьютерной системы 710, или их части могут сохраниться в удаленном запоминающем устройстве. В качестве примера, но не ограничения, Фиг.3 иллюстрирует удаленные прикладные программы 785, постоянно хранящиеся в запоминающем устройстве 781. Следует понимать, что показанные сетевые соединения являются примерными, и может быть использовано другое средство установления линии связи между компьютерами.
Различные инфраструктуры распределенных вычислений разрабатывались и разрабатываются в свете сближения персональных вычислений и Интернет. Индивидуумы, а также корпоративные пользователи обеспечиваются Web-ориентированным интерфейсом с возможностью прозрачного взаимодействия для приложений и вычислительных устройств, что делает вычислительную деятельность все в большей степени ориентированной на Web-браузер или сеть.
Например, платформа .NETTM от MICROSOFT®, предоставляемая Корпорацией Microsoft, включает в себя серверы, службы компоновочных блоков, такие как основанное на Web хранилище данных, и загружаемое программное обеспечение устройства. Так как примерные варианты воплощения описываются здесь в связи с программным обеспечением, хранящимся в вычислительном устройстве, одна или более частей варианта воплощения изобретения могут быть также реализованы посредством операционной системы, интерфейса прикладного программирования (API) или объекта - «посредника» между любым из сопроцессора, устройства отображения и запрашиваемым объектом, так что операция может быть выполнена, поддержана или к ней может быть осуществлен доступ посредством всех языков и служб .NETTM, а также в других инфраструктурах распределенных вычислений.
Как отмечено выше, хотя примерные варианты воплощения изобретения были описаны в связи с различными вычислительными устройствами и сетевыми архитектурами базовые концепции могут быть применены к любому вычислительному устройству или системе, в которых требуется реализовать методику обнаружения незаконного программного обеспечения. Таким образом, способы и системы, описанные в связи с вариантами воплощения настоящего изобретения, могут быть применены к множеству приложений и устройств. Хотя примерные языки программирования, имена и примеры выбраны здесь как различные представительные варианты выбора эти языки, имена и примеры не являются ограничивающими. Специалист в данной области техники должен понимать, что существует много способов обеспечения объектного кода, которым достигаются те же, подобные или эквивалентные системы и способы, достигаемые вариантами воплощения изобретения.
Различные методики, описанные здесь, могут быть реализованы в связи с аппаратным или программным обеспечением или, когда требуется, их комбинацией. Таким образом, способы и устройство, соответствующие изобретению, или их определенные аспекты или части могут иметь форму программного кода (то есть команд), воплощенного в материальном носителе, таком как дискеты, диски CD-ROM, накопители на жестких дисках или любой другой машиночитаемый носитель, причем, когда программный код загружается в машину и исполняется машиной, такой как компьютер, эта машина становится устройством для практической реализации изобретения. В случае исполнения программного кода на программируемых компьютерах вычислительное устройство обычно включает в себя процессор, считываемый процессором носитель информации (включая энергозависимую и энергонезависимую память и/или элементы хранения), по меньшей мере, одно устройство ввода и, по меньшей мере, одно устройство вывода. Одна или более программ, которые могут использовать службы обработки сигнала согласно варианту воплощения настоящего изобретения, например, используя API обработки данных или тому подобное, предпочтительно реализуются на высокоуровневом процедурном или объектно-ориентированном языке программирования, чтобы взаимодействовать с компьютером. Тем не менее, программа(ы) может быть реализована на языке ассемблера или машинном языке, если требуется. В любом случае язык может быть транслируемым или интерпретируемым языком и может быть объединен с аппаратными реализациями.
Хотя аспекты настоящего изобретения были описаны в связи с предпочтительными вариантами воплощения по различным чертежам необходимо понимать, что могут быть использованы другие подобные варианты воплощения или могут быть сделаны изменения и дополнения к описанному варианту воплощения для выполнения тех же функций настоящего изобретения без отклонения от него. Кроме того, следует подчеркнуть, что предусмотрено множество компьютерных платформ, включая операционные системы карманных устройств и другие специализированные операционные системы, в особенности по мере роста числа беспроводных сетевых устройств. Следовательно, заявленное изобретение не следует ограничивать каким-либо отдельным вариантом воплощения, но скорее должно быть истолковано в широте и объеме в соответствии с приложенной формулой изобретения.

Claims (15)

1. Способ обнаружения пиратского программного обеспечения на компьютерном сервере, содержащий этапы, на которых принимают от компьютера клиента запрос на обновление программного обеспечения, определяют тест, который должен быть выполнен в отношении программного обеспечения компьютера клиента, выполняют тест и отказывают компьютеру клиента в обновлении программного обеспечения, если компьютер клиента терпит неудачу при прохождении теста, посредством чего данным тестом обнаруживается пиратское программное обеспечение.
2. Способ по п.1, в котором запрос на обновление программного обеспечения принимают компьютерным сервером через сеть, причем на компьютерном сервере находится программное обеспечение для обнаружения пиратского программного обеспечения.
3. Способ по п.1, в котором тест выполняют на одном или более из компьютера клиента и компьютерного сервера.
4. Способ по п.1, в котором при выполнении теста загружают тест с компьютерного сервера в компьютер клиента, при этом тест предназначен для выполнения проверки на целостность во время исполнения в отношении программы программного обеспечения компьютера клиента.
5. Способ по п.4, в котором при тесте на целостность во время исполнения выполняют одно или более из запуска исполняемого файла, имеющегося на компьютере клиента, выполнения теста циклического избыточного кода, выполнения теста значения хэш-функции и проверки цифровой подписи.
6. Компьютерный сервер, выполненный с возможностью обнаружения измененного программного обеспечения компьютера клиента и содержащий процессор, имеющий доступ к памяти, компоненту программного обеспечения, имеющую команды, которые при их исполнении процессором предписывают процессору принимать от компьютера клиента запрос на обновление программного обеспечения компьютера клиента, определять тест, который должен быть выполнен в отношении программного обеспечения компьютера клиента, выполнять тест и определять, было ли изменено программное обеспечение компьютера клиента.
7. Компьютерный сервер по п.6, в котором команды дополнительно предписывают процессору отказывать компьютеру клиента в обновлении программного обеспечения компьютера клиента, если компьютер клиента терпит неудачу при прохождении теста.
8. Компьютерный сервер по п.6, который дополнительно содержит сетевой интерфейс для приема от компьютера клиента запроса на обновление программного обеспечения.
9. Компьютерный сервер по п.6, в котором тест выполняется на одном или более из компьютера клиента и компьютерного сервера.
10. Компьютерный сервер по п.6, в котором команды дополнительно предписывают процессору при выполнении теста загружать тест с компьютерного сервера в компьютер клиента, при этом тест предназначен для выполнения проверки на целостность во время исполнения в отношении программы программного обеспечения компьютера клиента.
11. Машиночитаемый носитель для обнаружения пиратского программного обеспечения, имеющий машиноисполняемые команды для приема от компьютера клиента запроса на обновление программного обеспечения компьютера клиента, определения теста, который должен быть выполнен в отношении программного обеспечения компьютера клиента, выполнения теста, определение того, было ли изменено программное обеспечение компьютера клиента и определение того, разрешить ли обновление программного обеспечения в зависимости от результатов теста компьютера клиента.
12. Машиночитаемый носитель по п.11, который дополнительно содержит машиноисполняемые команды для отказа в обновлении программного обеспечения, если результаты теста показывают, что программное обеспечение было изменено.
13. Система для обнаружения пиратского программного обеспечения, содержащая сеть для передачи сообщений между сервером и клиентом, компьютерный сервер, имеющий обновления для компьютеров клиентов, причем сервер находится в сети, компьютер клиента, находящийся в сети, причем компьютер клиента выполнен с возможностью запрашивать у компьютерного сервера обновление программного обеспечения компьютера клиента, при этом компьютерный сервер выполнен с возможностью проводить в отношении программного обеспечения компьютера клиента тест, результаты которого определяют, является ли программное обеспечение компьютера клиента пиратским.
14. Система по п.13, в которой тест выполняется на одном или более из компьютера клиента и компьютерного сервера.
15. Система по п.13, в которой тест загружается с компьютерного сервера в компьютер клиента, при этом тест предназначен для выполнения проверки на целостность во время исполнения в отношении программы программного обеспечения компьютера клиента.
RU2005108284/02A 2004-04-30 2005-03-23 Способ и система для ограничения обновлений программного обеспечения RU2375739C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/836,409 2004-04-30
US10/836,409 US7331063B2 (en) 2004-04-30 2004-04-30 Method and system for limiting software updates

Publications (2)

Publication Number Publication Date
RU2005108284A RU2005108284A (ru) 2006-10-10
RU2375739C2 true RU2375739C2 (ru) 2009-12-10

Family

ID=34939280

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005108284/02A RU2375739C2 (ru) 2004-04-30 2005-03-23 Способ и система для ограничения обновлений программного обеспечения

Country Status (10)

Country Link
US (1) US7331063B2 (ru)
EP (1) EP1591865B1 (ru)
JP (1) JP4870937B2 (ru)
KR (1) KR101122950B1 (ru)
CN (1) CN100461064C (ru)
AU (1) AU2005201006B2 (ru)
BR (1) BRPI0501156A (ru)
CA (1) CA2501755C (ru)
MX (1) MXPA05003409A (ru)
RU (1) RU2375739C2 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2637485C2 (ru) * 2015-12-29 2017-12-04 Эдуард Юрьевич Прудников Способ антипиратской авторизации доступа к компьютерной сети
RU2775157C1 (ru) * 2021-05-13 2022-06-28 Акционерное общество "Лаборатория Касперского" Система и способы проверки целостности установочного образа программного обеспечения

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8855620B2 (en) * 2005-03-01 2014-10-07 Mfoundry, Inc. Systems and methods for application program and application program update deployment to a mobile device
JP2007066271A (ja) * 2005-09-02 2007-03-15 Canon Inc 情報処理装置及びその制御方法、データ処理装置、並びにプログラム
US8296561B2 (en) * 2006-07-03 2012-10-23 Panasonic Corporation Certifying device, verifying device, verifying system, computer program and integrated circuit
US8117461B2 (en) * 2006-09-13 2012-02-14 Igt Method of randomly and dynamically checking configuration integrity of a gaming system
US7688757B2 (en) * 2006-12-29 2010-03-30 Alcatel-Lucent Usa Inc. Method and apparatus for assessing sourced elements
US7937762B2 (en) * 2007-01-15 2011-05-03 Microsoft Corporation Tracking and identifying operations from un-trusted clients
US8201231B2 (en) * 2007-02-21 2012-06-12 Microsoft Corporation Authenticated credential-based multi-tenant access to a service
CN101335746A (zh) * 2007-06-29 2008-12-31 国际商业机器公司 保护软件系统的完整性的安全设备和方法及其系统
GB2458568B (en) * 2008-03-27 2012-09-19 Covertix Ltd System and method for dynamically enforcing security policies on electronic files
US8578510B2 (en) * 2008-06-26 2013-11-05 Valve Corporation Anti-piracy measures for a video game using hidden secrets
US10459711B2 (en) * 2008-08-12 2019-10-29 Adobe Inc. Updating applications using migration signatures
US8095987B2 (en) * 2008-09-04 2012-01-10 Microsoft Corporation Software anti-piracy protection
JP4991668B2 (ja) * 2008-09-29 2012-08-01 株式会社東芝 コンピュータシステムおよび修正パッチ確認/適用方法
JP4711002B2 (ja) * 2009-03-26 2011-06-29 ブラザー工業株式会社 プログラム、及びライセンス登録装置
US8464249B1 (en) 2009-09-17 2013-06-11 Adobe Systems Incorporated Software installation package with digital signatures
US8359657B2 (en) * 2010-03-30 2013-01-22 Sandcastles Technology Inc. Method and apparatus for enabling secure distribution of digital content
EP2583225A4 (en) * 2010-06-21 2014-03-05 Hewlett Packard Development Co SYSTEM FOR TESTING AND CERTIFYING A VIRTUAL DEVICE ON A CLIENT COMPUTER SYSTEM
EP2413257B1 (en) * 2010-07-26 2017-04-26 Sony DADC Austria AG Method for replacing an illegitimate copy of a software program with legitimate copy and corresponding system
WO2012064331A1 (en) * 2010-11-12 2012-05-18 Hewlett-Packard Development Company, L.P. Determine authorization of a software product based on a first and second authorization item
US8763158B2 (en) 2010-12-06 2014-06-24 Microsoft Corporation Directory service distributed product activation
CN102315963B (zh) * 2011-08-11 2016-04-20 百度在线网络技术(北京)有限公司 一种验证设备系统配置变更的方法与设备
CN102955700A (zh) * 2011-08-18 2013-03-06 腾讯科技(深圳)有限公司 软件升级系统及方法
CN104303148B (zh) * 2012-03-22 2018-10-19 爱迪德技术有限公司 更新软件组件
JP5330565B2 (ja) * 2012-04-24 2013-10-30 株式会社東芝 コンピュータ
US20140208306A1 (en) * 2013-01-23 2014-07-24 Caterpillar Inc. Control system having automatic component software management
US9836730B1 (en) * 2013-03-14 2017-12-05 Corel Corporation Software product piracy monetization process
KR101515707B1 (ko) * 2013-07-12 2015-04-27 숭실대학교산학협력단 소프트웨어의 특징정보 기반 스마트폰 앱 불법 복제 및 표절 탐지 방법 및 그 장치
EP2840492A1 (en) * 2013-08-23 2015-02-25 British Telecommunications public limited company Method and apparatus for modifying a computer program in a trusted manner
CN104424402B (zh) * 2013-08-28 2019-03-29 卓易畅想(北京)科技有限公司 一种用于检测盗版应用程序的方法及装置
US9197647B2 (en) * 2013-10-21 2015-11-24 Cisco Technology, Inc. Integrity checking of a client device in a networked computer environment
KR101654973B1 (ko) * 2014-04-30 2016-09-06 단국대학교 산학협력단 소프트웨어 필터링 장치 및 방법
US10318271B2 (en) 2015-01-05 2019-06-11 Irdeto Canada Corporation Updating software components in a program
US10831508B2 (en) * 2016-07-22 2020-11-10 Intel Corporation Embedded system application installation and execution method and apparatus
WO2018081093A1 (en) 2016-10-24 2018-05-03 Clark Carl M Software algorithm security
US10089661B1 (en) * 2016-12-15 2018-10-02 Amazon Technologies, Inc. Identifying software products to test
US10318281B1 (en) * 2017-04-06 2019-06-11 Amdocs Development Limited System, method, and computer program for upgrading software associated with a distributed, state-full system
US11544352B2 (en) * 2017-05-26 2023-01-03 Hitachi Kokusai Electric Inc. Machine-learning model fraud detection system and fraud detection method
CN107423581B (zh) * 2017-07-31 2019-04-12 北京深思数盾科技股份有限公司 软件的保护方法和装置
CN112579111B (zh) * 2020-12-30 2024-07-30 深圳市欢太科技有限公司 安装包的安装方法及装置、电子设备、存储介质
TWI805158B (zh) * 2021-12-29 2023-06-11 威聯通科技股份有限公司 用於降低版本相依性的管理方法及管理系統

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5528490A (en) * 1992-04-10 1996-06-18 Charles E. Hill & Associates, Inc. Electronic catalog system and method
JPH06309261A (ja) * 1993-04-22 1994-11-04 Mitsubishi Electric Corp ソフトウェア自動インストール方法及びソフトウェア自動バージョンアップ方法
JP3393521B2 (ja) * 1995-10-19 2003-04-07 日本電信電話株式会社 端末プログラム改ざん検出方法、および情報センタ
US6918038B1 (en) * 1996-08-13 2005-07-12 Angel Secure Networks, Inc. System and method for installing an auditable secure network
US6026293A (en) * 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
US6189146B1 (en) 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
US6226747B1 (en) 1998-04-10 2001-05-01 Microsoft Corporation Method for preventing software piracy during installation from a read only storage medium
US6243468B1 (en) 1998-04-29 2001-06-05 Microsoft Corporation Software anti-piracy system that adapts to hardware upgrades
US7503072B2 (en) 1998-04-29 2009-03-10 Microsoft Corporation Hardware ID to prevent software piracy
WO1999056196A1 (en) * 1998-04-30 1999-11-04 Bindview Development Corporation Computer security
US6799277B2 (en) 1998-06-04 2004-09-28 Z4 Technologies, Inc. System and method for monitoring software
US6044471A (en) * 1998-06-04 2000-03-28 Z4 Technologies, Inc. Method and apparatus for securing software to reduce unauthorized use
US7225333B2 (en) * 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6986133B2 (en) * 2000-04-14 2006-01-10 Goahead Software Inc. System and method for securely upgrading networked devices
US6857067B2 (en) * 2000-09-01 2005-02-15 Martin S. Edelman System and method for preventing unauthorized access to electronic data
US7003110B1 (en) * 2000-11-14 2006-02-21 Lucent Technologies Inc. Software aging method and apparatus for discouraging software piracy
US20030188160A1 (en) * 2001-08-02 2003-10-02 Singam Sunder Method and system to securely update files via a network
US7159240B2 (en) * 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
CN1448842A (zh) * 2002-03-31 2003-10-15 任东海 基于网络数据库的软件版权保护方法
JP2005309759A (ja) * 2004-04-21 2005-11-04 Nippon Telegr & Teleph Corp <Ntt> 電子データ提供システムと方法およびプログラム
US20070067419A1 (en) * 2005-09-19 2007-03-22 Bennett James D Dedicated client devices supporting web based service, specifications and interaction
TWI273456B (en) * 2005-09-30 2007-02-11 Inventec Corp Open type network gaming system and method thereof
KR100667820B1 (ko) * 2005-09-30 2007-01-12 삼성전자주식회사 보안 방법 및 시스템, 그 방법을 기록한 컴퓨터 판독가능한 기록매체
US7433804B2 (en) * 2005-11-04 2008-10-07 Research In Motion Limited Automated test script for communications server

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2637485C2 (ru) * 2015-12-29 2017-12-04 Эдуард Юрьевич Прудников Способ антипиратской авторизации доступа к компьютерной сети
RU2775157C1 (ru) * 2021-05-13 2022-06-28 Акционерное общество "Лаборатория Касперского" Система и способы проверки целостности установочного образа программного обеспечения

Also Published As

Publication number Publication date
US7331063B2 (en) 2008-02-12
AU2005201006A1 (en) 2005-11-17
JP4870937B2 (ja) 2012-02-08
CN100461064C (zh) 2009-02-11
AU2005201006B2 (en) 2010-03-25
KR101122950B1 (ko) 2012-03-15
BRPI0501156A (pt) 2006-01-10
JP2005316974A (ja) 2005-11-10
CA2501755A1 (en) 2005-10-30
EP1591865A2 (en) 2005-11-02
CA2501755C (en) 2013-07-23
RU2005108284A (ru) 2006-10-10
KR20060044773A (ko) 2006-05-16
US20050246537A1 (en) 2005-11-03
EP1591865B1 (en) 2016-11-02
MXPA05003409A (es) 2005-11-03
CN1694031A (zh) 2005-11-09
EP1591865A3 (en) 2006-07-19

Similar Documents

Publication Publication Date Title
RU2375739C2 (ru) Способ и система для ограничения обновлений программного обеспечения
EP1861815B1 (en) Systems and methods for using machine attributes to deter software piracy in an enterprise environment
JP4794217B2 (ja) ソフトウェア製品ライセンスの単一の再アクティブ化のための方法およびシステム
EP1443381B1 (en) System and method for secure software activation with volume licenses
EP1934810B1 (en) Secure machine counting
AU2004200043B2 (en) Systems and methods for providing time- and weight-based flexibly tolerant hardware ID
US8510861B2 (en) Anti-piracy software protection system and method
JP2008537224A (ja) 安全な起動方法およびシステム
CN114398686A (zh) 基于区块链的文件存储方法、装置、设备和存储介质
KR20010044823A (ko) 컴퓨터에서 사용자 인증이 필요한 자료의 보호방법 및그에 관한 시스템
RU2637485C2 (ru) Способ антипиратской авторизации доступа к компьютерной сети

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150306

MM4A The patent is invalid due to non-payment of fees

Effective date: 20200324