示例#1
0
        void initializeFlags()
        {
            if (!isV32OrLater)
            {
                rldFlag   = 0x40000000;
                bytesFlag = 0x80000000;
                return;
            }

            var instrs = stringMethod.Body.Instructions;

            for (int i = 0; i < instrs.Count; i++)
            {
                var ldci4 = instrs[i];
                if (!stringMethodConsts.isLoadConstantInt32(ldci4))
                {
                    continue;
                }
                int index = i, tmp;
                if (!stringMethodConsts.getInt32(ref index, out tmp) || !isFlagsMask(tmp))
                {
                    continue;
                }
                if (findFlags(i))
                {
                    return;
                }
            }

            throw new ApplicationException("Could not find string decrypter flags");
        }