Modifier Compilé .Net Exe
J'ai une application écrite en C# (sans la source bien sûr), qui doit être un peu changé. Par exemple, j'ai besoin d'arrêter à quelques lignes de code pour créer un effet inutile de menu. Donc, je pense que je devrais les mettre en commentaires.
Le code source n'est pas occulté. Je sais que je peux tout à fait décompiler, modifier, et de les compiler à nouveau, en utilisant des outils comme Réflecteur/Reflexil. Mais tout le monde sait que, ce faisant, de nombreuses parties de code ne compile pas encore! Est-il un moyen Réflecteur (ou tout autre produit) qu'une partie pourrait être désactivée/modifié sans ce processus?
Grâce.
OriginalL'auteur Delphi.Boy | 2013-08-26
Vous devez vous connecter pour publier un commentaire.
Vous pourriez vouloir essayer dnSpy. C'est un .NET de l'assemblée de l'éditeur, decompiler, et le débogueur fourche de ILSpy.
https://github.com/0xd4d/dnSpy
Wow, je suis impressionné. Cet état de fait peut recompiler modifié assemblées. Je voulais juste changé une codés en dur l'adresse de courriel (vue) et cela a fait l'affaire! Fou!
Quel genre de magie, c'est que? C'est juste parfait!
J'ai été en mesure de commenter une boucle avec ce en moins d'une minute après avoir lutté avec dotPeek extraites de sources pour une heure tenté en vain d'obtenir à la compilation.
OriginalL'auteur Milos
Si vous avez vraiment besoin de faire cela, vous pouvez décompiler avec Réflecteur (ou un produit similaire) et ensuite l'utiliser pour essayer de recréer une solution .Net qui va produire le même exécutable.
Vous risquez de rencontrer des problèmes autour de:
Ce n'est pas de mentionner le potentiel des questions juridiques liées à cela. Si l'exécutable a été publié sous une licence qui permettrait de faire cela, alors vous serait le plus susceptible d'avoir accès au code source. Donc, le fait que vous n'avez pas accès au code source implique que de faire ce que vous suggérez peut ne pas être légal.
OriginalL'auteur Yaakov Ellis
Finalement, j'ai réussi à "désactiver" quelques lignes de code dans le fichier exe compilé.
J'ai utilisé un Réflecteur avec Reflexil plugin installé. Reflexil m'a permis de modifier une instruction MSIL, puis enregistrer le résultat dans un fichier exe. Donc, il s'agit de l'apprentissage de quelques instructions MSIL, surtout le "pas de fonctionnement de la commande" (faisant une ligne de code ne fait rien). Pour voir la liste des instructions et un tutoriel, voir ici et ici.
Espère que cela aide quelqu'un d'autre.
OriginalL'auteur Delphi.Boy
par souci d'exhaustivité:
Une autre solution possible est d'utiliser la ildasm http://msdn.microsoft.com/en-US/library/f7dy01k1%28v=vs.80%29.aspx
MSIL Désassembleur, modifier le MSIL et le nourrir à ilasm.
L'utilité pratique de cette solution est, dépend, bien sûr, vous
OriginalL'auteur Samuel
Ce thread peut aider: dotnet dll décompiler et de modifier le code
Dernière fois Quand j'ai essayé avec décompiler la source à l'aide de réflexion, j'ai eu trop de compilation des questions en matière de ressources et d'autres sous-marins si la dll n'est pas occulté. Il pourrait donc y avoir des choses au-delà de simplement l'extraction de la source et le modifier afin de faire de votre nouvelle dll de travail que l'ancien.
Je vous suggère d'aller direct avec dll de la manipulation en utilisant l'une des options mentionnées dans l'autre thread.
OriginalL'auteur Krishna Sarma
Si vous avez le code source sur la même machine sur laquelle vous testez votre fichier exe, et si vous faites des changements dans votre code source dans visual studio, puis lors de la compilation il sera automatiquement prises en compte dans votre fichier exe.
Vous n'avez pas besoin de faire quelque chose de spécial pour elle. Et si elle ne l'est pas, il suffit de faire le changement dans le code et collez votre debugg dossier du nouvel exe (avec debugg dossier) sur une autre machine ayant des dernières modifications.
OriginalL'auteur C Sharper