Exemplo n.º 1
0
        /// <summary>
        /// Deobfuscates a stack frame.
        /// </summary>
        /// <param name="module">The name of the module to look up.</param>
        /// <param name="typeName">The full name of the type of the method to look up.</param>
        /// <param name="methodName">The name of the method to look up.</param>
        /// <param name="signature">The signature of the method.</param>
        /// <param name="token">The metadata token of the method.</param>
        /// <param name="originalName">The deobfuscated method name.</param>
        /// <param name="originalNameWithSignature">The deobfuscated method name with signature.</param>
        /// <param name="originalToken">The original metadata token of the method.</param>
        /// <returns>true if the item was found; otherwise, false.</returns>
        public bool Deobfuscate(
            string module,
            string typeName,
            string methodName,
            string signature,
            int token,
            out string originalName,
            out string originalNameWithSignature,
            out int originalToken)
        {
            if (deobfuscatorImpl != null)
            {
                return(deobfuscatorImpl.Deobfuscate(
                           module,
                           typeName,
                           methodName,
                           signature,
                           token,
                           out originalName,
                           out originalNameWithSignature,
                           out originalToken));
            }

            // Haven't checked the IsLoaded property before?
            // No deobfuscator loaded
            originalName = null;
            originalNameWithSignature = null;
            originalToken             = 0;
            return(false);
        }