Ejemplo n.º 1
0
        // Token: 0x06000240 RID: 576 RVA: 0x00051A54 File Offset: 0x0004FC54
        internal static int Method_1(string string_0, int int_0, Stream resources)
        {
            List <double> list = new List <double>();

            foreach (string s in string_0.Split(new char[]
            {
                ','
            }))
            {
                list.Add(double.Parse(s, CultureInfo.InvariantCulture));
            }
            if (Class_0.Field_0 == null)
            {
                Class_0.Method_2(resources);
            }
            Class_0.Class_2 class_ = Class_0.Method_6(Class_0.Field_0, list, -1.0, 0.0);
            class_.Field_0.Add((double)int_0);
            return((int)Class_0.Method_7(class_).Field_6);
        }
Ejemplo n.º 2
0
        // Token: 0x06000246 RID: 582 RVA: 0x00051BEC File Offset: 0x0004FDEC
        internal static Class_0.Class_2 Method_7(Class_0.Class_2 class_2_0)
        {
            bool flag = false;

            while (!flag)
            {
                List <double> field_ = class_2_0.Field_1;
                double        num    = class_2_0.Field_3 + 1.0;
                class_2_0.Field_3 = num;
                double num2 = field_[(int)num];
                if (num2 == class_2_0.Field_7.Field_0)
                {
                    double num3 = Class_0.Method_3(class_2_0);
                    double num4 = Class_0.Method_3(class_2_0);
                    Class_0.Method_4(class_2_0, num4 + num3);
                }
                else if (num2 != class_2_0.Field_7.Field_23)
                {
                    if (num2 == class_2_0.Field_7.Field_1)
                    {
                        double num3 = Class_0.Method_3(class_2_0);
                        double num4 = Class_0.Method_3(class_2_0);
                        Class_0.Method_4(class_2_0, num4 - num3);
                    }
                    else if (num2 == class_2_0.Field_7.Field_2)
                    {
                        double num3 = Class_0.Method_3(class_2_0);
                        double num4 = Class_0.Method_3(class_2_0);
                        Class_0.Method_4(class_2_0, num4 + num3);
                    }
                    else if (num2 == class_2_0.Field_7.Field_3)
                    {
                        double num3 = Class_0.Method_3(class_2_0);
                        double num4 = Class_0.Method_3(class_2_0);
                        Class_0.Method_4(class_2_0, num4 / num3);
                    }
                    else if (num2 == class_2_0.Field_7.Field_4)
                    {
                        double num3 = Class_0.Method_5(class_2_0);
                        double num4 = Class_0.Method_3(class_2_0);
                        Class_0.Method_4(class_2_0, (double)((num4 < num3) ? 1 : 0));
                        class_2_0.Field_3 += 1.0;
                    }
                    else if (num2 == class_2_0.Field_7.Field_5)
                    {
                        double num3 = Class_0.Method_5(class_2_0);
                        double num4 = Class_0.Method_3(class_2_0);
                        Class_0.Method_4(class_2_0, (double)((num4 > num3) ? 1 : 0));
                        class_2_0.Field_3 += 1.0;
                    }
                    else if (num2 == class_2_0.Field_7.Field_6)
                    {
                        double num3 = Class_0.Method_5(class_2_0);
                        if (num3 == class_2_0.Field_7.Field_17)
                        {
                            num3 = class_2_0.Field_0[0];
                        }
                        double num4 = Class_0.Method_3(class_2_0);
                        Class_0.Method_4(class_2_0, (double)(num4.Equals(num3) ? 1 : 0));
                        class_2_0.Field_3 += 1.0;
                    }
                    else if (num2 == class_2_0.Field_7.Field_7)
                    {
                        class_2_0.Field_3 = Class_0.Method_5(class_2_0);
                    }
                    else if (num2 == class_2_0.Field_7.Field_8)
                    {
                        double field_2 = Class_0.Method_5(class_2_0);
                        if (Class_0.Method_3(class_2_0) == 1.0)
                        {
                            class_2_0.Field_3 = field_2;
                        }
                        class_2_0.Field_3 += 1.0;
                    }
                    else if (num2 == class_2_0.Field_7.Field_9)
                    {
                        double field_2 = Class_0.Method_5(class_2_0);
                        if (Class_0.Method_3(class_2_0) == 0.0)
                        {
                            class_2_0.Field_3 = field_2;
                        }
                        else
                        {
                            class_2_0.Field_3 += 1.0;
                        }
                    }
                    else if (num2 == class_2_0.Field_7.Field_10)
                    {
                        double num5 = Class_0.Method_5(class_2_0);
                        if (num5 == class_2_0.Field_7.Field_17)
                        {
                            num5 = class_2_0.Field_0[0];
                        }
                        Class_0.Method_4(class_2_0, num5);
                        class_2_0.Field_3 += 1.0;
                    }
                    else if (num2 == class_2_0.Field_7.Field_11)
                    {
                        class_2_0.Field_2.Remove(class_2_0.Field_2[class_2_0.Field_2.Count - 1]);
                    }
                    else if (num2 == class_2_0.Field_7.Field_12)
                    {
                        class_2_0.Field_6 = Class_0.Method_3(class_2_0);
                        flag = true;
                    }
                    else if (num2 == class_2_0.Field_7.Field_13)
                    {
                        double num5 = class_2_0.Field_2[class_2_0.Field_2.Count - 1];
                        class_2_0.Field_0.Insert(0, num5);
                    }
                    else if (num2 == class_2_0.Field_7.Field_14)
                    {
                        double num5 = Class_0.Method_5(class_2_0);
                        class_2_0.Field_0.Insert(1, num5);
                    }
                    else if (num2 == class_2_0.Field_7.Field_15)
                    {
                        double num5 = Class_0.Method_5(class_2_0);
                        class_2_0.Field_0.Insert(2, num5);
                    }
                    else if (num2 == class_2_0.Field_7.Field_16)
                    {
                        double num5 = Class_0.Method_5(class_2_0);
                        class_2_0.Field_0.Insert(3, num5);
                    }
                    else if (num2 == class_2_0.Field_7.Field_17)
                    {
                        double num5 = class_2_0.Field_0[0];
                        Class_0.Method_4(class_2_0, num5);
                    }
                    else if (num2 == class_2_0.Field_7.Field_18)
                    {
                        double num5 = class_2_0.Field_0[1];
                        Class_0.Method_4(class_2_0, num5);
                    }
                    else if (num2 == class_2_0.Field_7.Field_19)
                    {
                        double num5 = class_2_0.Field_0[2];
                        Class_0.Method_4(class_2_0, num5);
                    }
                    else if (num2 == class_2_0.Field_7.Field_20)
                    {
                        double num5 = class_2_0.Field_0[3];
                        Class_0.Method_4(class_2_0, num5);
                    }
                    else if (num2 == class_2_0.Field_7.Field_21)
                    {
                        double num3 = Class_0.Method_3(class_2_0);
                        double num4 = Class_0.Method_3(class_2_0);
                        Class_0.Method_4(class_2_0, (double)((int)num4 << (int)num3));
                    }
                    else if (num2 == class_2_0.Field_7.Field_22)
                    {
                        double num3 = Class_0.Method_3(class_2_0);
                        double num4 = Class_0.Method_3(class_2_0);
                        Class_0.Method_4(class_2_0, (double)((int)num4 >> (int)num3));
                    }
                }
            }
            return(class_2_0);
        }
Ejemplo n.º 3
0
 // Token: 0x0600023F RID: 575 RVA: 0x0000471D File Offset: 0x0000291D
 internal static int Method_0(string string_0, int int_0, Stream resouces)
 {
     return(Class_0.Method_1(string_0, int_0, resouces));
 }
        public static void Cleaner()
        {
            foreach (TypeDef typeDef in ModuleDefMD.GetTypes())
            {
                foreach (MethodDef methods in typeDef.Methods)
                {
                    if (!methods.HasBody)
                    {
                        continue;
                    }
                    for (int i = 0; i < methods.Body.Instructions.Count; i++)
                    {
                        if (methods.Body.Instructions[i].OpCode == OpCodes.Call &&
                            methods.Body.Instructions[i].Operand is MethodDef)
                        {
                            MethodDef methods2 = (MethodDef)methods.Body.Instructions[i].Operand;
                            if (methods2.Parameters.Count == 2 && methods2.ReturnType == ModuleDefMD.CorLibTypes.Int32)
                            {
                                if (methods.Body.Instructions[i - 1].IsLdcI4() &&
                                    methods.Body.Instructions[i - 2].OpCode == OpCodes.Ldstr)
                                {
                                    if (resources == null)
                                    {
                                        foreach (MethodDef methods3 in methods2.DeclaringType.Methods)
                                        {
                                            if (!methods3.HasBody)
                                            {
                                                continue;
                                            }
                                            for (int z = 0; z < methods3.Body.Instructions.Count; z++)
                                            {
                                                if (methods3.Body.Instructions[z].OpCode == OpCodes.Callvirt && methods3.Body.Instructions[z].Operand.ToString().Contains("GetManifestResourceStream"))
                                                {
                                                    resources = ((EmbeddedResource)ModuleDefMD.Resources.Find(getString(methods3)))?.CreateReader().AsStream();
                                                    if (getString(methods3) == "DLL")
                                                    {
                                                        koivm = true;
                                                    }

                                                    break;
                                                }
                                            }
                                            if (resources != null)
                                            {
                                                break;
                                            }
                                        }
                                    }
                                    if (koivm)
                                    {
                                        foreach (MethodDef methods3 in methods2.DeclaringType.Methods)
                                        {
                                            if (!methods3.HasBody)
                                            {
                                                continue;
                                            }
                                            if (!methods3.Body.Instructions.Any(y => y.OpCode == OpCodes.Callvirt && y.Operand.ToString().Contains("GetManifestResourceStream")))
                                            {
                                                continue;
                                            }
                                            for (int z = 0; z < methods3.Body.Instructions.Count; z++)
                                            {
                                                if (methods3.Body.Instructions[z].OpCode == OpCodes.Ldstr && methods3.Body.Instructions[z - 1].OpCode == OpCodes.Ldstr && methods3.Body.Instructions[z - 2].OpCode == OpCodes.Ldstr)
                                                {
                                                    var str = methods3.Body.Instructions[z - 2].Operand.ToString();
                                                    var key = methods3.Body.Instructions[z - 1].Operand.ToString();
                                                    var iv  = methods3.Body.Instructions[z].Operand.ToString();
                                                    using (RijndaelManaged rijAlg = new RijndaelManaged())
                                                    {
                                                        rijAlg.Key = (Convert.FromBase64String(key));
                                                        rijAlg.IV  = Convert.FromBase64String(iv);

                                                        // Create a decryptor to perform the stream transform.
                                                        ICryptoTransform decryptor = rijAlg.CreateDecryptor(rijAlg.Key, rijAlg.IV);

                                                        // Create the streams used for decryption.
                                                        var str2 = Convert.FromBase64String(str);
                                                        using (MemoryStream msDecrypt = new MemoryStream((str2)))
                                                        {
                                                            using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
                                                            {
                                                                using (StreamReader srDecrypt = new StreamReader(csDecrypt))
                                                                {
                                                                    // Read the decrypted bytes from the decrypting stream
                                                                    // and place them in a string.
                                                                    var plaintext = srDecrypt.ReadToEnd();
                                                                    resources = ((EmbeddedResource)ModuleDefMD.Resources.Find(plaintext))?.CreateReader().AsStream();
                                                                }
                                                            }
                                                        }
                                                    }


                                                    break;
                                                }
                                            }
                                        }
                                    }
                                    string valueStr     = methods.Body.Instructions[i - 2].Operand.ToString();
                                    int    valueInt     = methods.Body.Instructions[i - 1].GetLdcI4Value();
                                    var    decryptedVal = Class_0.Method_0(valueStr, valueInt, resources);
                                    methods.Body.Instructions[i].OpCode      = OpCodes.Nop;
                                    methods.Body.Instructions[i - 1].OpCode  = OpCodes.Nop;
                                    methods.Body.Instructions[i - 2].OpCode  = OpCodes.Ldc_I4;
                                    methods.Body.Instructions[i - 2].Operand = decryptedVal;
                                }
                            }
                        }
                    }
                }
            }
        }