Softwareschutz, wer weiss was

Hallo
wenn man irgendwann mal was geschrieben hat, wo man glaubt, es könnte was sein, was andere klauen wollen, denkt man auch drüber nach, wie man so etwas schützen kann.

Da ich ja absolut kein Profi bin, denke ich drüber nach, irgendwo Dateien auf der Festplatte zu verstecken, wenn die Datei nicht da ist, geht das Programm nicht usw.
So denkt ein Laie *g*.

Naja ideal wäre ein Schutz, welcher das Programm eine gewisse Zeit laufen lässt und dann is sense zumindest auf dem Rechner, wo es installiert wurde.
Zeit zurückstellen soll auch nix bringen.

Einen solchen Schutz halte ich für am sinnvollsten.
Hat dazu jmd ein Tool, irgenwas programmiert oder so??? *blöd frag*

Würde mich halt mal interessieren, wie man sein Programm mit VB sicher macht.

Mfg Werner

Hallo Werner,

Würde mich halt mal interessieren, wie man sein Programm mit
VB sicher macht.

eine Datei ‚verstecken‘ geht natürlich nicht. :wink: Die ist immer zu finden, viel zu leicht, als daß das sinnvoll wäre. Statt den fremden Rechner zuzumüllen, schreibe die Informationen in die Regsitry, dazu ist sie da. Verschlüssel die Information und Du brauchst den Eintran nicht zu verstecken.
Wenn Du das als als Schutz vor Raubkopierern sehen willst, dann lass vom Programm einen Schlüssel generieren, mit dem der User sich die Software registrieren muß. Dabei verwendest Du die Seriennummer der Festpaltte mit und mailst einen geänderten Schlüssel zurück. Wenn Du den Schlüssel ‚richtig‘ baust, läuft das Programm gar nicht, Dein Programm kann das Datum des ersten Starts daraus erkennen, kann abschalten, wenn die Zeit vor dem letzten Start liegt( die Uhr zurück gestellt wurde) und erkennen, ob das Programm registriert ist. Das Programm läuft mit diesem Schlüssel nur auf dieser einen Festplatte.

Um das zu knacken muß schon jemand das Programm cracken und das macht mehr Arbeit, als etwas vergleichbares neu zu schreiben.

Dir ist aber bewußt, daß eine solche Registrierungspflicht ein Argument ist, das Programm nicht zu verwenden? …

Gruß, Rainer

hi
Hi
Schön wieder von dir zu hören.
Ja so geht das wohl, aber traust du mir das zu???
Ich habe keine Ahnung wie man sowas programmiert!
Wär schön sowas zu haben.

Um auf das Registrieren einzugehen, wir leben in einer Branche, wo man kaum Programme gekrackt bekommt.
Und eigene Programme sind noch am besten, weil sie individuell auf Probleme eingehen können, was 0815-Software nicht tut.
Hier wird alles allgemein gelöst, ist aber nicht immer für eine Firma von nutzen oder wirtschaftlich.

Melde dich nochmal, wenn du den Code fertig hast *g*

Mfg Werner

hi nochmal
Hi
meinte damit, das wir auch mit anderen Firmen zusammenarbeiten.
Wenn da mal was zusammengekommen ist, warum soll man nicht einen geringen Obulus für Programmbereiche verlangen.

Hallo Werner,

Würde mich halt mal interessieren, wie man sein Programm mit
VB sicher macht.

Gar nicht, nur schwerer zu kopieren.

eine Datei ‚verstecken‘ geht natürlich nicht. :wink: Die ist
immer zu finden, viel zu leicht, als daß das sinnvoll wäre.
Statt den fremden Rechner zuzumüllen, schreibe die
Informationen in die Regsitry, dazu ist sie da. Verschlüssel
die Information und Du brauchst den Eintran nicht zu
verstecken.

Aber gut verschlüsseln, mit MD5, Blowfish… nicht rückverschlüsselbar. Immer nur die verschlüsselten Infos abgleichen. Niemals den unverschlüsselten Code ins Programm aufnehmen.

Wenn Du das als als Schutz vor Raubkopierern sehen willst,
dann lass vom Programm einen Schlüssel generieren, mit dem der
User sich die Software registrieren muß. Dabei verwendest Du
die Seriennummer der Festpaltte mit und mailst einen
geänderten Schlüssel zurück. Wenn Du den Schlüssel ‚richtig‘
baust, läuft das Programm gar nicht, Dein Programm kann das
Datum des ersten Starts daraus erkennen, kann abschalten, wenn
die Zeit vor dem letzten Start liegt( die Uhr zurück gestellt
wurde) und erkennen, ob das Programm registriert ist.

Viel Arbeit um nix.

Das
Programm läuft mit diesem Schlüssel nur auf dieser einen
Festplatte.

Die Seriennummer der Festplatte kann ich Dir mit ein paar Zeilen Pascal-Code auslesen oder ändern, ich kann Dir da auch deinen Geburtstag reinschreiben. Das ist IMHO keine gute Lösung. Die User-ID des Windows + eigener Code, der sich durch diese ID ergibt + mutwilliges Chunk-Muster + Verschlüsselung eignet sich da schon eher. Ich sage nicht, dass das sicher ist, aber schwieriger zu lösen.

