Domanda

Ho sviluppato una piccola applicazione e ora voglio proteggerlo.

Voglio correre solo sul mio computer e ho sviluppato per me.

Come posso fare questo?

È stato utile?

Soluzione

A. Non pubblicarlo.
B. Hard-codice il nome del computer nel codice, e fare la prima cosa che il programma fa da verificare che le partite System.Environment.MachineName esso.

Altri suggerimenti

Si può sempre controllare l'ID del processore o il numero di serie della scheda madre.

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

è stato preso da dove: http://www.vb-helper.com/howto_net_get_cpu_serial_number_id. html

Ecco una domanda da Jim per convertire questo per Option Strict.

In realtà dipende da chi è il "nemico".

Se si desidera proteggere dal vostro avido, non cracker, amici, allora si può semplicemente avere l'applicazione eseguita solo se una determinata parola si trova nel Registro di sistema (utilizzando una funzione di hash crittograficamente sicuro), o usare il MachineName come Jay suggerito.

Ma se stai pensando di proteggerla da gravi "nemici", si nota: E 'stato matematicamente dimostrato che, fintanto che l'hardware non è sicuro, qualsiasi software in esecuzione su di esso è intrinsecamente insicuro . Ciò significa che ogni pezzo di software è crackable, qualsiasi meccanismo di protezione è escludibili (anche dispositivi assicurato-hardware come prodotto USB chiave Finjan di Alladin, poiché il resto dell'hardware è insicuro). Poiché la maggior parte (se non tutti) di hardware di oggi è insicuro, semplicemente non è possibile ottenere una sicurezza al 100% in un software.

Nel mezzo, ci sono un sacco di soluzioni di sicurezza per la licenza e di protezione dalla copia. Tutto si riduce a chi è il nemico e che cosa è la minaccia.

Non importa quanto duramente si tenta, se qualcuno vuole veramente per eseguirlo su un altro computer, lo faranno.

Tutta la necessità di fare è decodificare la vostra protezione a

  1. elimina
  2. gioco con esso

Un'altra opzione potrebbe essere quella di avere il vostro programma di fare una domanda che ha una risposta derivato USER. Ecco un esempio di morte cerebrale ....

Il programma: "Che ore sono adesso"

Si entra: (theyear + 10 - theday + 11) Mod 13

In questo modo la sua realtà SOLO TU che possibile eseguire il programma invece di essere dipendenti dalla macchina.

Ho fatto cose di questo genere in VB DOS.

Ho fatto sia un file non cancellabile che è la chiave per una macchina specifica con all'interno il codice, e / o leggere i file pwl e hanno diversi controlli, che sono solo sulla vostra macchina. Il file non modificabile è fatta con set di caratteri estesi come char 233 in modo che quando una persona cerca di vedere le cose, si aprirà una copia in bianco (edit) (write.ex), quindi i dati non possono essere letti e non può essere modificato spostato o cancellato.

Ha bisogno di essere certi personaggi; Non sono sicuro se ogni carta compreso tra 128 e 255 sarà lavorare, alcuni caratteri estesi lavoro da fare questo alcuni non lo faranno, anche esso può essere sconfitto, ma non mancherà di tenere alcune persone fuori,

ma può essere letto o controllati in un ambiente di programma. Nulla è totalmente sicuro, questo è alcune delle cose che ho pasticcio con.

. Nota: il file sarà molto difficile da eliminare, forse fare una directory di prova per testare questo

Spero che questo è OK io non sono molto bravo a informazioni alle persone trasporto; Ho programmato dal 1982.

Un'altra idea ... Ho scritto un programma che non può essere eseguito direttamente, si correva solo da un file esterno, in modo che si potrebbe aggiungere una sezione di immissione della password ad esso e la password di crittografare in modo che non può essere letta molto facilmente, ho realizzato una versione eseguibile di un programma VB per test. si scrive per slack space un personaggio così se il programma vede che il valore non verrà eseguito, ma il programma corridore ha un carattere diverso, e lo cambia a quel personaggio, e il programma è progettato per consentire solo se il personaggio è quello giusto, fatta solo dal corridore, poi quando entra cambia indietro in modo che non viene lasciata aperta, ho fatto questa cosa sorta, e lo fa il lavoro, c'è sempre un modo per sconfiggere alcuna protezione, l'obiettivo è per rallentarli o scoraggiarli da corsa o utilizzando il programma se non li si vuole to.I possono includere esempi in una data successiva.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top