защита программного обеспечения для запуска только на одном компьютере в vb.net - PullRequest
4 голосов
/ 04 марта 2010

Я разработал небольшое приложение и теперь хочу его защитить.

Я хочу запустить его только на своем компьютере, и я разработал его для себя.

Как я могу это сделать?

Ответы [ 7 ]

6 голосов
/ 04 марта 2010

A. Не публикуйте это.
Б. Зашифруйте имя вашего компьютера в коде и сделайте первое, что делает программа, чтобы убедиться, что System.Environment.MachineName соответствует ему.

2 голосов
/ 24 сентября 2012

Вы всегда можете проверить идентификатор процессора или серийный номер материнской платы.

Private Function SystemSerialNumber() As String
    ' Get the Windows Management Instrumentation object.
    Dim wmi As Object = GetObject("WinMgmts:")

    ' Get the "base boards" (mother boards).
    Dim serial_numbers As String = ""
    Dim mother_boards As Object = _
        wmi.InstancesOf("Win32_BaseBoard")
    For Each board As Object In mother_boards
        serial_numbers &= ", " & board.SerialNumber
    Next board
    If serial_numbers.Length > 0 Then serial_numbers = _
        serial_numbers.Substring(2)

    Return serial_numbers
End Function


Private Function CpuId() As String
    Dim computer As String = "."
    Dim wmi As Object = GetObject("winmgmts:" & _
        "{impersonationLevel=impersonate}!\\" & _
        computer & "\root\cimv2")
    Dim processors As Object = wmi.ExecQuery("Select * from " & _
        "Win32_Processor")

    Dim cpu_ids As String = ""
    For Each cpu As Object In processors
        cpu_ids = cpu_ids & ", " & cpu.ProcessorId
    Next cpu
    If cpu_ids.Length > 0 Then cpu_ids = _
        cpu_ids.Substring(2)

    Return cpu_ids
End Function

было взято откуда: http://www.vb -helper.com / howto_net_get_cpu_serial_number_id.html

Вот вопрос Джима, чтобы преобразовать это для Option Strict.

1 голос
/ 24 сентября 2012

Я сделал такие вещи в VB DOS.

Я либо создал не удаляемый файл, который является ключом для конкретной машины с кодом внутри, и / или прочитал файлы .pwl и провел несколько проверок, которые есть только на вашей машине. Не редактируемый файл создается с расширенными наборами символов, такими как char 233, поэтому, когда человек пытается посмотреть на него, он открывает пустую копию (edit) (write.ex), поэтому данные не могут быть прочитаны, и их нельзя редактировать, перемещая или удален.

Это должны быть определенные символы; Я не уверен, что каждая хартия между 128 и 255 сработает, некоторые расширенные символы работают для этого, некоторые - нет, также это может быть побеждено, но некоторые люди не пускают,

Но его можно прочитать или проверить в программной среде. Ничто не является абсолютно безопасным, вот некоторые вещи, с которыми я связываюсь.

Примечание: файл будет очень трудно удалить, возможно, создайте тестовый каталог, чтобы проверить это.

Я надеюсь, что это нормально. Я не очень хорош в передаче информации людям; Я программировал с 1982 года.

1 голос
/ 04 марта 2010

Другой вариант может заключаться в том, чтобы ваша программа задавала ПОЛЬЗОВАТЕЛЮ вопрос, на который был получен ответ. Вот пример с мертвым мозгом ....

Ваша программа: «Сколько сейчас времени?»

Вы вводите: (TheYear + 10 - theDay + 11) Мод 13

Таким образом, на самом деле ТОЛЬКО ВЫ можете запустить программу, а не зависеть от МАШИНЫ.

1 голос
/ 04 марта 2010

Независимо от того, как сильно вы пытаетесь, если кто-то действительно хочет запустить его на другом компьютере, он это сделает.

Все, что нужно сделать, - это восстановить вашу защиту до

  1. удалитьэто
  2. играть с ним
1 голос
/ 04 марта 2010

Это действительно зависит от того, кто является «врагом».

Если вы хотите защитить его от своих жадных, не взломщиков, друзей, то вы можете просто запустить приложение, только если в реестре найден определенный пароль (с использованием криптографически безопасной хэш-функции), или использовать MachineName как предположил Джей.

Но если вы хотите защитить его от серьезных «врагов», обратите внимание: математически доказано 1006 *, что, пока оборудование небезопасно, любое работающее на нем программное обеспечение по своей сути небезопасно. Это означает, что каждая часть программного обеспечения является взломанной, любой механизм защиты обходится (даже защищенные аппаратные устройства, такие как ключ продукта Aljanin Finjan USB, поскольку остальная часть оборудования небезопасна). Поскольку большая часть (если не все) современного оборудования небезопасна, вы просто не можете получить 100% -ную защиту в программном обеспечении.

Между ними существует множество решений по безопасности для лицензирования и защиты от копирования. Все сводится к тому, кто является врагом и что представляет собой угроза.

0 голосов
/ 24 октября 2012

Другая идея ... Я написал программу, которая не может быть запущена напрямую, она запускается только внешним файлом, так что вы можете добавить в нее раздел ввода пароля и зашифровать пароль, чтобы его не было легко прочитать, я сделал исполняемую версию программы vb для тестирования. он записывает, чтобы освободить пробел символа, поэтому, если программа видит, что это значение не будет запущено, НО программа бегуна имеет другой символ, и она меняет его на этот символ, и программа предназначена только для ввода, если символ правильный, сделанный только бегуном, затем, когда он входит, он меняет его обратно, чтобы он не оставался открытым, я сделал эту вещь Сорта, и она работает, всегда есть способ победить любую защиту, цель состоит в том, чтобы замедлять их или препятствовать их запуску или использованию вашей программы, если вы этого не хотите. Я могу включить примеры позже.

...