From 236b15992b7f2225dde1ba624ff43cded5047526 Mon Sep 17 00:00:00 2001 From: Lex Li Date: Wed, 3 Sep 2014 21:48:58 +0800 Subject: [PATCH] Fixed #17. --- Obfuscar/Obfuscator.cs | 4 ++ Tests/ObfuscarTests.csproj | 1 + Tests/PortableTests.cs | 72 +++++++++++++++++++++++++++++++ Tests/SharpSnmpLib.Portable.dll | Bin 0 -> 62464 bytes ThirdParty/SharedAssemblyInfo.cs | 4 +- 5 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 Tests/PortableTests.cs create mode 100644 Tests/SharpSnmpLib.Portable.dll diff --git a/Obfuscar/Obfuscator.cs b/Obfuscar/Obfuscator.cs index 27f37c6..b022274 100644 --- a/Obfuscar/Obfuscator.cs +++ b/Obfuscar/Obfuscator.cs @@ -1287,6 +1287,10 @@ public void PostProcessing () var module = info.Definition.MainModule; var attribute = new TypeReference ("System.Runtime.CompilerServices", "SuppressIldasmAttribute", module, module.TypeSystem.Corlib).Resolve (); + var reference = module.TypeSystem.Corlib as AssemblyNameReference; + if (attribute.Module.Assembly.FullName != reference.FullName) + return; + CustomAttribute found = null; foreach (CustomAttribute existing in module.CustomAttributes) { diff --git a/Tests/ObfuscarTests.csproj b/Tests/ObfuscarTests.csproj index bcac4f4..1e9eb64 100644 --- a/Tests/ObfuscarTests.csproj +++ b/Tests/ObfuscarTests.csproj @@ -69,6 +69,7 @@ + diff --git a/Tests/PortableTests.cs b/Tests/PortableTests.cs new file mode 100644 index 0000000..0222912 --- /dev/null +++ b/Tests/PortableTests.cs @@ -0,0 +1,72 @@ +#region Copyright (c) 2007 Ryan Williams +/// +/// Copyright (c) 2007 Ryan Williams +/// +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +#endregion + +using System; +using System.IO; +using System.Collections.Generic; +using System.Text; +using System.CodeDom.Compiler; + +using NUnit.Framework; +using Mono.Cecil; +using Obfuscar; +using System.Linq; + +namespace ObfuscarTests +{ + [TestFixture] + public class PortableTests + { + [Test] + public void CheckPortable() + { + string xml = string.Format( + @"" + + @"" + + @"" + + @"" + + @"" + + @"" + + @"" + + @"", TestHelper.InputPath, TestHelper.OutputPath); + + TestHelper.CleanInput(); + + // build it with the keyfile option (embeds the public key, and signs the assembly) + File.Copy(Path.Combine(TestHelper.InputPath, @"..\SharpSnmpLib.Portable.dll"), Path.Combine(TestHelper.InputPath, "SharpSnmpLib.Portable.dll")); + + var map = TestHelper.Obfuscate(xml).Mapping; + + AssemblyDefinition inAssmDef = AssemblyDefinition.ReadAssembly( + Path.Combine(TestHelper.InputPath, "SharpSnmpLib.Portable.dll")); + + AssemblyDefinition outAssmDef = AssemblyDefinition.ReadAssembly( + Path.Combine(TestHelper.OutputPath, "SharpSnmpLib.Portable.dll")); + + var corlibs = outAssmDef.MainModule.AssemblyReferences.Where(reference => reference.Name == "mscorlib"); + Assert.AreEqual(1, corlibs.Count()); + Assert.AreEqual("2.0.5.0", corlibs.First().Version.ToString()); + } + } +} diff --git a/Tests/SharpSnmpLib.Portable.dll b/Tests/SharpSnmpLib.Portable.dll new file mode 100644 index 0000000000000000000000000000000000000000..04a12d154b169866ebab2b40a9cbfb22e8df445c GIT binary patch literal 62464 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 literal 0 HcmV?d00001 diff --git a/ThirdParty/SharedAssemblyInfo.cs b/ThirdParty/SharedAssemblyInfo.cs index 4f952fb..c26bc7c 100644 --- a/ThirdParty/SharedAssemblyInfo.cs +++ b/ThirdParty/SharedAssemblyInfo.cs @@ -7,8 +7,8 @@ // You can specify all the values or you can use the default the Revision and // Build Numbers by using the '*' as shown below: -[assembly: AssemblyVersion("2.0.010629.00")] +[assembly: AssemblyVersion("2.0.010903.03")] [assembly: AssemblyProduct("Obfuscar 2.0 RC")] #if (!CF) -[assembly: AssemblyFileVersion("2.0.010629.00")] +[assembly: AssemblyFileVersion("2.0.010903.03")] #endif