![]() |
Seriennummer Sicherheit
Hallo!
Kennt jemand ein Programm zum Schützen von Software? Im meine mit Seriennummern. Tipps würde ich auch nehmen. DANKE DS :glaskugel: |
AW: Seriennummer Sicherheit
Software mit Seriennummern schützen? Was meinst Du denn genau?
|
AW: Seriennummer Sicherheit
Zitat:
Muss aber kein BOMBENSCHUTZ sein wie z.B:: MAGIX |
AW: Seriennummer Sicherheit
Meinst Du so etwas (ist allerdings schon etwas älter)?
![]() [edit] Add: ![]() |
AW: Seriennummer Sicherheit
Bombenschutz ist eine Illusion. Du kannst es Raupkopierern schwer machen, aber wenn gewollt wird sie 100% geknackt.
Ich erinnere mich da an ein Programm dass in der lage war für sämtliche EA produkte Keys auszugeben, und wenn das Produkt unbekannt war, hats dir das KeySystem von der CD/DVD ausgelesen und geknackt. Das wichtigste ist dass du dir den Nutzen/Kosten faktor gut überlegst. Wie viel kannst du finanzieren, und ab wann ist es rausgeworfenes Geld? MFG Memnarch |
AW: Seriennummer Sicherheit
Zu dem Thema gibt es schon reichlich Threads hier in der DP, über Sinn und Unsinn lässt sich trefflich streiten.
|
AW: Seriennummer Sicherheit
Zitat:
|
AW: Seriennummer Sicherheit
Gut das mag sein, und wenn die Software nicht so populär ist, ist es ironischerweise auch noch ein Schutz.
Aber bitte niemals "Bombenschutz" oder eine andere vergleichbare superlative nutzen, da bekomm ich bei dem Thema Kopfschmerzen^^. Ein Produkt kann niemals 100% geschützt, aber immer 100% geknackt werden :!: |
AW: Seriennummer Sicherheit
Zitat:
Delphi-Quellcode:
DAS meine ich mit BOMBENSCHUTZ
BOMBENSCHUTZ.Create('Mit dem Internet verbinden, Datenbank, 100 verschiedene Funktionen);
Ach kennt jemand ne Software oder hat jemand einen TIP? |
AW: Seriennummer Sicherheit
Hi,
Ich hätte eine kleine Idee, ist aber nicht sehr sicher und dementsprechend leicht zu implementieren. Du kannst im Quellcode-Editor: Ctrl-Shift-G drücken dann wird ein GUID erstellt. Sieht dann so aus:
Code:
Jetzt hast du mal deine Seriennummer. Diese Seriennummer wird dann nur einmal beim Programmstart eingegeben. Diese Serienummer wird irgendwo lokal in einer Datei (verschlüsselt/verschleiert) gespeichert. Gibt man den Key ein wird dieser mit dem aus der Datei verglichen. Ist er gleich --> super! sonst nö hier kommst du nicht rein :)
['{C84EB7F0-8AA8-11D6-BDA5-00409544305B}']
Wäre einen möglichen Ansatz :) |
AW: Seriennummer Sicherheit
Zitat:
IBExpert wird mit Themida gesichert, und zumindest meine letzte Info ist, dass es bisher noch keiner geknackt hat. Holger hat allerdings auch schon Jahrelange Erfahrung mit eigenen Kopierschutzmassnahmen gesammelt und die dürfte in die Einbindung von Themida eingeflossen sein. |
AW: Seriennummer Sicherheit
Zitat:
![]() Reicht Produkt 1? |
AW: Seriennummer Sicherheit
Zitat:
|
AW: Seriennummer Sicherheit
Im Grunde muß man den Schutz immer anpassen/ändern, und möglichst kurze Intervalle zwischen den Versionen haben.
Wenn es mal geknackt wurde, dann dauert es nicht lange und es ist wieder geschützt. Somit wären zumindestens immer die aktuellsten Versionen relativ sicher. Ansonsten muß man, was die Seriennummern/Freischaltschlüsselbetrifft, diese mit Daten der PCs verrechnen, worauf die Programme installiert werden. > SID des Benutzerkontos des Installierenden > ID vom Windows > Seriennummer von HDDs, CPUs usw. > usw. (aber möglichst mit einer Fehlertolleranz, falls mal jemand was austauscht) = bei der Installation müßte man diese Infos dann an seinen Server/Webseite schicken lassen, dort die Seriennummer berechnen und diese z.B. via Mail zurückschicken. = oder man verbindet es mit der Onlineauthentifizierung und schaltet darüber die Seriennummer des Benutzer für diesen Rechner frei (siehe Delphi) > eine Onlineauthentifizierung kann auch nicht schaden (für den Schutz gut und für die Benutzer eventuell unpraktisch) PS: Um so mehr ein vorgefertigtes Sicherheitssystem verbreitet ist, umso mehr beschäftigen sich mit dem Umgehen dessen und so so wahrscheinlicher ist es (abhängig von vom vorhandenen Schwierigkeitsgrad) daß es "bald" geknackt wird. |
AW: Seriennummer Sicherheit
Es gibt eine möglichkeit. ^^ Lager teile der Anwendung auf deinen Server aus und liefere nur das Ergebnis an deine Anwendung. Das ganze kombiniert mit einer aufwendigen Authentifizierung. Jetzt bist du abgesichert allerdings herscht gleichzeitig Onlinezwang.
Alternativ machst du gleich eine Webanwendung. ^^ Beides ist meiner Meinung nach bombensicher so lange der Server nicht gehackt wird. (..) Aber in deinem Fall wäre es mit einer (GUID) wohl einfacher. |
AW: Seriennummer Sicherheit
Softare zum Sichern ist mir lieber. Es geht ja nur darum das Anfänger das nicht Knacken können.
Familie Verwandschaft und Co., und die sind keine Experten. :thumb: |
AW: Seriennummer Sicherheit
Wenn die Nutzer keine Ahnung von Debuggern oder gar Hex Editoren haben, läufst du mit dem Bsp. von Coffeecoder schon ganz gut. Kennen die sich allerdings nur ein wenig mit z.B. OllyDBG aus, dann haben die das damit schneller geknackt, als der Ehrliche Anwender es schafft die Serial einzugeben xD
|
AW: Seriennummer Sicherheit
Wir nehmen für solche "Schutz"-Zwecke meist als Basis für eine Programm-Seriennummer die Seriennummer der Festplatte, auf der das Programm installiert ist, da ist meiner Meinung nach die Gefahr am geringsten, dass sich die während der "Lebenszeit" der Installation ändert.
(Tauscht man die Festplatte aus, auf der das Programm liegt, muss man es eh meist neu installieren...). Die Seriennummer der HDD wird von der Applikation noch durch ne eigene String-Verwurschtelungs-Funktion geschickt und anschliessend gehasht. Das ganze geht dann, falls eine Online-Verbindung besteht, nach einer Login-Anforderung mit einem registrierten Namen und Passwort (welches beim Kauf festgelegt wurde) an ein serverseitiges Script, das daraus die Seriennummer berechnet und zurückgibt. Hat man keine Online-Verbindung, wird der Hash angezeigt und / oder in eine Datei exportiert. Danach kann der User die richtige Seriennummer mit einem anderen Rechner ermitteln, indem er sich mit seinem registrierten Namen auf der Webseite des Programms einloggt und den Hash eingibt. So aufwändig ist so etwas in Eigenregie zu basteln gar nicht mal, wenn man einen Webserver hat und eine Scriptsprache halbswegs beherrscht. |
AW: Seriennummer Sicherheit
Zitat:
|
AW: Seriennummer Sicherheit
@BUG: "Auch du Brutus?" :-D
|
AW: Seriennummer Sicherheit
Ich mache es so: Ich liefere mit Dongle aus. Manche Kunden lehnen Dongle jedoch kategorisch ab.
Dann mache ich es so: Setup speichert einen Zufallsstring. Das Programm liest den String und möchte einen GegenCode zur Aktivierung. Diesen gibt es bei uns per Mail. Nachteil: Der GegenCode ist auf der Kiste des Anwenders und wer ihn finden will, findet ihn auch. Ein Hacker sucht aber normalerweise nur ein paar Tage, dann hat er kein Lust mehr. Dein Programm muß so gestaltet sein, daß es diese Tage übersteht. Dazu gehört (mindestens), daß alle die Aktivierung betreffenden strings im Programm hexadezimal stehen. |
AW: Seriennummer Sicherheit
Was meinst du mit hexadezimal?
Mal an einem Codebeispiel gesehn. Wenn es wirklich so einkompiliert wurde, dann findet man das schneller, als wenn es irgendwo binär kodiert wurde, da eine reihe von hexadezimalen Zeichen zwischen den vielen Binärdaten schön auffällt. Abgesehn davon, daß Hexadezimal doppelt so lang ist und somit doppelt so leicht entdeckt werden kann. ('nen billiger XOR-manipulierter Wert fällt dagegen viel weniger auf, wenn überhaupt) Installierst du dann das Programm selber? Wenn der String irgendwo von dem Setup gespeichert wird und wenn du da nicht danebenstehst/zuguckst, dann dauert es keine 10 Sekunden und der String ist gefunden >>> brauch mir ja nur Loggen lassen, was dein Setup wo hinschreibt. (Sysinternals) :angle2: Wenn man dagegen den "String" aus partiell statischen Zufallswerten des Systems berechnet wird, dann muß man nichts verstecken. (Seriennummer der HDD, CPU und Co.) |
AW: Seriennummer Sicherheit
Ich habe einige Produkte im Markt bei denen jede Kundenversion stark personalisiert ist. Die Arbeit die dafür in die Build-Umgebung investiert werden musste, hat sich rentiert: Selbst von der Soft die am längsten so ausgeliefert wird, gibts keine geleakten Versionen seit diese Strategie gefahren wird. Und wenn mal eine auftauchen sollte, wäre es relativ einfach, herauszufinden wer dafür verantwortlich ist (ja, ich weiss, zur Rechenschaft ziehen könnte trotzdem illusorisch sein, aber...). Durch Continuous Integration ist es ausserdem selbst dann aufwendig, Schutz von Nutzlast zu trennen wenn man doch mehrere Versionen eingesammelt hat und die vergleichen will. Ist aber natürlich nix für die eigene Hobby-Software, dafür steckt dann doch ein bissl viel Arbeit drin ;)
|
AW: Seriennummer Sicherheit
Zitat:
const sRef: array [1..52] of Byte = ($69, $63, $72, $6F, $73, $6F, $66, $74, $5C, $57, $69, $6E, $64, $6F, $77, $73, $5C, $43, $75, $72, $72, usw.. die Entschlüsselungsroutine läuft über Ord xor Ord. Zitat:
Nutzt das denn etwas ? |
AW: Seriennummer Sicherheit
Zitat:
Mach mal ein
Delphi-Quellcode:
const
sRef: array [0..21] of Byte = ($69, $63, $72, $6F, $73, $6F, $66, $74, $5C, $57, $69, $6E, $64, $6F, $77, $73, $5C, $43, $75, $72, $72, $00); // "usw" abgeschnitten.. begin writeln(pchar(@sRef)); readln; end. ![]() |
AW: Seriennummer Sicherheit
jupp, beide Zeichenfolgen sehen im Kompilat (der EXE) genau gleich aus.
Delphi-Quellcode:
Und wenn man diesen Text jetzt irgendwie nochmal umwandelt (z.B. über XOR), dann steht der Text unverschlüsselt im RAM und man kann ihn von da auslesen.
sRef: array [1..22] of Byte = ($69, $63, $72, $6F, $73, $6F, $66, ...);
// enspricht sRef: AnsiString = 'icrof...'; Darum sollte man sowas niemals entschlüsseln. Was dagegen schonmal einen Hauch sicherer ist, wenn man das eingegebene Passwort/Serial verschlüsselt und dann hiermit vergleicht. |
AW: Seriennummer Sicherheit
Zitat:
Immer noch besser als
Delphi-Quellcode:
OpenKey('Dingens-Software.de', false)
|
AW: Seriennummer Sicherheit
Tut mir Leid, aber was ist, das ist!
|
AW: Seriennummer Sicherheit
Dann kann ich meine Aladdin Dongle auch gleich wegschmeißen, der Vendorcode von denen steht genau so in der Unit, die man einbinden soll. :shock:
Delphi-Quellcode:
const
vendor_code: array[1..519] of Byte = ( $c8, $7a, $9c, $29, $87, $ff, $40, $f3, $47, $a0, $83, $2a, $eb, $df, $d0, $88, $08, $4d, $c3, $72, $91, $f3, $21, $cf, $65, $a8, $61, $ff, $40, $1c, $05, $b0, $58, $09, $e2, $f3, $25, $ee, $ee, $4f, $67, $a2, $e0, $6a, $18, $b7, $2f, $67, $59, $81, $50, $4e, $c9, $7c, $38, $15, $df, $0d, $04, $30, $96, $d7, $55, $6f, $83, $9b, $4f, $81, $b4, $8e, $c7, $21, $eb, $27, $8f, $c6, $28, $0c, $b5, $0e, $42, $c0, $c3, $7d, $4d, $67, $99, $87, $6b, $06, $4b, $24, $cb, $28, $41, $2e, usw.. ); himitsu, Aphton, trotzdem Danke für eure Hinweise. showmessage (pchar(@zRef)) macht mich fertig.. |
AW: Seriennummer Sicherheit
Ich habe das bei mir so gelöst:
Kunde kauft Software und bekommt einen Aktivierungsschlüssel per Mail. Damit kann er nun einen Account erstellen oder einen vorhandenen verlängern. Bei jedem Programmstart loggt sich der Kunde ein. Einige werden jetzt sagen und was passiert, wenn der Server ausfällt? Nach jedem Login wird auf dem lokalen PC eine Lizenzdatei erstellt, die bei mir X Tage gültig ist. So hat man genügend Zeit um Serverprobleme zu lösen. Man könnte natürlich auch die EXE so modifizieren, dass man direkt eingeloggt ist. Dazu prüfe beim Programmstart ob die initialisierten Werte passen. Eine weitere Möglichkeit wäre ein Serveremulator, dazu gibt es weitere Möglichkeiten der Absicherung. Ich will jetzt aber hier nicht alles im Detail erklären. Hier noch ein paar Tipps:
Und das wichtigste: Alles dokumentieren, spätestens nach 3 Monaten weißt du nicht mehr wie es funktioniert! |
AW: Seriennummer Sicherheit
Zitat:
Wie schon oben gesagt wurde, wenn ein Programm wirklich geknackt werden will, wird es das auch. |
AW: Seriennummer Sicherheit
Zitat:
Ich bin nicht Adobe. :-D |
AW: Seriennummer Sicherheit
Was willst du damit ausdrücken? Du kannst es besser realisieren? Als eine Ein-Mann-Armee?
|
AW: Seriennummer Sicherheit
Wohl eher, dass seine Anwendung nicht populär genug ist, dass ein Hacker es unbedingt knacken wolle.
|
AW: Seriennummer Sicherheit
Dann ist das Platzieren eines Sicherheitssystems (Registrierung) um sich vor potenziellen Crackversuchen zu schützen, sowieso sinnlos.
Aber da die Gefahr immer besteht, ganz egal wie populär, sollte man diese Annahme ja ned machen, nicht? |
AW: Seriennummer Sicherheit
Zitat:
Darauf liegt auch meist das Augenmerk. Den "Otto-Normal-Verbraucher" zu blocken, damit man auch ein bißchen was verdient, und nicht die Cracker, die es drauf anlegen (und es eh immer schaffen). |
AW: Seriennummer Sicherheit
Du hast recht. Dann geht man aber auch davon aus, dass das Produkt letzendlich nur wenig "einbringen" wird. Dies ist schon denkbar bei kleineren Projekten. (Denn je größer die Nachfrage, desto mehr bringts ein, desto crackphiler wirds).
Aber wenn man mal etwas Größeres in einem größeren Team machen will, sollte man das überdenken - denke ich mir. |
AW: Seriennummer Sicherheit
Zitat:
Nehmen wir mal an, Photoshop hätte keinen Schutz. Eine mittlere Medienagentur würde dann vielleicht 10 Lizenzen kaufen, es aber auf 20 Rechnern installieren und nutzen und sich nicht einmal illegal dabei fühlen. ("kriegt ja eh keiner mit, wieviele gleichzeitig damit arbeiten und gekauft haben wirs ja auch"). Die Mühe aber, für ihre Firma einen Schutz zu umgehen, macht sich keiner, sie wollen ja auch nicht vorsätzlich illegal sein und bewusst einen Schutz cracken. Durch den Schutz kaufen sie eben eine grössere Volumen-Lizenz und alles ist gut. Teilweise hast du aber schon recht. z.B. "dongeln" ja inzwischen sehr viele Spiele-Firmen ihre Spiele an eine Online-Verbindung, damit man das Spiel überhaupt spielen kann. Das hat eben deinen genannten Grund, hier spielen Firmen als Lizenznehmer keine Rolle, sondern die Privatanwender. Und da will man keine zu großen Verlust einfahren, deswegen wird das immer drastischer und dreister. Denn Privatleute haben viel weniger scheu vor Cracks als Firmen. |
AW: Seriennummer Sicherheit
Zitat:
Sind die Aladdin Dongle leicht zu knacken? |
AW: Seriennummer Sicherheit
Delphi-Quellcode:
Sowas ist auch immer geil ... egal wie sicher, am Ende ändert man ein einziges Byte und schon war alles umsonst.
function ExremSichereUndVollGenialeLizenzprüfroutine: Boolean;
begin // megageheimer und supercooler Code end; if not ExremSichereUndVollGenialeLizenzprüfroutine then begin ShowMessage('nee, darfst du nicht'); Application.Terminate; end; Aus
Delphi-Quellcode:
mache
if not ...
Delphi-Quellcode:
oder aus
if ...
Delphi-Quellcode:
wird einige
Application.Terminate;
Delphi-Quellcode:
und wenn man seinen Spaß haben will, dann wird auch noch aus "nee, darfst du nicht" ein "Willkommen". :lol:
asm NOP end;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz