Programm Freischalt Funktion?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag 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:
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Aus dem Programm den Schlüssel raus filtern und schon kann ich die INI
entschlüsseln und den Wert selber setzen.
Bild
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag 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??
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

liegt der Schlüssel beim compilieren trotzdem noch nebeneinander ;).
Kannst jetzt PB dafür hauen.
Bild
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

shit :( aber gibts es nich möglichkeiten die exe zu verschlüsseln?
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag 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.
Bild
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Ja mit UPX und dazu ein scambler oder ähnlich ;)

http://upx.sourceforge.net/



Siehe Tool von gnozal

Gruss Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
PBZecke
Beiträge: 399
Registriert: 02.09.2004 17:34

Beitrag 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!
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... :lol:
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag 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
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag 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.
Antworten