Radeditor5.6的破解

来源:互联网 发布:量化数据分析 股票 编辑:程序博客网 时间:2024/05/18 12:35

RadControls的代码被混淆后的确给直接破解增加了许多难度,好在手中的注册机尚可应付一阵子,便好久未耗心血破解telerik的控件了。
前不久网友kgdiwss来信说他最近在研究R.A.D.editor v5.6这个控件的破解方法,发现xbbdc00610d0c9ab4
这个方法会读LicenseFile.xml这个文件里的值进行判断,但破解之后的控件却无法使用,无法添加到工具箱。今天实在觉得好奇便看了一下这个函数

Friend Function xdbdfefd16d8eae24() As String      Dim text1 As String = String.Empty      Dim xeefcbbbfc1 As xee4fc0b273b8bfc4 = xee4fc0b273b8bfc4.LicenseInvalid      Dim text2 As String = String.Empty      If (Not Me._89f7fbcf30dcfc79 Is String.Empty) Then            Dim document1 As New XmlDocument            Try                   document1.Load(HttpContext.Current.Server.MapPath(Me._89f7fbcf30dcfc79))                  Dim stream1 As Stream = Assembly.GetExecutingAssembly.GetManifestResourceStream(Me._32e9f8717824d1b9)                  If (stream1 Is Nothing) Then                        Throw New Exception("There is no SchemaLicense.xsd resource in the product")                  End If                  Dim reader1 As New XmlTextReader(stream1)                  If MyBase.x8268a03fdfe43f91(document1, reader1) Then                        Dim node1 As XmlNode                         For Each node1 In document1.SelectNodes(("//license[@control = '" & Me._faae2e7b9ce18346 & "']"))                              Dim xeefcbbbfc2 As xee4fc0b273b8bfc4 = Me.xbbdc00610d0c9ab4(node1.Attributes.ItemOf("company").Value, node1.Attributes.ItemOf("licenseKey").Value, Me._192a1a02420f4cfd, Me._43379c04dfbae39c)                              If (xeefcbbbfc2 = xee4fc0b273b8bfc4.LicenseOk) Then                                    xeefcbbbfc1 = xee4fc0b273b8bfc4.LicenseOk                                    Exit                              End If                              If (xeefcbbbfc2 = xee4fc0b273b8bfc4.LicenseExpired) Then                                    xeefcbbbfc1 = xeefcbbbfc2                              End If                        Next                  Else                        Return Me.xaaa216dedeb8b931(("Your license file is invalid.  Validation error: " & MyBase.LastValidationMessage), False)                  End If                  reader1.Close            Catch exception2 As  XmlException            Catch exception1 As  FileNotFoundException                  Return Me.xaaa216dedeb8b931(exception1.Message, False)            End Try      End If      If (((xeefcbbbfc1 = xee4fc0b273b8bfc4.LicenseExpired) OrElse (xeefcbbbfc1 = xee4fc0b273b8bfc4.LicenseInvalid)) AndAlso Me._666dc00f42ee96da) Then            xeefcbbbfc1 = xee4fc0b273b8bfc4.LicenseOk            text2 = Me.x8051fb738c99eb85      End If      If (xeefcbbbfc1 = xee4fc0b273b8bfc4.LicenseOk) Then            If (text2.Length > 0) Then                  Dim num1 As Integer = 0                  If HttpContext.Current.Items.Contains("RadControlRandomNumber") Then                        num1 = CType(HttpContext.Current.Items.Item("RadControlRandomNumber"), Integer)                  Else                        Dim random1 As New Random(DateTime.Now.Millisecond)                        num1 = random1.Next(10)                        HttpContext.Current.Items.Add("RadControlRandomNumber", num1)                  End If                  If (num1 = 4) Then                        text1 = text2                  End If            End If            Return text1      End If      If (xeefcbbbfc1 = xee4fc0b273b8bfc4.LicenseInvalid) Then            Return Me.x207a39204f6fe13a      End If      Return Me.x15fe9e1e533c8797End Function
发现比较有趣的是xee4fc0b273b8bfc4.LicenseOk
再一看xee4fc0b273b8bfc4
Private Enum xee4fc0b273b8bfc4      ' Fields      LicenseExpired = 0      LicenseInvalid = -1      LicenseOk = 1End Enum
明白了吧
xdbdfefd16d8eae24啥事不做直接返回个LicenseOk 便可以了
Private Function xbbdc00610d0c9ab4(ByVal xd0d7f230b70254c8 As String, ByVal xdb673b434db898b6 As String, ByVal x192a1a02420f4cfd As String, ByVal x43379c04dfbae39c As String) As xee4fc0b273b8bfc4      Return xee4fc0b273b8bfc4.LicenseOkEnd Function汇编代码则是
.method private hidebysig instance Telerik.RadEditorUtils.x68e86db9eb31d7d1/xee4fc0b273b8bfc4 xbbdc00610d0c9ab4(string xd0d7f230b70254c8, string xdb673b434db898b6, string x192a1a02420f4cfd, string x43379c04dfbae39c) cil managed{      // Code Size: 2 byte(s)      .maxstack 1      L_0000: ldc.i4.1       L_0001: ret }先把用ildasm返汇编出的代码的il文件中的那个强名称删了,再找到xbbdc00610d0c9ab4用上面的代码替换掉,重新编译后破解便算完成了。
须注意的是,此种破解,RadControls目录中仍需放置LicenseFile.xml文件,只是有关editor的授权码则可以随便填了。
比如:
<root>
<license company="RadControlsLicense" licenseKey="Q9W7W3Y/0gsJlAloCFujvA3mDoPYPq2bcj6vxYFBPMGjDeSxvwRfrbufsxp0wWTfwbPLkhK45/hqmVxKd3bvJw==" control="editor" />
</root>
kgdiwss说的破解之后的控件无法添加到工具箱的现象我这里并未发生,大家也试试看吧。

正所谓众人拾柴火焰高,如果没有kgdiwss的前期跟踪,也不会勾起我今天破解Radeditor5.6的兴趣,因为混淆后的代码实在让人心焦。在此一并祝kgdiwss突飞猛进。

原创粉丝点击