Programm nur für einen PC nutzbar machen

    • VB6

    Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von SpaceyX.

      Programm nur für einen PC nutzbar machen

      Hallo,

      ich möchte mein Programm vorstellen das nur auf einem PC läuft. Dieses Programm kann man in das Hauptprogramm einbauen.

      Der Code:

      Visual Basic-Quellcode

      1. Option Strict On
      2. Public Class Frm_Main
      3. Function GetHardwareID() As String 'Gibt HardwareID aus
      4. Dim HardwareID As String = System.Security.Principal.WindowsIdentity.GetCurrent.User.Value
      5. Return HardwareID
      6. End Function
      7. Private Sub Form_Main(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
      8. If My.Settings.HardwareID = Nothing Then 'Wenn noch keine HardwareID gespeichert ist
      9. My.Settings.HardwareID = GetHardwareID() 'Nimmt My.Settings.HardwareID die eigene HardwareID an
      10. My.Settings.Save() 'Speichert HardwareID
      11. My.Settings.Reload() 'Lädt HardwareID
      12. Else
      13. If GetHardwareID() = My.Settings.HardwareID Then 'Vergleich der HardwareID´s
      14. MessageBox.Show("HardwareID´s stimmen überein!", "HardwareID") 'Vergleich ergibt True
      15. Else
      16. MessageBox.Show("HardwareID´s stimmen nicht überein", "HardwareID") 'Vergleich ergibt False
      17. End 'Programm wird beendet
      18. End If
      19. End If
      20. End Sub
      21. End Class


      Die Kommentare dürften für sich selbst sprechen.

      Kritik erwünscht! :thumbsup:

      Wenn ich jetzt nicht völlig blöd bin, dann ist der Code doch absolut nutzlos,
      weil beim kopieren des Programmes auf einen anderen PC die MySettings nicht mitkopiert werden.
      Also wird auf nem neuen PC ne neue HardwareID angelegt usw. -> Schwachsinn.

      Grüße
      "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

      Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
      Also:
      Mit einem zweiten Programm die Hardware-ID auslesen, verschlüsseln und das Resultat direkt ins Programm reinschreiben.
      Beim "richtigen Programm" äquivalent und los gehts.
      Allerdings hält das auch keinem Reflektor-Angriff stand.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!
      Das ist das Dekompilieren. Einen Link dazu findest Du in der Signatur vom ErfinderDesRades.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!
      Wie Nikx schon gesagt hat, der Code ist doch komplett nutzlos.
      Das prinzip selbst funktioniert nichtmal, da Setting wie gesagt nicht mitkopiert werden.

      Desweiteren, ist ´End´ eher unschön.
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Man kann die HardwareID ja auch verschlüsselt in einer Datei ablegen. Wenn sie gelöscht wird siehts halt schlecht aus, aber die muss man ja erst mal finden.

      Gather schrieb:

      Desweiteren, ist ´End´ eher unschön.
      Was würdest du empfehlen?

      Visual Basic-Quellcode

      1. Application.Exit


      oder

      Visual Basic-Quellcode

      1. Me.Close


      ?

      Mach doch nen HWID-Check
      Also im Form-Load Event:

      Visual Basic-Quellcode

      1. If HWID-Des Computers = Meiner Hardware-ID then
      2. form1.show
      3. ElseIf HWID-Des Computers <> Meiner Hardware-ID then
      4. Application.Exit


      Ooops, hast du ja.
      Zu spät gesehen :-p
      C# Developer
      Learning C++
      toll. Dann Dekompilt man es einfach und hat ihn.
      Das kann man den programm dann auchnoch ganz einfach vortäuschen.
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Rikudo schrieb:

      Hmm... vllt noch mit AES verschlüsseln oder so...?
      keine Ahnnung ;-/

      extrem nutzlos. Da im Code, deine Verschlüsselungsart ist. Logischerweise kann man sie daraus wieder zurückentschlüsseln.
      Desweiteren bei AES (o. div. anderen Verschlüsselungsarten) musst du ein Passwort angeben. Dieses gibst du also wieder im Code an.
      Jeder, der nur ein bisschen Ahnung von sowas hat, kanns somit entschlüsseln.
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Oder Du versuchst Dich in C++.
      Solch elementare Test- und Vergleichs-DLL ist relativ schnell hingeschrieben. :D
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!

      TheVBTutorialsVB schrieb:

      Dann kann man es doch nicht mehr decompilen.
      Decompilen kann man es dann nicht mehr ... ausführen allerdings genauso wenig:!:

      Du kannst die Anwendung höchstens Obfuskieren, auch wenn das das Decomplilen lediglich erschwert, nicht verhindert, oder dich an einer nativen Programmiersprache (wie C++) versuchen.
      und entsprechend schnell ist der Aufruf genop'd

      Sein Programm für genau einen Rechner zu sichern und nur auf dem ausführbar zu machen ist praktisch und theoretisch unmöglich.
      Warum theoretisch? Auf einem Rechner ist nunmal alles manipulier- und umgehbar, damit ist so eine Sicherung auch komplett hinfällig.

      Lizenzsysteme (Windows, Office, etc.) sind schnell ausgehoben, weil die Gruppen, die die Sicherheitssysteme aushebeln, nunmal wissen wonach sie suchen müssen und können dementsprechend die Mechanismen aushebeln.
      Für die Projekte die es hier im VBP gibt, ist so eine Sicherung auch vollkommen unnötig.

      Möglicherweise nutzt es ein User, wird aber sehr schnell bemerken, dass das nunmal nicht gängige Art ist und schnell ausgehebelt werden kann.

      übrigens: MySettings arbeitet auf dem lokalen Rechner. Die Einstellungen werden also nie kopiert, ergo kann das Programm überall ausgeführt werden.