Um das zu knacken muß schon jemand das Programm cracken und
das macht mehr Arbeit, als etwas vergleichbares neu zu
schreiben.

Ohne einen CRC-Check sind ein paar NOPs mit einem Deassembler schnell eingetragen. Und selbst dann - ändert man halt den Check der Checksum… Es gibt keinen wirklich zuverlässigen Kopierschutz, leider… Mich ärgert das auch. Computer sind eben nur Maschinen. Im Kampf gegen Raupkopien/Cracker heißt es: kenne deinen Feind, kenne seine Mittel, kenne seine Grenzen.

Dir ist aber bewußt, daß eine solche Registrierungspflicht ein
Argument ist, das Programm nicht zu verwenden? …

Deshalb wurde die Shareware erfunden. Du gibst einen Teil der Funktionen frei, den vollen Funktionsumfang dann nur den registrierten Usern. Auf keinen Fall sollten die Funktionen im Shareware-Programm enthalten sein und nur deaktiviert. Sie sollten gar nicht enthalten sein. Das volle Programm muss die Registrierung aber wert sein, sonst vergraulst Du Dir damit wirklich die User.

Gruß,
Rudy

Was ich suche
Ja hallo, huhu
ausm Buch kann ich auch vorlesen.

Ich suche keine Endlösung, da ich nie Software auf CD verkaufen werde,
auch keine 100%igen Schutz.

Aber was kleines halt was hilft, hat da keiner was zuhause.

Naja warn Versuch wert.

Mfg Werner

Hi Rudy,

Viel Arbeit um nix.

Nö, das ist nicht viel Arbeit. :wink:

Die Seriennummer der Festplatte kann ich Dir mit ein paar
Zeilen Pascal-Code auslesen oder ändern, ich kann Dir da auch
deinen Geburtstag reinschreiben. Das ist IMHO keine gute
Lösung. Die User-ID des Windows + eigener Code, der sich durch
diese ID ergibt + mutwilliges Chunk-Muster + Verschlüsselung
eignet sich da schon eher. Ich sage nicht, dass das sicher
ist, aber schwieriger zu lösen.

Ich verwende die Seriennummer ja auch nur, weil da leicht ranzukommen ist. Wenn die jemand verändert, läuft das Programm halt nicht mehr.

Um das zu knacken muß schon jemand das Programm cracken und
das macht mehr Arbeit, als etwas vergleichbares neu zu
schreiben.

Ohne einen CRC-Check sind ein paar NOPs mit einem Deassembler
schnell eingetragen.

Und Du durchsuchst ein mehrere MB großes Programm um die Stelle zu finden, an der der Schlüssel gelesen wird? Den Assemblercode?
Bis Du den gefunden hast, hast Du das Programm von Werner analysiert und neu geschrieben.

Und selbst dann - ändert man halt den
Check der Checksum… Es gibt keinen wirklich zuverlässigen
Kopierschutz, leider… Mich ärgert das auch. Computer sind
eben nur Maschinen. Im Kampf gegen Raupkopien/Cracker heißt
es: kenne deinen Feind, kenne seine Mittel, kenne seine
Grenzen.

Nein, einen sicheren Schutz gibt es nicht, da sind wir uns einig.
Wenn ich aber z.B. einen Taschenrechner programmiere, wird den niemand ernsthaft mit einem Disassembler bearbeiten. :wink: Der Aufwand muß schon in einem vernünftigen Verhältnis zum Nutzen stehen.

Dir ist aber bewußt, daß eine solche Registrierungspflicht ein
Argument ist, das Programm nicht zu verwenden? …

Deshalb wurde die Shareware erfunden. Du gibst einen Teil der
Funktionen frei, den vollen Funktionsumfang dann nur den
registrierten Usern. Auf keinen Fall sollten die Funktionen im
Shareware-Programm enthalten sein und nur deaktiviert. Sie
sollten gar nicht enthalten sein. Das volle Programm muss die
Registrierung aber wert sein, sonst vergraulst Du Dir damit
wirklich die User.

Meine Rede. Selbst Freeware muß recht gut sein, damir sie überhaupt geladen wird.
Was Werner da geschrieben hat, ist ja auch nichts für den Massenmarkt, er hat Seine Nische, die potentiellen User sind eher keine Computerexperten, deren Expertenwissen liegt in anderen Bereichen.

Aber den Registrierungsschlüssel als Klartext in eine Datei schreiben und die in ‚System32‘ als ‚XYZ32.dll‘ zu schreiben ist halt noch nicht mal vor DAUs sicher. :wink:

Über MD5 und Blowfish weiß ich nichts, das könnte ich mit VB nicht nutzen um in die Registry einen Schlüssel zu scheiben und wieder zu lesen. Erklär doch mal, was es damit auf sich hat, ich versteh’s nicht. …

Also, es geht um ein VB-Programm, das kopiergeschützt werden soll. Der User soll damit arbeiten können und nicht jedes mal ein Passwort eintippen müssen. Der ‚Kopierschutz‘ muß nicht so effektiv sein, daß man den CCC damit vor Probleme stellt. :wink:

