2017-10-06 8 views
0

Nous exécutons l'application .NET avec des références à My.Computer dans un obfuscar dll obfuscated. Il semble que ces références lèvent une exception lors de l'exécution. Par exemple:Obfuscar .NET Obfuscation Breaks Références à My.Computer

code:

Dim str As String = My.Computer.Name 

Message:

The type initializer for 'a.aa' threw an exception. 

Exception interne:

System.MissingFieldException: Field not found: 'a`1.W'. 
    at a.aa.a`1..ctor() 
    at a.aa..cctor() 

A partir de ces messages d'erreur, il ressemble à Obfuscar est Dissimuler la référence à My.Computer.Name . (. NET Reflector montre aa.A.Name.) Je ne suis pas sûr de savoir ce que cela a de sens, car c'est une référence "externe". Utiliser une manière différente d'obtenir le nom de l'ordinateur semble fonctionner, mais nous avons beaucoup de références à My.Computer dans notre code, et il serait bon de comprendre comment obtenir Obfuscar de ne pas les casser, plutôt que avoir à marcher sur la pointe des pieds autour d'eux.

Je pense que je suis à la recherche d'une entrée XML Obfuscar pour ignorer ces références, sauf si quelqu'un a de meilleures idées.

Répondre

1

Dans le cas où quelqu'un trouve, notre solution est de mettre le drapeau suivant false:

<Var name="HidePrivateApi" value="false" /> 

Cela réduit évidemment une partie de la sécurité de l'obscurcissement, mais il a résolu notre problème pour l'instant.

+0

Je vais le remettre en question parce que, si souvent, OPs ajouter un commentaire qu'ils ont résolu le problème sans expliquer pourquoi, et le poste devient inutile et perdre du temps. Merci. –

+0

Merci pour les commentaires positifs! – PerpetualStudent