Zum Thema Reverse Engeneering:
Ein Passwort zu verschlüsseln und im Programm abzulegen ist ziemlich sinnfrei. Um das rauszubekommen muss man weder Kryptologe sein, noch den Verschlüsslungsalgorythmus kennen. Lässt sich mit nem Debugger wunderbar vom Speicher abgreifen. Man muss nur die richtige Stelle für den Breakpoint finden. Das ist aber in den meisten Fällen eine Sache von Minuten. Also ich meine, man liest das Passwort direkt nach der Entschlüsslung aus dem Speicher aus.
Verschlüsselung (AES etc.) für PB 4
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Passwort gehört niemals in die Exe! Dann kann man sich die Verschlüsselung
sparen
Evtl. einen MD5Fingerprint, um die Eingabe zu überprüfen, bevor man
Datenmüll entschlüsselt und der PC abstürzt. Aber auch nur, wenns nicht
anders geht.
sparen
Evtl. einen MD5Fingerprint, um die Eingabe zu überprüfen, bevor man
Datenmüll entschlüsselt und der PC abstürzt. Aber auch nur, wenns nicht
anders geht.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Rrrrichtig! Ich speichere es deshalb immer in der INI zur EXE ab.Passwort gehört niemals in die Exe! Dann kann man sich die Verschlüsselung sparen
Aber im Ernst, irgendwo muss ich doch das Passwort hinterlegen und das Programm darauf zugreifen. Also steht es auch irgendwann mal in Speicher und kann ausgelesen werden. Ist also nur eine Frage, wieviel Energie jemand dransetzt, das Passwort zu bekommen...
Sven
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Entweder Du mutest dem Benutzer es zu, das Passwort jedesmal einzugeben,
oder nach erfolgreicher Eingabe einfach als Fingerprint in der Registry
speichern (ohne Passwort für den Fingerprint in der Exe )
Es kommt immer drauf an, was vor wem geschützt wird. Sein eigenes
FTP-Passwort in der Exe verschlüsseln, damit das Programm drauf zugreifen
kann, ohne das der Benutzer dieses kennt ist ziemlich blödsinnig.
Freischaltcode für ne Shareware kann man versteckt speichern, oder so
gestalten, das der gespeicherte Code zum entschlüsseln nicht nütze ist
oder nach erfolgreicher Eingabe einfach als Fingerprint in der Registry
speichern (ohne Passwort für den Fingerprint in der Exe )
Es kommt immer drauf an, was vor wem geschützt wird. Sein eigenes
FTP-Passwort in der Exe verschlüsseln, damit das Programm drauf zugreifen
kann, ohne das der Benutzer dieses kennt ist ziemlich blödsinnig.
Freischaltcode für ne Shareware kann man versteckt speichern, oder so
gestalten, das der gespeicherte Code zum entschlüsseln nicht nütze ist
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
- Thorsten1867
- Beiträge: 1359
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
Ein bisschen handlicher:
Code: Alles auswählen
Procedure EnCryptAES(InFile.s, OutFile.s, Password.s)
If OpenLibrary(0,"aes.dll")
Erge.l = GetFunction(0, "AES_Crypt_File")
key.s = MD5Fingerprint(@Password, 4)
CallFunctionFast(Erge, 0, InFile, OutFile, key, 8192*2)
CloseLibrary(0)
DeleteFile(InFile+".pack")
EndIf
EndProcedure
Procedure DeCryptAES(InFile.s, OutFile.s, Password.s)
If OpenLibrary(0,"aes.dll")
Erge.l = GetFunction(0, "AES_Crypt_File")
key.s = MD5Fingerprint(@Password, 4)
CallFunctionFast(Erge,1, InFile, OutFile, key, 8192*2)
CloseLibrary(0)
DeleteFile(OutFile)
RenameFile(OutFile + ".dec", OutFile)
EndIf
EndProcedure