Gruß, Rainer

Hallo Werner,

Melde dich nochmal, wenn du den Code fertig hast *g*

mach ich. :wink: … Kann aber zwei drei Tage dauern.

Gruß, Rainer

hi
Hi Rainer
dankeschön, war eigentlich nur ein Witz.
Aber wenns dir nix ausmacht, kannst du ja mal schauen, ob du was „kleines“ hinbekommst, was hilft.
Es muß sich natürlich irgendwie dann in mein Programm integrieren lassen.
Und ich hoffe, ich darf dann auch nörgeln.
Habe da schon so meine Vorstellungen.
Ich werde mal schauen, vielleicht gibts sowas ja auch schon auf VB-Seiten. Sollte es ja eigentlich schon, oder???

Ein schönes WE.

Mfg Werner

Hi Rudy,

Viel Arbeit um nix.

Nö, das ist nicht viel Arbeit. :wink:

Wenig Arbeit um nix :wink:))

Die Seriennummer der Festplatte kann ich Dir mit ein paar
Zeilen Pascal-Code auslesen oder ändern, ich kann Dir da auch
deinen Geburtstag reinschreiben. Das ist IMHO keine gute
Lösung. Die User-ID des Windows + eigener Code, der sich durch
diese ID ergibt + mutwilliges Chunk-Muster + Verschlüsselung
eignet sich da schon eher. Ich sage nicht, dass das sicher
ist, aber schwieriger zu lösen.

Ich verwende die Seriennummer ja auch nur, weil da leicht
ranzukommen ist. Wenn die jemand verändert, läuft das Programm
halt nicht mehr.

Was ich damit meinte: ein registrierter User kann die
Seriennummer seiner Platte samt Registrierungscode an dritte
weitergeben, und diese können mit einfachsten Mitteln ihr
System den Gegebenheiten anpassen, sodass der
Registrierungscode bei ihnen funktioniert. Mit der Userid des
Windows ist das schon schwieriger. Die hat so ein Format:
S-5-1-21-2389151177-0629120266-455437253-0510 und steht in der
Registrierung unter HKEY_USERS, ist also fest (fest?) mit dem
Benutzerprofil verankert.

Um das zu knacken muß schon jemand das Programm cracken und
das macht mehr Arbeit, als etwas vergleichbares neu zu
schreiben.

Ohne einen CRC-Check sind ein paar NOPs mit einem Deassembler
schnell eingetragen.

Und Du durchsuchst ein mehrere MB großes Programm um die
Stelle zu finden, an der der Schlüssel gelesen wird? Den
Assemblercode?

Nebst anderer Tools, deren Namen ich hier nicht
veröffentliche, um Crack-Kiddies nicht auf doofe Gedanken zu
bringen.

Bis Du den gefunden hast, hast Du das Programm von Werner
analysiert und neu geschrieben.

Wenn Du dich da nur nicht täuschst. Es gibt ganz gewisse
Merkmale, Meldungen, Jumps, Checks die sehr einfach mit
Deassemblern zu finden sind. Die sind praktisch dafür gemacht.

Und selbst dann - ändert man halt den
Check der Checksum… Es gibt keinen wirklich zuverlässigen
Kopierschutz, leider… Mich ärgert das auch. Computer sind
eben nur Maschinen. Im Kampf gegen Raupkopien/Cracker heißt
es: kenne deinen Feind, kenne seine Mittel, kenne seine
Grenzen.

Nein, einen sicheren Schutz gibt es nicht, da sind wir uns
einig.
Wenn ich aber z.B. einen Taschenrechner programmiere, wird den
niemand ernsthaft mit einem Disassembler bearbeiten. :wink: Der
Aufwand muß schon in einem vernünftigen Verhältnis zum Nutzen
stehen.

Das steht außer Frage :wink: Wer hat schon seine Zeit zum
Vergeuden…

Dir ist aber bewußt, daß eine solche Registrierungspflicht ein
Argument ist, das Programm nicht zu verwenden? …

Deshalb wurde die Shareware erfunden. Du gibst einen Teil der
Funktionen frei, den vollen Funktionsumfang dann nur den
registrierten Usern. Auf keinen Fall sollten die Funktionen im
Shareware-Programm enthalten sein und nur deaktiviert. Sie
sollten gar nicht enthalten sein. Das volle Programm muss die
Registrierung aber wert sein, sonst vergraulst Du Dir damit
wirklich die User.

Meine Rede. Selbst Freeware muß recht gut sein, damir sie
überhaupt geladen wird.
Was Werner da geschrieben hat, ist ja auch nichts für den
Massenmarkt, er hat Seine Nische, die potentiellen User sind
eher keine Computerexperten, deren Expertenwissen liegt in
anderen Bereichen.

Also keine Programme für Software-Firmen. Na dann is ja gut.
Wer weiß aber schon, wer grad mal Bock hat wieder mal was zu
patchen…

Aber den Registrierungsschlüssel als Klartext in eine Datei
schreiben und die in ‚System32‘ als ‚XYZ32.dll‘ zu schreiben
ist halt noch nicht mal vor DAUs sicher. :wink:

