IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

isoler certaines fonctions dans du C++ pour les protéger du reverse engineering


Sujet :

Dotnet

  1. #1
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut isoler certaines fonctions dans du C++ pour les protéger du reverse engineering
    Bonjour

    Afin de protéger une partie sensible de mon programme du reverse-engineering, j'aimerais coder certaines fonctions en C++ et les compiler dans une dll non managée. Je souhaite ensuite appeler ces fonctions depuis du code C#.

    J'ai compris qu'il y a 3 méthodes possibles :


    1. Ecrire les fonctions dans une DLL WIN 32 et les appeler avec DllImport() dans le code C#.
    2. Ecrire les fonctions dans une DLL WIN 32, puis écrire une assembly C++ managée qui 'enveloppe' la DLL native win 32. Ajouter ensuite la DLL managée à mon projet C#.
    3. Ecrire les fonctions dans un composant COM et l'enregistrer avec regsvr32.exe pour pouvoir ensuite le consommer dans du code C#.


    Dans mon cas, la seule raison de déporter ces fonctions dans une DLL C++ est de protéger leurs contenus. Quelle est alors la méthode la plus appropriée?

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour maa,

    Vu que tu cherches la simplicité je te recommande la solution 1 (c'est à dire DllImport avec un wrapper C# de ta DLL native).
    Si tu cherches à échanger des objets complexes entre ton C# et ton C++, la solution 2 (C++/CLI) peut être plus intéressante.

    Par contre je ne vois pas de raison de t'e****der à faire du COM

    N'hésite pas si tu as plus de questions.

  3. #3
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    Merci pour ta réponse

    Je veux juste exécuter des fonctions côté c++ et récupérer les résultats côté c#, sans même avoir besoin de travailler sur des objets. Donc à priori je pense aussi que DllImport est la solution la plus adaptée.

    Le seul point auquel je tiens et de protéger le code source de mes fonctions. Je ne veux pas qu'elles soient écrites en .NET car alors le reverse engineering est facile même en faisant de l'obfuscation. Je me demandais alors si dans ce contexte, l'une des 3 solutions ci-dessus était préférable..

    Par ailleurs, ma question déborde peut-être un peu du sujet de cette section, mais je me demandais quels outils existent pour protéger du code c++ (obfuscation ou autre..). Je veux protéger le code source de ma DLL native le mieux possible, mais en conservant bien sûr la possibilité de l'invoquer depuis du code C#.

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/05/2008, 22h29
  2. Réponses: 10
    Dernier message: 06/07/2007, 03h54
  3. Réponses: 2
    Dernier message: 08/09/2006, 22h32
  4. [VB6]Une fonction comme Trim(), mais pour les "-"
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/04/2006, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo