Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
DelphiResearch

Delphi offre une meilleure protection du code source d’entreprise que WPF et Electron

wp1_ip_security_gauge

Comment Delphi, WPF .NET Framework et Electron se comparent-ils et quel est le meilleur moyen de faire une comparaison objective? Embarcadero a commandé un livre blanc pour étudier les différences entre Delphi, WPF .NET Framework et Electron pour la création d’applications de bureau Windows. L’application de référence – un clone de la calculatrice Windows 10 – a été recréée dans chaque cadre par trois bénévoles Delphi Most Valuable Professionals (MVP), un développeur WPF indépendant et un développeur indépendant d’Electron. Dans cet article de blog, nous allons explorer la métrique de sécurité IP, qui fait partie de la comparaison des fonctionnalités utilisée dans le livre blanc.

rad-studio-1042

Qu’est-ce que la sécurité IP dans une application déployable?

Dans quelle mesure la propriété intellectuelle du code source est-elle sécurisée dans un projet déployable? Une fois que les entreprises ont investi des ressources dans leurs projets, elles sont confrontées au défi de mettre leur produit entre les mains du public tout en protégeant le code et les techniques qui génèrent des revenus. Cette métrique qualitative évalue la capacité d’un utilisateur à accéder au code source via la décompilation. 

calc

La protection de la propriété intellectuelle est d’une importance fondamentale pour les plans d’activités à long terme. Si un produit résout un nouveau problème ou utilise une nouvelle technique, les développeurs doivent comprendre comment leur choix de cadre affecte la vulnérabilité IP. Les programmes Delphi se compilent en code machine natif de la plateforme plutôt qu’en code intermédiaire. La décompilation à l’aide d’outils gratuits peut récupérer le formulaire GUI, mais ne produit que du code d’assemblage pour la logique. La sécurité IP est plus fragile dans WPF. La décompilation des fichiers exécutables et de bibliothèque avec des outils gratuits se traduit par une logique métier C # reconnaissable et un texte XAML presque reconnaissable. Enfin, Electron a le problème le plus important – il donne le code source à chaque installation par défaut.Le code d’application Electron peut être récupéré avec un simple éditeur de texte – en fonction de la structure du framework – mais peut être quelque peu obscurci à l’aide d’outils tiers. Les outils de décompilation disponibles et leurs résultats lorsqu’ils sont appliqués à l’application de calcul de chaque framework sont répertoriés ci-dessous.