Das ist eigentlich egal. Wichtig ist, dass die gespeicherten
Werte ordentlich verschlüsselt sind. Wo die dann liegen, lässt
sich aufgrund der Windows-Architektur IMMER zurückverfolgen,
sobald dein Programm das ausliest. Wenn Du die
Registrierungsschlüssel aber schon verschlüsseln willst,
müssen die aber rückverschlüsselbar sein, da er sie im
Programm ja benutzen will. Ich empfehle hierzu einen Algo,
welcher mit einer Benutzerabhängigen ID die Strings
verschlüsselt (siehe crypto-Link weiter unten) und daraufhin
eine „dll“ generiert, worin die Infos unter lauter Chunk-Mist
verschlüsselt zu finden sind. Das ist aber, wie gesagt, nicht
notwendig. Achte auf die gute Verschlüsselung der Werte in den
Registrierungsschlüssel.

Über MD5 und Blowfish weiß ich nichts, das könnte ich mit VB
nicht nutzen um in die Registry einen Schlüssel zu scheiben
und wieder zu lesen. Erklär doch mal, was es damit auf sich
hat, ich versteh’s nicht. …

MD5, Blowfish und was es da noch so gibt sind
Verschlüsselungsalgorithmen, die nicht rückverschlüsselbar
sind. (ganz sicher ist MD5 dank der findigen Chinesen seit
letztem Jahr nun leider auch nicht mehr - er ist deshalb aber
nicht unbrauchbar geworden). Sinn des Ganzen ist, immer nur
den verschlüsselten Text zu vergleichen, niemals den Klartext,
d.h. beim Eingeben des Schlüssels wird dieser kodiert
in der Registry gespeichert, und später immer nur der
verschlüsselte abgeglichen. :
http://de.wikipedia.org/wiki/MD5
http://de.wikipedia.org/wiki/Blowfish
Diese Verschlüsselungen gibts gibts auch für VB:
http://www.di-mgt.com.au/crypto.html

Also, es geht um ein VB-Programm, das kopiergeschützt werden
soll. Der User soll damit arbeiten können und nicht jedes mal
ein Passwort eintippen müssen. Der ‚Kopierschutz‘ muß nicht so
effektiv sein, daß man den CCC damit vor Probleme stellt. :wink:

Da sind der Kreativität keine Grenzen gesetzt. Du willst doch
nun nicht etwa einen Kopierschutz machen, dessen
Funktionsweise Du hier veröffentlichst? :wink: Nur so aus Neugier
wäre ich interessiert, das ‚gesicherte‘ Programm mal zu
testen.

Gruß, Rainer

Schönen Gruß zurück,
Rudy

1 Like

Hallo Rudy,

Wenig Arbeit um nix :wink:))

Nun entmutige Werner nicht gleich ganz.

Mit der Userid des
Windows ist das schon schwieriger. Die hat so ein Format:
S-5-1-21-2389151177-0629120266-455437253-0510 und steht in der
Registrierung unter HKEY_USERS, ist also fest (fest?) mit dem
Benutzerprofil verankert.

Und der ändert sich bei einer Neuinstallation? Gefällt mir nicht. Möglich wäre verschiedene Infos gleichzeitig zu verwenden, aber das ist hier wohl nicht nötig.

Und Du durchsuchst ein mehrere MB großes Programm um die
Stelle zu finden, an der der Schlüssel gelesen wird? Den
Assemblercode?

Nebst anderer Tools, deren Namen ich hier nicht
veröffentliche, um Crack-Kiddies nicht auf doofe Gedanken zu
bringen.

*g* Du sprichst von einer anderen Szene. Die Leute, die Du meinst, sind an dem Programm nicht interessiert.

Bis Du den gefunden hast, hast Du das Programm von Werner
analysiert und neu geschrieben.

Wenn Du dich da nur nicht täuschst. Es gibt ganz gewisse
Merkmale, Meldungen, Jumps, Checks die sehr einfach mit
Deassemblern zu finden sind. Die sind praktisch dafür gemacht.

Du meinst, ich muß das absichtlich recht umständlich machen? OK, doch kein Schlüssel in der Registry, sondern Daten, die das Programm benötigt verschlüsselt in einer Datei mitliefern. Wird die Verschlüsselung abgewürgt, können benötigte Daten nicht mehr gelesen werden.

Der
Aufwand muß schon in einem vernünftigen Verhältnis zum Nutzen
stehen.

Das steht außer Frage :wink: Wer hat schon seine Zeit zum
Vergeuden…

Was Zeit vergeuden ist, ist relativ. Einen Kopierschutz zu knacken, kann Selbstzweck sein. …

Meine Rede. Selbst Freeware muß recht gut sein, damir sie
überhaupt geladen wird.
Was Werner da geschrieben hat, ist ja auch nichts für den
Massenmarkt, er hat Seine Nische, die potentiellen User sind
eher keine Computerexperten, deren Expertenwissen liegt in
anderen Bereichen.

Also keine Programme für Software-Firmen. Na dann is ja gut.
Wer weiß aber schon, wer grad mal Bock hat wieder mal was zu
patchen…

