2017-05-10 4 views
0

Si je lis correctement, (https://github.com/Microsoft/microsoft-pdb), les pdb contiennent des informations de débogage. Si vous en distribuiez un au client à côté de l'exe, cela imposerait-il un risque que les clients ou les utilisateurs finaux puissent trouver le code source?Est-il sûr d'avoir un pdb avec les exe?

Je penserais probablement que c'est possible si vous attachez un Visual Studio au processus, je ne me suis pas essayé mais je suis assez sûr que vous n'auriez pas besoin du code source quelque part empaqueté pour utiliser le pdb pour voir les points d'entrée et éventuellement l'itinéraire entier que certaines données auraient pris.

Si oui, existe-t-il un moyen d'empêcher l'utilisateur final d'empêcher cela?

Répondre

1

Vous n'avez aucun moyen d'empêcher un utilisateur de savoir ce que votre programme fait, si l'utilisateur a suffisamment de connaissances.

Même sans les PDB, une technique appelée reverse engineering pourrait être utilisée pour déterminer ce que fait votre programme. Des programmes comme IDA Pro sont vraiment bons. Les langages de programmation comme C# et Java qui utilisent un langage intermédiaire sont presque livrés dans le code source. Des outils comme dotPeek peuvent afficher le code source décompilé et c'est incroyable à quel point il est proche du vrai code source. En ce qui concerne les PDB, il existe des PDB publics et des PDB privés. En ce qui concerne les PDB, il existe des PDB publics et des PDB privés. Vous donneriez généralement les PDB publics au public (comme son nom l'indique) et conserveriez les PDB privés à des fins de débogage interne. Il est possible de convertir des PDB privés (qui convertissent plus d'informations) en PDB publics à l'aide d'un outil appelé PDBCopy (utilisez le paramètre -p).

Personnellement, je ne m'inquiéterais pas trop de donner des PDB publics. Même Microsoft le fait pour Windows.

0

pdb ne contenant pas le code source. il contient les noms des symboles (fonctions, classe, variables globales) et des informations sur les noms/lignes des fichiers sources (comment convertir RVA en fichier/ligne). donc pdb ne donne pas à l'utilisateur votre code source, mais donnez les noms de vos fichiers source avec le chemin complet dans votre système de fichiers et tous les noms de symboles internes