Le but de cet exercice de décompilation était de déterminer la faisabilité de récupérer à la fois l’interface utilisateur et le code d’origine de l’application de calcul de chaque framework à l’aide d’outils open source ou gratuits. Les cadres évalués étaient Delphi VCL, Delphi FMX, WPF (C #) et Electron (avec Angular).

Lorsque les calculatrices Delphi VCL et FMX ont été décompilées, tous les éléments de l’interface utilisateur ont été extraits avec succès et le code logique a été présenté sous forme d’assemblage. Cet exercice n’a pas extrait la structure de la fonction et de la procédure, mais cela peut être possible.

La décompilation de la calculatrice WPF a produit les éléments de l’interface utilisateur et le code C # principalement reconnaissable. Les applications WPF .NET Framework utilisent un format MSIL (Microsoft Intermediate Language) connu, facile à démonter et à décompiler. Les assemblages dépendants peuvent être facilement extraits. Les ressources peuvent être facilement extraites. .NET Reflection peut être utilisé pour extraire des informations sur un assembly .NET. L’ensemble du contenu peut être extrait, y compris les classes, les méthodes, le code et les ressources d’un assembly. Un décompilateur avancé peut reconstruire presque la structure exacte de votre code, y compris les boucles for / while, les instructions if et essayer des blocs catch. Les chaînes littérales peuvent être facilement extraites. Enfin, les appels aux méthodes et les propriétés aux assemblys externes peuvent être extraits.

Les éléments de l’interface utilisateur et le code JavaScript de la calculatrice Electron sont facilement exposés à l’aide d’un éditeur de texte standard. Le code Typescript a été transpilé en JavaScript et n’a pas pu être récupéré. Dans l’ensemble, l’emballage d’Electron a fourni un niveau très limité d’obscurcissement.

wp1_ip_security-9146666-2

Jetons un coup d’œil à chaque cadre.

Les applications Delphi peuvent-elles être décompilées?

Delphi compile en code machine natif, éliminant une grande partie de la structure du code source et des métadonnées nécessaires pour une décompilation et une interprétation précises. La décompilation à l’aide d’un outil comme DeDe fournira des détails complets sur l’interface utilisateur, mais uniquement le code d’assemblage pour la logique / le back-end.

Outils de décompilation

  • DeDe – l’un des décompilateurs Delphi les plus populaires.
  • Interactive Delphi Reconstructor – un décompilateur pour les exécutables Delphi et les bibliothèques dynamiques.
  • MiTeC DFM Editor – un éditeur autonome pour les fichiers Delphi Form (* .dfm) au format binaire et texte.
code1-9102577-2
Décompilation DeDe de Delphi VCL
calcform1-4789534-2
Vue de code GUI de l’éditeur DFM de Delphi VCL
calcform2-2620481-2
Vue de conception de l’interface utilisateur de l’éditeur DFM de Delphi VCL
code2-3165443-2
Code d’assemblage Delphi VCL généré par IDR

Les applications WPF .NET Framework peuvent-elles être décompilées?

WPF compilé dans une application de bureau Windows est converti en fichiers .dll et .baml. La décompilation vers un C # reconnaissable et un XAML presque parfait est possible grâce à des outils tiers. Microsoft inclut une édition communautaire de Dotfuscator avec Visual Studio mais sa licence est réservée à un usage personnel. Les solutions professionnelles d’obfuscation .NET vont de centaines à des milliers de dollars. Il existe également des étapes supplémentaires pour protéger une application avec un outil d’obscurcissement.

Outils de décompilation

  • WPF StylesExplorer – un décompilateur WPF .baml et un outil pour explorer les ressources .baml.
  • Snoop WPF – un outil pour espionner / parcourir l’arborescence visuelle d’une application WPF en cours d’exécution sans avoir besoin d’un débogueur.
  • JetBrains dotPeek – un décompilateur .NET et un navigateur d’assemblage.
code1-5023829-2
dotPeek Décompilation de WPF Logic
ui1-9482695-2
dotPeek Décompilation de l’interface graphique WPF
ui2-8640867-2
Décompilation Snoop WPF de l’interface graphique WPF

Les applications Electron peuvent-elles être décompilées?

Le code source électronique est conditionné et déployé sur le système de l’utilisateur final. À moins qu’un développeur n’utilise des outils tiers pour masquer le code, le code source peut être lu textuellement à l’aide d’un simple éditeur de texte ou en le décompressant avec un outil comme asar.

Outils de décompilation

  • TextPad – un éditeur de texte à usage général pour les fichiers en clair.
  • asar – un simple outil d’emballage et de décompression au format d’archive de concaténation de fichier non compressé.
code1-7271822-2
Pavé de texte affichant le code électronique électronique
ui1-7519115-2
Pavé de texte affichant le code d’interface utilisateur Electron

Dans l’ensemble, Delphi offre les perspectives à long terme les plus assurées, la meilleure sécurité de propriété intellectuelle et la personnalisation interne la plus simple au prix d’un achat de licence commerciale unique. WPF peut être décompilé facilement dans sa configuration par défaut et nécessite des étapes et des outils supplémentaires pour masquer son code. Electron peut également être décompilé facilement dans sa configuration par défaut. Cela nécessite des étapes et des outils supplémentaires pour masquer le code. Des perspectives à long terme incertaines et le fait de compter sur les commandites d’entreprises et le soutien de la communauté pour un développement supplémentaire sont préjudiciables.

Êtes-vous prêt à explorer toutes les mesures du livre blanc «À la découverte du meilleur framework de développement grâce à l’analyse comparative»?

Téléchargez le livre blanc gratuit Delphi vs WPF vs Electron pour les ordinateurs de bureau Windows


What's New for RAD Studio 11

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

À propos de l'auteur

Défenseur des développeurs en chef pour Embarcadero Technologies.
Articles Similaires
DelphiDeveloper InterviewsInterviewNouvelles

Qu'est-ce que ça fait d'être un développeur Joe C. Hecht ?

CodeNouvellesRAD Studio

Pourquoi vous devriez certainement écrire moins de code cette année

DelphiDeveloper InterviewsInterviewNouvelles

Qu'est-ce que ça fait d'être un développeur Sunil Kumar Arora ?

C++DelphiNouvellesRAD Studio

Les ordinateurs de bureau sont une puissance de productivité inégalée

Leave a Reply

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

IN THE ARTICLES