![]() |
Re: Software vor Raubkopierer schützen
Der beste Sxhutz ist Freeware.
|
Re: Software vor Raubkopierer schützen
Zitat:
kannst Du näheres dazu sagen ? .. wüsste jetzt nicht wo. Die Spannede Frage wäre ja noch, dies rauszufinden, während der Laufzeit des programms. Weil die 255 ist nicht wirklich eine sinnvolle Größe :-) |
Re: Software vor Raubkopierer schützen
Zitat:
|
Re: Software vor Raubkopierer schützen
Zitat:
|
Re: Software vor Raubkopierer schützen
Wie reden hoffentlich von Win32 Applications
Damit meinte ich die Strg+Alt+C Maschinencode-Ansicht. Einfach die Bytes zählen. 2. Variante: Lesen bis der Opcode für ret 0xC3 kommt. Was leider nicht in jedem Fall funktionieren wird. EDIT: Die gefahr besteht darin das vor deiner Prüfung irgentwo C3 stehen könnte und das nicht in der semantik von Return. |
Re: Software vor Raubkopierer schützen
Zitat:
|
Re: Software vor Raubkopierer schützen
Zitat:
Und sollte es doch jemand Brute-Forcen, oder beim Laufen auf die Platte dumpen, oder sonstwie entschlüsseln können, so nützt das jedoch nichts, weil Teile des Programms, die auf dem Webserver ausgeführt werden, einfach fehlen! Schreibst du Beispielsweise einen Editor für Files jeglicher Art, dann wäre es zum Beispiel möglich, den kompletten Header an den Webserver zu senden, und dann die ausgewerteten Einzelheiten vom Webserver zurück zu erhalten. Es gibt sicher noch zahlreiche andere - noch (von außen) undurschauberere, nicht zeit-kritische - Sachen, die wenig Bandbreite brauchen, die man so online auslagern kann. Auch eine Möglichkeit wäre folgendes:
Delphi-Quellcode:
So kann man ausgewählte Prozeduren (natürlich nicht jeden-Button-Klick) ohne Übergabe-Wert (mit ein bisschen Aufwand auch mit) aufrufen. Der Server errechnet dabei aus der erhaltenen Nummer (2343) die Nummer der Prozedur/Funktion. Auch das für einen Cracker, macht man es in größerem Umfang, nur sehr schwer zu rekonstruieren.
//beliebige prozedur
procedure johnny(); begin quadrat(pi); sendtoserver(2343); //um die nächste Prozedur/Funktion aufzurufen end; procedure onreceive(const susi: Integer); var num: Integer; begin num := StrToInt(susi); case num of 1: harald(); 2: schmidt(); 3: scheiss_engelke(); end; end; Noch schöner ist es natürlich, wenn der Wert, der dem Server übergeben wird, eine If-Struktur ersetzt, und der Server dementsprechend die richtige Prozedur/Funktion auswählt. Und für den Cracker wird es so nahezu unmöglich, das Programm noch (voll lauffähig) zu cracken. Für ein Offline-Programm sicher weitestgehend unbrauchbar, aber für ein Online-Programm ideal. Ohne solche Maßnahmen scheint es ja leider nicht zu gehen: Wenn die User (oder zumindest einige User) nicht bereit sind zu zahlen, müssen eben allen Usern Ketten angelegt werden. Da hab ich auch kein Mitleid, ich will mir meine Arbeit jedenfalls nicht tausendfach stehlen lassen! |
Re: Software vor Raubkopierer schützen
Hi,
wie Luckie schon sagte: der beste Schutz ist Freeware. Für "richtig große" Projekte, so ab 1000 Euro aufwärts, langt es IMO, die Vollversion nur auf CDs zu verschicken, also kein Onlinedownload, dann könntest du in der jeweiligen Version immer 1 Byte ändern (kannst ja einen String erstellen, den du nicht benutzt und den automatisch verändern lassen) und schon weißt du, wer das Produkt weitergegeben/raubkopiert hat, sobald es auftauchen sollte. (Ich gehe natürlich nicht davon aus, dass das Produkt so einzigartig und lebensnotwendig ist, dass es auf einmal 1000 Leute kaufen wollen ;).. Dann wird das etwas schwer mit nachprüfen). Alle anderen kleineren Projekte (Shareware, 30 Euro-Bereich) sind ja ein gefundenes Fressen für Raubkopierer, da ist ein professioneller Schutz (Starforce etc..) sinnlos bzw viel zu teuer. Und ohne solche Maßnahmen kann man die exe eben verändern, da hilft auch kein SFV-Check oder sonst was.. @chkdsk: Verschlüsselung der EXE ist sinnlos, schließlich muss der PC es ja irgendwie lesen und auf den RAM hat man bekanntlich Zugriff. Auch Teile über den Webserver auszuführen ist nicht das Gelbe vom Ei (auch wenn's sehr raffiniert ist): Sollte der Webserver mal down sein ist das Geschrei bei den Kunden groß und ein Cracker hat meist eine funktionierende (also legale) Kopie zur Hand, mit der er dann ja den Netzwerk-traffic sniffen kann und ggf reproduzieren (wenns die Anwendung wert ist, bei HL2 wird AFAIK ja auch Steam emuliert.. war sicher auch nicht wenig Aufwand). cu |
Re: Software vor Raubkopierer schützen
Ich lehne übrigens auch Programm hab die Online arbeiten und Obskure Daten schicken. Ich würde so ein Programm auch nicht weiter empfehlen.
Desweiteren stell dir mal das Anfragevolumen an den Server vor und wie zäh die Geschichte durch das Internet wird. ==> Das Programm wird höchstwahrscheinlich nicht mehr bedienbar. Sowas geht nur bei schneller Internetverbindung. Desweiteren hat mich eins die Softwareentwicklung bis jetzt gelehrt. Einen 100%-igen Schutz gibt es nicht .Verwendet nicht so viel Hirnmasse in solchen blödsinn, sondern lieber in ein gut Funktionierendes Programm. Meist sind die Programm mit dem besten Kopierschutz die schlechtesten --> werden eh nicht gekauft. ERGO: Kümmere Dich um die Funktionalität. P.S.: Übrigens schrecken mich persönlich komplizierte Registrierung-Algorithmen ab. P.S.S.: Desweiteren ist Raubkopieren in Maßen (nicht Massen) verkaufsförderlich, wie MS schon lange erkannt. |
Re: Software vor Raubkopierer schützen
Hi Neo !
ich bekomms nicht hin :-( Da muss noch irgendwas falsch dran sein, wenn ich nämlich in einer im Quelltext darüberliegenden PRocedure noch eine Zeile einfüge, dann ändert sich die (in der Tat recht einfache) Checksumme .. normalerweise dürfte doch der Compiler nicht unterschiedlichen Code in Abhängigkeit von einer PRocedure obendrüber machen, oder ?? Ist hier was falsch (ausser der fehlenden Abbruchbedingung)
Code:
function checkSum : integer;
type PBuffer = ^TBuffer; TBuffer = array[0..0] of byte; var p : PBuffer; i : integer; sum : Integer; begin p := Pointer( @Txtradeclass.Info1Click); sum := 0; i := 0; while Byte(p^) <> $C3 do begin inc(sum, Byte(p^)); inc(p); inc(i); end; showmessage(inttostr(sum)); end; // von checksum |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 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