// 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); }
// 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); }
// 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; } } } } } } }