Question

Comment pourrais-je protéger mon application delphi d'être décompilé? Je sais qu'il ya certains logiciels comme Themida que je pense va le faire mais l'exe protégé déclenche l'antivirus.

Était-ce utile?

La solution

Cela dépend de ce que votre objectif est.
Si elle est vraiment juste protéger la source, il est déjà fait! A condition de ne pas inclure des informations de débogage et des symboles et ajouter un peu inline lourd, bonne chance de reconstruire un code Pascal utilisable à partir de désassemblage l'exe.
Si elle est d'empêcher les gens de voir comment il fonctionne et pirater, alors vous devez inclure une protection anti-désassembler. Il est plus difficile, mais faisable. Souvent, fait comme une garantie de protection contre le piratage.

Autres conseils

Tout ce qu'un processeur peut lire, peut aussi être « décompilé », donc il n'y a pas de sécurité ultime. Mais généralement, il est assez difficile à décompiler le code compilé Delphi, et presque tous les identifiants et tous les commentaires sont partis, bien sûr.

Les parties publiées de cours, fichier DFM informations et constantes (y compris les constantes de chaîne) sont présents dans le fichier exe, d'une manière facilement lisible. Vous pouvez réduire ce problème en cryptant vos chaînes et non publiées en utilisant et ne pas utiliser les fichiers DFM. Cependant, toutes les informations sera toujours présent dans votre fichier exe, si souvent ce sera juste être un travail difficile qui ne donne aucune sécurité réelle.

Si vous voulez juste les parties de votre code source pour être difficile à lire, faire vos algorithmes difficiles ...

En fin de compte, tout peut être piraté. La seule façon d'éviter que votre application d'être décompilé, est de garder le fichier exe loin de ceux qui peuvent le faire, comme lorsque vous déployez sur votre propre serveur, mais pas sur le serveur du client.

Si vous utilisez Delphi Prism alors l'un des nombreux outils .Net de décompilation fera une tâche triviale d'avoir accès à (une forme) de votre code source.

La seule solution est d'utiliser l'un des nombreux outils d'obscurcissement .Net. Malheureusement, je ne peux pas faire une recommandation que je ne l'ai jamais eu à utiliser un, mais Google devrait vous montrer le chemin ...

Si vous compilez à Win32 natif alors toute forme de faux-fuyants, ou même mécanisme anti-débogage, est à peu près une perte de temps. Il y a des gens là-bas qui peuvent lire l'assemblage aussi facilement que vous ou je lu notre langue maternelle. Ces choses ne font que ralentir le processus d'ingénierie inverse quelque peu (et à peine à cela).

Il y a quelques années, j'ai dû réécrire une application, ce qui a abandonné par son développeur.

Je peux récupérer toutes les choses de DFM-s, formulaires (avec des composants) des chaînes de requête stockées dans TxyzQueries, bitmaps à partir de listes d'images, certaines chaînes avec decompiler, mais la logique d'application ne peuvent pas être récupérés, seuls les noms de méthode avec la source asm à l'intérieur.

Il y a des chargeurs (comme UPX http://upx.sourceforge.net ), ce que des extraits crypted, l'application compressée à la mémoire et la charge au démarrage, mais marque souvent de l'AV de telles applications comme infecté. : (

Vous pouvez écrire une petite application comme ça, quelques conseils:

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

Seules les applications protégées avec volés clés Themida devrait déclencher un antivirus (Win32.Black détecté par Kaspersky, par exemple).

En général, vous ne pouvez pas vraiment protéger votre code de décompilation. Cependant, à l'aide d'un outil tel que code Virtualizer vous pouvez protéger des domaines clés tels que votre installation décodeur de code. Le code qui est virtualisé est beaucoup plus lent, et a certaines restrictions, mais il ajoute un obstacle approprié à la peine des pirates occasionnels. Il est préférable de faire dans un script de construction de sorte qu'il est toujours ajouté à la libération - de cette façon vous assurer une protection adéquate à chaque fois.

Je recommande la séparation du code d'installation de la protection BTW, de sorte que vous pouvez passer une protection à tout moment sans se soucier des utilisateurs existants.

Enfin, les formes Delphi sont facilement accessibles, mais ils ne sont généralement pas utile de changer.

Un démontage complet est jamais atteint, je pense que pour la plate-forme native Win. Si vous ne pas inclure les symboles de débogage etc lors de la compilation ou de masquer ces utilisant certains outils, il est très peu probable que votre exe pourrait être décodé. Aucune idée de chose .NET.

Un moyen facile de protéger l'exécutable est de fonctionner comme une application Web sur un serveur Internet. Avec Delphi et Ajax bibliothèque (par exemple ExtJS sur extpascal ou IntraWeb / VCL pour le Web), il est possible de convertir des applications de bureau et client / serveur aux applications Web. (exemples) - ce qui rend également l'application disponible pour d'autres systèmes d'exploitation et mobiles périphériques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top