Seite 3 von 3

Verfasst: 04.08.2006 19:48
von Thorium
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.

Verfasst: 04.08.2006 19:57
von ts-soft
Passwort gehört niemals in die Exe! Dann kann man sich die Verschlüsselung
sparen :mrgreen:

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.

Verfasst: 05.08.2006 14:03
von Sven
Passwort gehört niemals in die Exe! Dann kann man sich die Verschlüsselung sparen
Rrrrichtig! Ich speichere es deshalb immer in der INI zur EXE ab. ;-)

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

Verfasst: 05.08.2006 16:57
von ts-soft
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 :lol: )

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

Verfasst: 30.09.2006 21:20
von Thorsten1867
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

Verfasst: 03.12.2007 21:31
von m0
hi! die AES.dll is ja geil, nur würde mich intressieren mit wieviel bit da verschlüsselt wird, und was für schlüsseltypen übergeben werden können.

danke!!

m0