Seite 2 von 4
Verfasst: 01.07.2006 11:50
von roherter
wenn ich aber mein programm abfragen lasse zb. ob in der desksettings.ini
das prog freigeschaltet ist (diese datei ist verschlüsselt mit RC4) dürfte es nicht so einfach sein, muss nur noch schauen wie die abfrage dann sicher gestalte

Verfasst: 01.07.2006 11:52
von MVXA
Aus dem Programm den Schlüssel raus filtern und schon kann ich die INI
entschlüsseln und den Wert selber setzen.
Verfasst: 01.07.2006 11:57
von roherter
Ja du schon aber es sind halt nicht alle so bewandert oder glaubst du das würde jeder hinbekommen,
was ist wenn ich den schlüssel zerstückel:
zb. so:
Code: Alles auswählen
sc1.s="dzd"
ab1.s="hdhh"
usw...
und den schlüssel erst bei benutzung wieder zusammensetze??
Verfasst: 01.07.2006 12:02
von MVXA
liegt der Schlüssel beim compilieren trotzdem noch nebeneinander

.
Kannst jetzt PB dafür hauen.
Verfasst: 01.07.2006 12:04
von roherter
shit

aber gibts es nich möglichkeiten die exe zu verschlüsseln?
Verfasst: 01.07.2006 13:01
von MVXA
Nein. Es gibt eben keine sichere Methode um ein Programm abzusichern.
Die einzige Möglichkeit wäre, Funktionen in eine DLL zu exportieren und
diese dann zu personalisieren.
Verfasst: 01.07.2006 13:16
von Falko
Ja mit UPX und dazu ein scambler oder ähnlich
http://upx.sourceforge.net/
Siehe Tool von gnozal
Gruss Falko
Verfasst: 01.07.2006 14:15
von PBZecke
Alles verschlüsseln bringt nichts, denn es ist nicht Dein Anwender der Dein
Programm cracken wird, sondern die Leute die gar nichts anderes machen
als sich mit dieser Materie zu beschäftigen! Wenn er das dann geschafft hat
stellt er es ins Netz, und dann erst gewinnst Du neue Anwender die das dann
Gratis benutzen!
Mach es so wie ich es Dir in diesem Thread vorgeschlagen habe:
http://www.purebasic.fr/german/viewtopic.php?t=8785 Wo nichts zu cracken
ist, kann man auch nichts cracken!
Verfasst: 02.07.2006 12:44
von mk-soft
Vielleicht ist das ein Ansatz um einen PC bezogenen Freischaltcode anzufordern
Code: Alles auswählen
Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s)
hKey.l=0
keyvalue.s=Space(255)
datasize.l=255
If RegOpenKeyEx_(OpenKey,SubKey,0,#KEY_READ,@hKey)
keyvalue="Error Opening Key"
Else
If RegQueryValueEx_(hKey,ValueName,0,0,@keyvalue,@datasize)
keyvalue="Error Reading key"
Else
keyvalue=Left(keyvalue,datasize-1)
EndIf
RegCloseKey_(hKey)
EndIf
ProcedureReturn keyvalue
EndProcedure
Select OSVersion()
Case #PB_OS_Windows_XP
key.s=ReadRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows\Currentversion","ProductId")
Case #PB_OS_Windows_NT3_51
Case #PB_OS_Windows_95
Case #PB_OS_Windows_NT_4
Case #PB_OS_Windows_98
Case #PB_OS_Windows_ME
Case #PB_OS_Windows_2000
Case #PB_OS_Windows_XP
Case #PB_OS_Windows_Server_2003
EndSelect
anfragecode.s = Space(1000)
freischaltcode.s = UCase(MD5Fingerprint(@key, Len(key)))
Base64Encoder(@key, Len(key), @anfragecode, 1000)
Debug "useranfragecode " + anfragecode
Debug "freischaltcode " + freischaltcode
authoranfagecode.s = Space(1000)
Base64Decoder(@anfragecode, Len(anfragecode), @authoranfagecode, 1000)
Debug "authoranfagecode " + authoranfagecode
Verfasst: 02.07.2006 14:32
von Joel
Machs doch einfach so: Wie das Windows beim Anmelden macht! Es wird ein Code eingegeben der wird total oft umgewandelt bis eraus sehr vielen zeichen besteht dann wird immer der 1. und letzt buchstabe abgeschnitten und wieder andere zeichen draus gemacht, und so immer weiter abschneiden und andere zeichen abschneiden...
Dann wenn zb. 34 Zeichen übbgig sind vergleicht der das mit dem richtigen Code den du wie oben umgewandelt und in ein Dll gepackt hast. Wenn der Code richtig ist gehts weiter wenn net, Fehlermeldung!
Und dass beste man kann die zeichen nicht zurückverfolgen also wieder daraus das ursprungswort machen weilman ja nicht weiß welche ersten und letzten Buchstaben abgeschnitten wurden!
Ob Windows dass so macht bin ich mir nicht sicher, aber ist ja ne gute Idee.