Bad state ran to the server update a bit, unexpectedly did not write the conditions, the results found that the library is not backed up ... And then the tragedy happened!!
Because it is SQL2008, a lot of software is not supported, and finally found APEXSQL Log, very useful, but the trial version of the 14-day limit in addition to restricting the script export, only one export ... Sweat, although hundreds of data, but also enough to toss.
On the study, take apart from this trial version of the limit of the number of export, read the algorithm to write the register machine is also relatively simple, but lazy write, anyway, this thing basically used once, hundreds of knife buy a genuine certainly impossible, I think there are others may also use to get, put up.
Version is the latest version of 2014.04.1133 's current website.
Http://pan.baidu.com/s/1c0BHafQ
Part of the code for registering the program:
public static bool Manually (Activationmanager Manager, String ProductKey, String activationcode) { bool flag; Manager. Writeactivationinformation (New Activationresponse (Filehelper.unzip (activationcode.frombase64string ())). Serialize ()); if (! ( Flag = Manager. Activationcodeisvalid | | (Manager. state = = activationstate.extendedevaluation)) { string_1 = string. Format ("Invalid activation code [{0}]", Activationcode); return flag; } string_1 = "OK"; return flag;}
private void Analyzeserverresponse (string serverresponse) {XmlDocument document = new XmlDocument (); Document. LOADXML (Serverresponse); XmlElement documentelement = document. DocumentElement; if (documentelement! = null) && ("responseinfo" = = Documentelement.name)) {foreach (XmlNode node in do Cumentelement.childnodes) {if ("ProductId" = = node.) Name) {this. ProductId = node. InnerText; } else if ("unlockcode" = = node. Name) {this. Unlockcode = node. InnerText; } else if ("hardwareid" = = node. Name) {this. HardwareID = node. InnerText; } else if ("activationcode" = = node. Name) {this. Activationcode = node. INNERXML; if (node. FirstChild! = null) {foreach (XmlNode node2 in node. Firstchild.childnodes) { if ("version" = = Node2. Name) {this. Version = Node2. InnerText; } else if ("reginfo" = = Node2. Name) {this. Registrationinfo = Node2. InnerText; } else if ("licensenum" = = Node2. Name) {this. Licencenumber = Node2. InnerText; } else if ("trialexpiry" = = Node2. Name) {this. Trialexpire = Node2. InnerText; } else if ("licenseexpiry" = = Node2. Name) {this. Licenceexpire = Node2. InnerText; } else if ("signature" = = Node2. Name) {this. Signature = Node2. InnerText; } else if ("activationkey" = = Node2. Name) {this. ProductKey = Node2. InnerText; }}}} else if ("reasoncode" = = node. Name) {this. Reasoncode = node. InnerText; } else if ("Reason" = = node. Name) {this. Reason = node. InnerText; } else if ("reactivation" = = node. Name) {this. reactivation = node. InnerText; } else if ("explanation" = = node. Name) {this. EXPLANATION = node. InnerText; } else if ("Resolution" = = node. Name) {this. Resolution = node. InnerText; } } }}
public virtual void Writeactivationinformation (string activationdata) {Licencemanager manager = new Licencemanager (this . Apexsqlproducts_0, this.string_1); Activationresponse response = activationresponse.deserialize (Activationdata); This.activationInfo_0.HardwareID = Response. HardwareID; this.activationInfo_0.Version = Int. Parse (response. Version); this.activationInfo_0.NumberOfLicenses = Int. Parse (response. Licencenumber); This.activationInfo_0.RegistrationInformation = Response. Registrationinfo; This.activationInfo_0.ProductKey = Response. ProductKey; This.activationInfo_0.TrialExpiryDate = datetime.parseexact (response. Trialexpire, "mm-dd-yyyy", CultureInfo.InvariantCulture); This.activationInfo_0.LicenseSubscriptionExpiryDate = datetime.parseexact (response. Licenceexpire, "mm-dd-yyyy", CultureInfo.InvariantCulture); This.activationInfo_0.Signature = Response. Signature; if (!manager. Savelicencefile (this.activationinfo_0)) {throw new Exception ("Unable to save license file. "); This. Refresh ();}
It seems pretty simple, as long as the XML string zip algorithm compression (there is in the program) and then Base64, and then the validation method directly return true is basically OK.
Of course, this is more violent, not in line with my always seriously responsible attitude ~ ~ ~ but not violent words will have to change the next publickey ...
And then.. Then, if there is time later, you can study it again.
APEXSQL log trial cancels export scripts the limit for exporting one row per 10 lines.