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 :wink:

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.