Wir sind uns ja einig, daß es 100%ige Sicherheit nicht gibt. Aber ein paar Steinchen kann man dem Angreifer ja in den Weg legen wollen.

Aber den Registrierungsschlüssel als Klartext in eine Datei
schreiben und die in ‚System32‘ als ‚XYZ32.dll‘ zu schreiben
ist halt noch nicht mal vor DAUs sicher. :wink:

Das ist eigentlich egal. Wichtig ist, dass die gespeicherten
Werte ordentlich verschlüsselt sind. Wo die dann liegen, lässt
sich aufgrund der Windows-Architektur IMMER zurückverfolgen,
sobald dein Programm das ausliest. Wenn Du die
Registrierungsschlüssel aber schon verschlüsseln willst,
müssen die aber rückverschlüsselbar sein, da er sie im
Programm ja benutzen will.

So ist es. Das soll ja fast unbemerkt bleiben, sonst wird das Programm unbrauchbar.

Ich empfehle hierzu einen Algo,
welcher mit einer Benutzerabhängigen ID die Strings
verschlüsselt (siehe crypto-Link weiter unten) und daraufhin
eine „dll“ generiert, worin die Infos unter lauter Chunk-Mist
verschlüsselt zu finden sind. Das ist aber, wie gesagt, nicht
notwendig. Achte auf die gute Verschlüsselung der Werte in den
Registrierungsschlüssel.

Ideen hab’ ich dazu schon. :wink: Das Thema hat mich auch schon mal interessiert, ich denke nicht zum ersten mal darüber nach.
Ich habe Spielstände verschlüsselt abgelegt, um den Spielspaß zu erhalten. In dem Fall recht unwichtig, wer’s kanckt, schadet sich nur selbst. :wink: War aber wohl trotzdem gut genug.

Über MD5 und Blowfish weiß ich nichts, das könnte ich mit VB
nicht nutzen um in die Registry einen Schlüssel zu scheiben
und wieder zu lesen. Erklär doch mal, was es damit auf sich
hat, ich versteh’s nicht. …

MD5, Blowfish und was es da noch so gibt sind
Verschlüsselungsalgorithmen, die nicht rückverschlüsselbar
sind. (ganz sicher ist MD5 dank der findigen Chinesen seit
letztem Jahr nun leider auch nicht mehr - er ist deshalb aber
nicht unbrauchbar geworden). Sinn des Ganzen ist, immer nur
den verschlüsselten Text zu vergleichen, niemals den Klartext,
d.h. beim Eingeben des Schlüssels wird dieser kodiert
in der Registry gespeichert, und später immer nur der
verschlüsselte abgeglichen. :
http://de.wikipedia.org/wiki/MD5
http://de.wikipedia.org/wiki/Blowfish
Diese Verschlüsselungen gibts gibts auch für VB:
http://www.di-mgt.com.au/crypto.html

Das sehe ich mir an. Mal sehen, ob ich das verstehe.

Also, es geht um ein VB-Programm, das kopiergeschützt werden
soll. Der User soll damit arbeiten können und nicht jedes mal
ein Passwort eintippen müssen. Der ‚Kopierschutz‘ muß nicht so
effektiv sein, daß man den CCC damit vor Probleme stellt. :wink:

Da sind der Kreativität keine Grenzen gesetzt. Du willst doch
nun nicht etwa einen Kopierschutz machen, dessen
Funktionsweise Du hier veröffentlichst? :wink:

Nein, will ich nicht. So intetressant wird das nun auch wieder nicht. Wenn ich das aber so schaffen würde, daß das die Verschlüsselung nicht unwirksam macht, wär’s schon nett. … Steht nicht irgendeine Hardwareinfo in irgend einem ROM? :wink: Eine unveränderliche Zahl im Computer und das Ding ist gegessen.

Nur so aus Neugier
wäre ich interessiert, das ‚gesicherte‘ Programm mal zu
testen.

Ich hab’ bisher eine frühe Arbeitsversion gesehen, weiß also in groben Zügen, worum es geht. Verwenden kann das Programm wohl nur ein Vermessungsingenier, für jeden anderen ist es nicht zu gebrauchen. Das Interesse ist also eher auf eine kleine Personengruppe beschränkt, die nicht zwangsläufig alle Computerexperten sind.

Danke für die Tipps!

Gruß, Rainer

Hallo Werner,

ich daechte beo activevb habe ich da mal was gefunden. Schau mal dort in der kathegorie Steuerelemente nach.
Wenn ich es nochmal sehen sollte dann gebe ich dir bescheid :smile:

VLG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Werner,

dankeschön, war eigentlich nur ein Witz.

macht aber Spaß! :wink:

Aber wenns dir nix ausmacht, kannst du ja mal schauen, ob du
was „kleines“ hinbekommst, was hilft.
Es muß sich natürlich irgendwie dann in mein Programm
integrieren lassen.

Das wird dann ein Modul und ein Beispielprogramm dazu, wie zu verwenden.

Und ich hoffe, ich darf dann auch nörgeln.

Aber sicher. :wink:

Habe da schon so meine Vorstellungen.
Ich werde mal schauen, vielleicht gibts sowas ja auch schon
auf VB-Seiten. Sollte es ja eigentlich schon, oder???

Keine Ahnung. Ist mir noch nicht über den Weg gelaufen, ich habe aber auch in den letzten Wochen nicht gezielt gesucht.

Gruß, Rainer

Hallo Werner,

ok ich hab mal schnell geschaut und folgendes gefunden.
Ich zitiere mal :smile:

6.ActiveLock.zip
Eine Lösung zur Shareware, Trialware & Crippleware Weil es immer wieder thema ist

Downloaden kannst du es direkt unter

http://www.activevb.de/cgi-bin/upload/download.pl?id…

Ich hoffe das ist das was du suchst.
Angeschaut habe ich es mir nicht, aber klingt stark nach dem was du suchst.
VLG Alex

Hallo Rudy,

Wenig Arbeit um nix :wink:))

Nun entmutige Werner nicht gleich ganz.

Würd ich nie tun… hab ich was gesagt? ;^) *duck und weg*

Mit der Userid des
Windows ist das schon schwieriger. Die hat so ein Format:
S-5-1-21-2389151177-0629120266-455437253-0510 und steht in der
Registrierung unter HKEY_USERS, ist also fest (fest?) mit dem
Benutzerprofil verankert.

Und der ändert sich bei einer Neuinstallation? Gefällt mir
nicht. Möglich wäre verschiedene Infos gleichzeitig zu
verwenden, aber das ist hier wohl nicht nötig.

