Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Quelltext verschlüsseln/crypten (https://www.delphipraxis.net/135512-quelltext-verschluesseln-crypten.html)

suncezz 12. Jun 2009 06:27


Quelltext verschlüsseln/crypten
 
Hallo,

ist es möglich den quelltext zu verschlüssln ?

ich meine das so das der quelltext verschlüsselt ist und erst beim ausführen entschlüsselt wird und alle befehle ausgeführt werden.

bsp.:

1: decrypt -> quelltext
2: ausführen -> quelltext

danke mfg suncezz

oki 12. Jun 2009 06:30

Re: Quelltext verschlüsseln/crypten
 
Quelltext wird nicht ausgeführt, Quelltext wird compiliert. Delphi ist ein Compiler und kein Interpreter. Wozu soll das eigentlich gut sein?

Gruß oki

jfheins 12. Jun 2009 08:20

Re: Quelltext verschlüsseln/crypten
 
http://thedailywtf.com/Articles/That...-Security.aspx :mrgreen:

oki 12. Jun 2009 08:39

Re: Quelltext verschlüsseln/crypten
 
Vielleicht hab ich den Artilel auch falsch verstanden, aber so wie ich das gelesen hab geht es darum, dass Quellcode der über das Web versendet wird nicht als Klartext sondern verschlüsselt übertragen werden soll. Das scheint mir aber unabhängig vom Compiler zu sein. Im angeführten Fall werden alle SQL-Statements vor dem versenden verschlüsselt. Da es an dieser Stelle nur um die Behandlung eine pas-Datei (also einer reinen Textdatei geht), ist das sicher nicht der Hit. Es wird die Datei durch einen entsprechenden Parser gejagt, der alle SQL-Statements verschlüsselt. Auf der Gegenseite pasiert das gleiche in umgekehrter Reihenfolge. Das könnte man natürlich auch mit der ganzen Datei machen. In der IDE liegt dann wieder der lesbare Quelltext vor.

Wie gesagt, vielleicht habe ich den Artikel auch falsch gelesen, aber so habe ich es verstanden.

Gruß oki

Bernhard Geyer 12. Jun 2009 08:56

Re: Quelltext verschlüsseln/crypten
 
Wenn die Queries so eine Sicherheitsgefahr darstellen dann ist eine 2-Tier Architektur der falsche Ansatz. Dann sollte man eine n-Tier-Architektur nehmen bei der auf dem Client keinerlei SQL-Statments vorhanden sind.

oki 12. Jun 2009 09:10

Re: Quelltext verschlüsseln/crypten
 
kurze Korrektur meinerseits (Hinweis per PN von jfheins). Es geht schon um die Entschlüsselung zur Laufzeit. Dabei werden aber die verschlüsselten Strings nicht beim compilieren übersetzt, sondern zur Laufzeit durch die Methode decryptit.

Somit zurück zur Ausgangsfrage. In dem angeführten Beispiel wird nicht der Delphi-Quelltext verschlüsselt, sondern Strings. Diese können natürlich zur Laufzeit entschlüsselt werden, da der Compiler diese nicht interpretiert. Das geht natürlich auch mit allen anderen Strings die durch ein Programm an andere "Interpreter" übergeben/gesendet werden. Z.B. Java-Script etc.

Ich hab die Ausgangsfrage aber glaub ich immer noch nicht richtig verstanden. Quelltext ist bei mir der Delphi-Code und den interpretiert der Compiler. Zur Laufzeit passiert da gar nichts.

Gruß oki

jfheins 12. Jun 2009 09:21

Re: Quelltext verschlüsseln/crypten
 
Was ich (auch mit dem Link) sagen wollte, ist dass es im Grunde sinnlos ist den Quelltext zu verschlüsseln. (Es sei denn, man möchte den Nachfolger quälen oder man arbeitet z.B. in Javascript oder HTML)
Wenn ein fremder den Code bekommt, kann er ihn ja trotzdem entschlüsseln und compilieren.
(in dem Artikel wird sozusagen die Query gegen den Entwickler geschützt - was die Wartbarkeit und das Debuggen eraschweren dürfte, aber keinen Schutz gegen Injections bietet)

Damit es nicht ganz OffTopic wird: Der sog. "Compiler" verschlüsselt deinen Code bereits. Es ist nicht möglich aus der Exe Datei deinen Delphicode wieder herauszubekommen... (falls das die Frage war)

Bernhard Geyer 12. Jun 2009 09:23

Re: Quelltext verschlüsseln/crypten
 
Zitat:

Zitat von jfheins
Was ich (auch mit dem Link) sagen wollte, ist dass es im Grunde sinnlos ist den Quelltext zu verschlüsseln. (Es sei denn, man möchte den Nachfolger quälen oder man arbeitet z.B. in Javascript oder HTML)

Bei Javascript es es noch sinnloser. Für die Eingebaute JS-Verschlüsselung gibt es genügend Seiten die den Unverschlüsselten Text ausspucken und bei mitgelieferter Eigener Verschlüsselung gibt man ja auch das Hanswerkszeug zur entschlüsselung bekannt.[/quote]

oki 12. Jun 2009 09:25

Re: Quelltext verschlüsseln/crypten
 
Zitat:

Zitat von jfheins
Was ich (auch mit dem Link) sagen wollte, ist dass es im Grunde sinnlos ist den Quelltext zu verschlüsseln. (Es sei denn, man möchte den Nachfolger quälen oder man arbeitet z.B. in Javascript oder HTML)
Wenn ein fremder den Code bekommt, kann er ihn ja trotzdem entschlüsseln und compilieren.
(in dem Artikel wird sozusagen die Query gegen den Entwickler geschützt - was die Wartbarkeit und das Debuggen eraschweren dürfte, aber keinen Schutz gegen Injections bietet)

Damit es nicht ganz OffTopic wird: Der sog. "Compiler" verschlüsselt deinen Code bereits. Es ist nicht möglich aus der Exe Datei deinen Delphicode wieder herauszubekommen... (falls das die Frage war)

Schließe mich dem an.

Gruß oki

suncezz 12. Jun 2009 13:51

Re: Quelltext verschlüsseln/crypten
 
hi, thx erst mal.

da bei manchen programmen die ich gemacht habe manche vierenscanner anspringen wollte ich den quelltext crypten. z.b. hab ich einen ftp-uploader geschrieben, welcher von manchen vierenscanner als infostealer erkann wird, was es ja garnicht ist.. ---> das ist mein problem

BUG 12. Jun 2009 14:09

Re: Quelltext verschlüsseln/crypten
 
Dann wäre verschlüsseln genau die falsche Lösung: das macht dein Programm nur noch verdächtiger.

Die meisten Virenscanner haben eine Funktion um Falschmeldungen zu melden.
Nach dem nächsten Signaturupdate dürfte dein Programm dann nicht mehr gefunden werden.


MfG,
Bug

jaenicke 12. Jun 2009 14:17

Re: Quelltext verschlüsseln/crypten
 
Zitat:

Zitat von suncezz
z.b. hab ich einen ftp-uploader geschrieben, welcher von manchen vierenscanner als infostealer erkann wird, was es ja garnicht ist.. ---> das ist mein problem

Delphiprogramme werden z.B. von Antivir und eSafe recht gerne als Virus erkannt.
Und da ein FTP-Upload in Viren auch öfter mal vorkommt, kann dann so eine Falschmeldung schon mal passieren.

Provozieren tut man aber solche Fehlerkennung, wenn man da versucht was in der Exe zu verschlüsseln oder die Exe zu komprimieren. Wie gesagt, melde die Fehlalarme einfach.
Um diese zu bemerken kannst du die Datei bei Virustotal bei mehreren Scannern testen.

Fridolin Walther 12. Jun 2009 15:58

Re: Quelltext verschlüsseln/crypten
 
Zitat:

Zitat von jaenicke
Delphiprogramme werden z.B. von Antivir und eSafe recht gerne als Virus erkannt.

Kann ich beiden Produkten auch nicht verübeln, wenn man bedenkt was für ein verkorkstes PE Layout der Delphi Compiler verbricht.

suncezz 12. Jun 2009 16:25

Re: Quelltext verschlüsseln/crypten
 
verstehe ....

wenn ich mir ein paar pw-stealer angucke... die basieren ja auch auf einen ftp-upload..

Phoenix 13. Jun 2009 08:52

Re: Quelltext verschlüsseln/crypten
 
Eben. Die richtige Methode ist also wirklich die, dass Du die fertige Version Deines Programmes an die Hersteller der Antivirenprodukte schickst, die falschen Alarm auslösen. Das dauert in aller Regel maximal 2 Tage, und dann schlagen die bei Deinem Programm nicht mehr an. Wenn Du dann noch das Release um 2 Tage verzögerst landet Deine Software erst auf dem Rechner, wenn der Virenscanner schon aktualisiert ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz