Domanda

Come potrei proteggere la mia applicazione Delphi di essere decompilato? So che ci sono alcuni software come Themida che penso lo farà, ma poi l'exe protetta scattare l'antivirus.

È stato utile?

Soluzione

Dipende da quello che il vostro obiettivo è.
Se è davvero solo proteggere la fonte, è già fatto! A patto di non includere debug e simboli di informazione e aggiungere un po 'messa in linea pesante, buona fortuna per ricostruire un codice Pascal utilizzabile da smontare l'exe.
Se si tratta di impedire alle persone di vedere come funziona e sfruttarla, allora è necessario includere una certa protezione anti-smontare. E 'più difficile ma fattibile. Spesso fatto come una garanzia di protezione anti-pirateria.

Altri suggerimenti

Tutto ciò che una CPU in grado di leggere, può anche essere "decompilato", quindi non c'è massima sicurezza. Ma di solito è abbastanza difficile da decompilare il codice Delphi compilato, e quasi tutte le identificatori e tutti i commenti sono più, naturalmente.

Le parti pubblicate delle classi, il file DFM informazioni e costanti (tra cui le costanti di stringa) sono presenti nel file exe, in modo facilmente leggibile. È possibile ridurre questo problema mediante la crittografia le stringhe e che non utilizzano pubblicato e non utilizzare i file DFM. Tuttavia, tutte le informazioni sarà ancora presente nel file exe, così spesso questo sarà solo il duro lavoro che non dà vera sicurezza.

Se si desidera solo parti del codice sorgente per essere difficile da leggere, rendere i vostri algoritmi difficile ...

Alla fine, tutto ciò che può essere violato. L'unico vero modo per evitare la vostra applicazione di essere decompilato, è quello di mantenere il file exe lontano da quelli che possono farlo, come quando si distribuisce sul proprio server, ma non sul server del cliente.

Se stai usando Delphi Prism poi uno dei tanti strumenti di decompilazione .Net lo renderà un compito banale per ottenere l'accesso a (una forma) del codice sorgente.

L'unica soluzione è quella di utilizzare uno dei numerosi strumenti di offuscamento NET. Purtroppo non posso fare una raccomandazione come non ho mai dovuto usare uno, ma Google dovrebbe mostrare la strada ...

Se si compila per nativo Win32 quindi qualsiasi forma di offuscamento, o addirittura meccanismo anti-debugging, è praticamente uno spreco di tempo. Ci sono persone là fuori che possono leggere il montaggio facilmente come voi o io leggere la nostra lingua madre. Queste cose solo rallentare il processo di reverse engineering giù un po '(e solo a malapena a quello).

Alcuni anni fa, ho dovuto riscrivere un'applicazione, quello abbandonato dal suo sviluppatore.

posso recuperare tutte le cose da DFM-s, moduli (con componenti) stringhe query memorizzata in TxyzQueries, bitmap da liste di immagini, alcune stringhe con decompilatore, ma la logica dell'applicazione non possono essere recuperati, solo i nomi di metodo con sorgente asm all'interno.

Ci sono caricatori (come UPX http://upx.sourceforge.net ), quello estratti criptato, applicazione compressa per la memoria e lo carica sulla partenza, ma il AV segna spesso tali applicazioni come infetti. : (

È possibile scrivere una piccola applicazione del genere, alcuni consigli:

www.codeproject.com/KB/cs/LoadExeIntoAssembly.aspx (.net)  www.joachim-bauch.de/tutorials/load_dll_memory.html (per dll-s)

Solo applicazioni protette con rubati le chiavi Themida dovrebbe attivare un antivirus (Win32.Black rilevato da Kaspersky per esempio).

In generale, non si può davvero proteggere il codice da decompilazione. Tuttavia, utilizzando uno strumento come codice Virtualizer è possibile proteggere aree chiave, come ad esempio la vostra installazione codice decoder. Il codice che viene virtualizzato è molto più lento, e ha alcune restrizioni, ma aggiunge un ostacolo adatto alla casuale hacker guai. Questo è fatto meglio in uno script di build in modo che sia costantemente aggiunto per il rilascio - in questo modo si assicura una protezione adeguata ogni volta.

Mi consiglia di separare il codice di installazione dalla protezione BTW, in modo che è possibile passare la protezione in qualsiasi momento, senza preoccuparsi di utenti esistenti.

Infine, le forme di Delphi sono facilmente accessibili, ma non sono generalmente utili per cambiare.

Una smontaggio completo non viene mai raggiunta Credo che per piattaforma nativa Win. Se non si include i simboli di debug, ecc durante la fase di compilazione o nascondere questi utilizzando qualche strumento, è molto improbabile che il vostro exe potrebbe essere decodificato. Nessuna idea su cosa .NET.

Un modo semplice per proteggere il file eseguibile è di lanciarlo come applicazione web su un server Internet. Con Delphi e un Ajax libreria (ad esempio ExtJS oltre extpascal , o IntraWeb / VCL per il Web), è possibile convertire le applicazioni desktop e client / server per applicazioni web. (esempi) - questo rende anche disponibile l'applicazione per altri sistemi operativi e mobili dispositivi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top