Ich finde das aber eine gute Idee. Kommen wir zurück auf die Seriennummer der primären Festplatte, kombiniert mit der MAC-Adresse der Netzwerkkarte, Seriennummer des Windows (na hier werden viele den gleichen haben, meinen jedenfalls nicht :wink:, eigenwilliges Muster einflechten…
Der einfachste Weg die MAC-Adressen der Maschine zu erlangen ist ‚cmd /q /c getmac /NH >C:\mac.dll‘, dann hast Du ja schon die Basis in einer Textdatei, die wie ne dll aussieht (kann z.B. das Installationsprogramm tun - besser wäre es natürlich intern immer beim Programmstart zu ermitteln - das Dos-Fenster, das kurz aufkommt, ist bei jedem Programmstart nicht sehr hübsch, stört aber beim Installationsprogramm nicht). Darin flechtest Du Dein Muster ein und verschlüsselst das beim ersten Programmstart/Installation mit einem Hash-Algo und speicherst die Checksumme der DLL-Textdatei kombiniert mit dem Erstellungsdatum/Uhrzeit der ausführbaren Programmdatei sowie dem eingegebenen Serial in der Registrierung. Beim Programmstart reicht es dir dann, die Checksumme der DLL-Textdatei mit den Mac-Adressen mit dem Erstellungsdatum der Programmdatei und dem (entschlüsselbar kodierten, in der Registrierung gespeicherten) Serial zu verschlüsseln, und mit dem verschlüsselten Hash-Wert in der Registrierung zu vergleichen. Eben ein bissel kreativ sein, das System kannste ja später mal, vielleicht leicht abgewandelt, auch wiederverwenden (sollte jedenfalls ein Ziel für Programmierer sein). Das ist nur ein Vorschlag, wie ich die Sache angehen würde, ich zwinge Dich sicher zu nix :wink: Leider habe ich für VB kein Code-Snippet parat, welches die MAC-Adresse ohne cmd ermittelt. Die Google-Newsgroups wissen da sicher mehr.

Du meinst, ich muß das absichtlich recht umständlich machen?

na ja…

OK, doch kein Schlüssel in der Registry, sondern Daten, die
das Programm benötigt verschlüsselt in einer Datei mitliefern.
Wird die Verschlüsselung abgewürgt, können benötigte Daten
nicht mehr gelesen werden.

Registry is schon ok, dazu ist sie ja da. Nur die Werte in den Schlüsseln müssen eben verschlüsselt sein (mann, wie oft verwende ich das Wort ‚schlüssel‘ :wink:. Das nur mit Dateien zu machen finde ich unschön.

Was Zeit vergeuden ist, ist relativ. Einen Kopierschutz zu
knacken, kann Selbstzweck sein. …

Ist es meistens auch. Die Typen müssen sich immer gegenseitig was beweisen. Vielleicht haben sies sonst zu nix gebracht.

Wir sind uns ja einig, daß es 100%ige Sicherheit nicht gibt.
Aber ein paar Steinchen kann man dem Angreifer ja in den Weg
legen wollen.

Felsen oder Berge sind besser :smile:)

http://www.di-mgt.com.au/crypto.html

Das sehe ich mir an. Mal sehen, ob ich das verstehe.

Tust Du sicher. Sind eben Funktionen, die Klartext in was verschlüsseltes wandeln, aus dem der Klartext nicht mehr rekonstruiert werden kann.

Nein, will ich nicht. So intetressant wird das nun auch wieder
nicht.

Schade, wär doch spaßig.

Wenn ich das aber so schaffen würde, daß das die
Verschlüsselung nicht unwirksam macht, wär’s schon nett. …
Steht nicht irgendeine Hardwareinfo in irgend einem ROM? :wink:

Siehe oben.

Eine unveränderliche Zahl im Computer und das Ding ist
gegessen.

Unveränderlich… ne. Wenn die HW geändert wird, Pech gehabt :wink: Das ist aber auch bei kommerziellen Kopierschutz-tools so, z.B. http://www.ionworx.com/SerialShield.html

Nur so aus Neugier
wäre ich interessiert, das ‚gesicherte‘ Programm mal zu
testen.

Ich hab’ bisher eine frühe Arbeitsversion gesehen, weiß also
in groben Zügen, worum es geht. Verwenden kann das Programm
wohl nur ein Vermessungsingenier, für jeden anderen ist es
nicht zu gebrauchen.

In der Geometerschule war ich auch mal, hab aber dann aufgehört und bin umgestiegen, weil ich mich zu Tode gelangweilt habe. Mich würde ja nur der Kopierschutz interessieren, weniger was das Programm tut. Ist aber nur, weil ich ein extrem neugieriger Mensch bin :wink:

Schönen Gruß,
Rudy

Danke
Hallo
ihr seit so nett und hilfsreich.
Werde das mal nächstes Wochenende alles testen und mich dann bei euch melden.

Mfg Werner

Hallo noch mal,

Ich finde das aber eine gute Idee. Kommen wir zurück auf die
Seriennummer der primären Festplatte, kombiniert mit der
MAC-Adresse der Netzwerkkarte, Seriennummer des Windows (na
hier werden viele den gleichen haben, meinen jedenfalls nicht
:wink:, eigenwilliges Muster einflechten…

Welche Zahl aus dem Computer verwendet wird, ist ja flexibel. Ich nehme ohnehin an, daß Werner meinen Vorschlag ändert. das würde ich jedenfalls tun. :wink: MAC-Adresse der Netzwerkkarte? Ich weiß doch gar nicht, ob in dem Rechner, auf den das Programm soll, eine eingebaut ist. Ne Festplatte ist da aber sicher. :wink:

Der einfachste Weg die MAC-Adressen der Maschine zu erlangen
ist ‚cmd /q /c getmac /NH >C:\mac.dll‘, dann hast Du ja
schon die Basis in einer Textdatei, die wie ne dll aussieht
(kann z.B. das Installationsprogramm tun - besser wäre es
natürlich intern immer beim Programmstart zu ermitteln - das
Dos-Fenster, das kurz aufkommt, ist bei jedem Programmstart
nicht sehr hübsch, stört aber beim Installationsprogramm
nicht).

Das würde sicher ohne DOS-Fenster gehen. Ich kenne aber zu viele Rechner ohne Netzwerkkarte, um die zu verwenden. Einige haben WLAN am USB…

Darin flechtest Du Dein Muster ein und verschlüsselst
das beim ersten Programmstart/Installation mit einem Hash-Algo
und speicherst die Checksumme der DLL-Textdatei kombiniert mit
dem Erstellungsdatum/Uhrzeit der ausführbaren Programmdatei
sowie dem eingegebenen Serial in der Registrierung. Beim
Programmstart reicht es dir dann, die Checksumme der
DLL-Textdatei mit den Mac-Adressen mit dem Erstellungsdatum
der Programmdatei und dem (entschlüsselbar kodierten, in der
Registrierung gespeicherten) Serial zu verschlüsseln, und mit
dem verschlüsselten Hash-Wert in der Registrierung zu
vergleichen. Eben ein bissel kreativ sein, das System kannste
ja später mal, vielleicht leicht abgewandelt, auch
wiederverwenden (sollte jedenfalls ein Ziel für Programmierer
sein).

Logisch. :wink: Der Entwurf ist fertig. Steht alles in einem Modul, ist also leicht weiter zu verwenden oder zu modifizieren. Verwenden werde ich das wohl nicht, von dem Gedanken, etwas anderes als Freeware zu schreiben habe ich mich gelöst. So gut bin ich nicht, daß das jemand anders nicht besser könnte.

Das ist nur ein Vorschlag, wie ich die Sache angehen
würde, ich zwinge Dich sicher zu nix :wink: Leider habe ich für VB
kein Code-Snippet parat, welches die MAC-Adresse ohne cmd
ermittelt. Die Google-Newsgroups wissen da sicher mehr.

Dann sieh Dir mal die API-Guide auf http://www.allapi.net an. :wink:

Registry is schon ok, dazu ist sie ja da.

Ich habe mich von der Registry verabschiedet, eine Neuinstallation soll ja auch nichts nützen. Das Datum muß also als ‚Verfallsdatum‘ schon verschlüsselt mit ausgeliefert werden. Also doch Datei. :wink:

Was Zeit vergeuden ist, ist relativ. Einen Kopierschutz zu
knacken, kann Selbstzweck sein. …

Ist es meistens auch. Die Typen müssen sich immer gegenseitig
was beweisen. Vielleicht haben sies sonst zu nix gebracht.

Einfach mal ein wenig selbst gestellte Probleme lösen, ist später beim Arbeiten meist hilfreich. Wenn ich in der Firma ein Problem lösen muß, greife ich auf bekanntes zurück, das geht am schnellsten und schnelle Lösungen sind da meist gefragt.

Wir sind uns ja einig, daß es 100%ige Sicherheit nicht gibt.
Aber ein paar Steinchen kann man dem Angreifer ja in den Weg
legen wollen.

Felsen oder Berge sind besser :smile:)

http://www.di-mgt.com.au/crypto.html

Das sehe ich mir an. Mal sehen, ob ich das verstehe.

Tust Du sicher. Sind eben Funktionen, die Klartext in was
verschlüsseltes wandeln, aus dem der Klartext nicht mehr
rekonstruiert werden kann.

Ich hab’s noch nicht mal geschafft, mich zu einem Code durchzuklicken. Mein englisch hat dafür nicht ausgereicht.

Schade, wär doch spaßig.

Ich hab’ das Minimalprogramm mal kompiliert und hochgeladen.
http://www.winhome.de/swk.zip
Kannst Dir’s ja mal ansehen. ich habe nur eigene Ideen verarbeitet, das Entschlüsseln könnte also schwierig werden. :wink: Etwas anderes als die HD-Seriennummer zu verwenden überlasse ich Werner oder baue das für einen echten Anwendungsfall ein.

Eine unveränderliche Zahl im Computer und das Ding ist
gegessen.

Unveränderlich… ne. Wenn die HW geändert wird, Pech gehabt
:wink: Das ist aber auch bei kommerziellen Kopierschutz-tools so,
z.B. http://www.ionworx.com/SerialShield.html

OK, wenn die Hardware geändert wird, ist eine neue Registrierung nötig. Ich wechsle die Hardware nur alle 4 bis 5 Jahre. In der Firma noch seltener.

Ich hab’ bisher eine frühe Arbeitsversion gesehen, weiß also
in groben Zügen, worum es geht. Verwenden kann das Programm
wohl nur ein Vermessungsingenier, für jeden anderen ist es
nicht zu gebrauchen.

In der Geometerschule war ich auch mal, hab aber dann
aufgehört und bin umgestiegen, weil ich mich zu Tode
gelangweilt habe. Mich würde ja nur der Kopierschutz
interessieren, weniger was das Programm tut. Ist aber nur,
weil ich ein extrem neugieriger Mensch bin :wink:

Toll, dann würdest Du Werners Programm verstehen. Meinen Code kannst Du Dir ja so schon mal ansehen. :wink: Den Quellcode will ich lieber nicht mit veröffentlichen, obwohl ich denke, daß das nicht stören würde. :wink:

Gruß, Rainer

Hallo noch mal,

Ich hab’ das Minimalprogramm mal kompiliert und hochgeladen.
http://www.winhome.de/swk.zip
Kannst Dir’s ja mal ansehen. ich habe nur eigene Ideen
verarbeitet, das Entschlüsseln könnte also schwierig werden.
:wink: Etwas anderes als die HD-Seriennummer zu verwenden
überlasse ich Werner oder baue das für einen echten
Anwendungsfall ein.

Das ist schon gut so, es bringt nix, den Key zu kopieren, das ist mal die Hauptsache. Sofern nicht die Seriennummer der Festplatte mitgegeben wird, zusammen mit einem Programm, das diese auf dem Zielsystem ändert… aber was red ich… :wink:

Meinen Code kannst Du Dir ja so schon mal ansehen. :wink:
Den Quellcode will ich lieber nicht mit veröffentlichen, obwohl
ich denke, daß das nicht stören würde. :wink:

Das sieht für den Anwendungszweck tauglich aus, gut gemacht. Nur die ganzen vb-Teile beim Installieren stören mich, aber das ist nun mal so. Quellcode veröffentlichen? Ne, ein Open-Source Kopierschutz ist irgendwie ein Widerspruch :wink:

Gruß, Rainer

Gruß zurück, man liest sich.
Rudy [EOT]

hi
Hi
schön, das ihr euch so viele Gedanken macht um einen einfachen Kopierschutz.
Ich verstehe natürlich nur Bahnhof vom Programmieren solcher VB-Programme, verstehe aber durchaus was von der Problematik.

Ich will zumindest etwas, was nicht durch Zeit zurückstellen wieder aktiv wird und es wäre schön, wenn man das Programm eben mit einem Registrierungsschlüssel freischalten müsste.
Damit es nicht kopiert werden kann, muß es auf jeden Rechner natürlich individuell sein und ein neuer Schlüssel erforderlich werden.

Soweit wäre das schon supergigadollspitzenklasse.

Letztens habe ich ein Programm gehabt, das lies sich nur 1x installieren als Demoversion, auch keine schlechte Idee, wenn man nicht die Vollversion hat.

Ich frage mich nur, wie ich das dann machen soll mit Updates.
Das Programm wächst ja noch und eigentlich kompiliere ich im Moment nur die EXE-Datei neu, klappt das dann überhaupt???
Oder muß man dann noch eine Updatefunktion einbauen???

Ojeojeoje

Mfg Werner

Rainers Tool
Hallo
Rainers Tool ist genial, wenn es das tut, was es verspricht und genau das, was ich gebraucht habe.

Mfg Werner