Workflow.NET:

Workflow.NET.Security.Client.dll

Workflow.NET.Security.Client.SerialNumbers.VerifySerial(String) : Boolean
Workflow.NET.Security.Client.SerialNumbers.ef67a97d2333c1cd
                                 (String, String&, String&, String&, String&, String&) : Boolean

you should let them do nothing and return "true";

======================================================

Macrobject.NObject

Macrobject.1.2() : Void       ----->let it do nothing and return .

if you found the following code ,you will found above function. They are in one class
Macrobject.1.1() : Void
.method assembly hidebysig static void 1() cil managed
            {
            .maxstack 8
            L_0000: br.s L_0016
            L_0002: brtrue.s L_0009
            L_0004: call void Macrobject.1::2()
            L_0009: ldsfld int32 Macrobject.1::1
            L_000e: ldc.i4.1
            L_000f: add
            L_0010: stsfld int32 Macrobject.1::1
            L_0015: ret
            L_0016: ldsfld int32 Macrobject.1::1
            L_001b: br.s L_0002
            }
            




===================================================

aspNetEmail:

aspNetEmail.xml.lic:
extract the string: 1.1evaluation license3aspnetemail2007-01-21
compute md5 value of it ,and save in <H2> section.

finally , create signature  for this XML file.


code:

 static    string  y111 =
"JvxRZV+Jhn2gYGqEW0RaMP+owHTZVbhongcA"+
"/YfyJFniTMWWz0PQV8L3dSWQovDfZF/f7xLTu5h"+
"g8QrFK87Jxq6JxYjzfPc5ZWW+FUAV5/kix6YE3snsZ"+
"hMwr9aXTJzTNJXXXb5N/vjsFHUWAqiSmJ5aXyQ"+
"sCrcp3vde1vCnbzUz/lmtryrEVjPwKLrAEkQQ7aAGo"+
"PojkwtdUZCv1HTiVQ1yAFzElzacxqZsp1OsJ6yXbO"+
"farkUkRMOjaH8vujH7+UbgO9ufB/CmPjQg+EfAsnS"+
"pqHeweNXGGTn7i6K+r51GImgw9gtG/AT6urMZbc"+
"Mu0olZK2ZroMDm+d+hNlNaGQ==";

 

        static string y211 = "rPkH+GyK4Wa+d8YrIglwRtvF18Cz04RhN87WvjrgeFg=";

        static string y311 = "eXGJMz5b9yu7mhURx7a7RA==";

        static bool bool111 = false;

        static string y411 = "7LyD7Zis7bSo";

        static string y511 = "7pCl7qyZ74iU76Si";

        private void buttonPath_Click(object sender, EventArgs e)
        {
            string text1 = AppDomain.CurrentDomain.BaseDirectory + "aspNetEmail.xml.lic";
            //textBox1.Text = text1;
            //MessageBox.Show(File.Exists(text1).ToString());
            XmlDocument document1 = new XmlDocument();
            document1.Load(text1);
            SignedXml xml1 = new SignedXml(document1);
            try
            {
                XmlNode node1 = document1.GetElementsByTagName("Signature",
                                                                   "http://www.w3.org/2000/09/xmldsig#")[0];
                xml1.LoadXml((XmlElement)node1);
            }
            catch
            {

            }
            if (xml1.CheckSignature(RSA111()))
            {
                MessageBox.Show("OK");
            }
            else
            {
                MessageBox.Show("false");
            }

            textBox1.Text= ds111(dd311(text1));
            ds211(text1);
        }


        private static RSACryptoServiceProvider RSA111()      //create RSA Provider for Signature
        {
            string str311 = "AI" + "aspnetemail"+"3";
              RSACryptoServiceProvider provider1 = null;
              try
              {
                    CspParameters parameters1 = new CspParameters();
                    parameters1.KeyContainerName = "AIaspnetemail3";
                    parameters1.Flags = CspProviderFlags.UseMachineKeyStore;
                    provider1 = new RSACryptoServiceProvider(parameters1);
              }
              catch
              {
                    try
                    {
                          CspParameters parameters2 = new CspParameters();
                          parameters2.Flags = CspProviderFlags.UseMachineKeyStore;
                          provider1 = new RSACryptoServiceProvider(parameters2);
                    }
                    catch
                    {
                          try
                          {
                                provider1 = new RSACryptoServiceProvider();
                          }
                          catch
                          {
                          }
                    }
              }
              if (provider1 == null)
              {
                  MessageBox.Show("");
              }
              return provider1;
        }

         private static string ds111(DataSet set1)   //get the license string 
        {
              string text1 = string.Empty;
              if (set1.Tables["Customer"] != null)
              {
                    text1 = set1.Tables["Customer"].Rows[0]["name"].ToString().Trim();
              }
              if (set1.Tables["product"] != null)
              {
                    foreach (DataRow row1 in set1.Tables["product"].Rows)
                    {
                          text1 = text1 + row1["version"].ToString().Trim();
                          text1 = text1 + row1["name"].ToString().Trim();
                          text1 = text1 + row1["expires"].ToString().Trim();
                    }
              }
              return text1;
        }

        private static DataSet dd311(string text1)  //read the xml to dataset
        {
              DataSet set1 = new DataSet();
              //StringReader reader1 = new StringReader(text1);
              set1.ReadXml(text1);
              //reader1.Close();
              return set1;
        }

        private static DataSet ds211(string text5)   //check MD5 value,and judgement the lic was edited whether or not
        {
              DataSet set1 = dd311(text5);
              DataTable table1 = set1.Tables["LicenseInformation"];
              if ((table1 != null) && (table1.Rows.Count > 0))
              {
                    DataRow row1 = table1.Rows[0];
                    string text1 = row1["Version"].ToString();
                    double num1 = double.Parse(text1);
                    if (num1 > 1)
                    {
                          string text2 = row1["H1"].ToString();
                          string text3 = row1["H2"].ToString();
                          text1 = text1 + ds111(set1);
                          HashAlgorithm algorithm1 = null;
                          if (text2 == "0")
                          {
                                algorithm1 = new MD5CryptoServiceProvider();
                          }
                          string text4 = str111(text1, algorithm1);
                          if (text4 != text3)
                          {
                                throw new Exception("Invalid license hash found.");
                          }
                          return set1;
                    }
                    return null;
              }
              return null;
        }

        private static string str111(string text2, HashAlgorithm algorithm1)  
        {
              byte[] buffer1 = Convert.FromBase64String(y411);
              byte[] buffer2 = Encoding.UTF8.GetBytes(text2);
              byte[] buffer3 = Convert.FromBase64String(y511);
              byte[] buffer4 = new byte[(buffer1.Length + buffer2.Length) + buffer3.Length];
              buffer1.CopyTo(buffer4, 0);
              buffer2.CopyTo(buffer4, buffer1.Length);
              buffer3.CopyTo(buffer4, buffer1.Length + buffer2.Length);
              byte[] buffer5 = algorithm1.ComputeHash(buffer4);
              return Convert.ToBase64String(buffer5);
        }

^-^ ,I think you can finish the leavings work.

any question ,please EMail me:liuxzh1026@126.com

posted on 2007-01-02 10:09  Programming & Crack  阅读(1789)  评论(4编辑  收藏  举报