Muy buenas recurro a ustedes para que me orienten en esta comprobacion del serial echa en vb.net , ise algunos mas faciles pero este es un reto mayor asi que necesito el primer paso, asi que veamos que tiene ese jodido codigo:
Imports System
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms
Public NotInheritable Class FormRegistration
Inherits Form
' Methods
Public Sub New()
Me.InitializeComponent
If GClass1.bool_3 Then
Me.textBox4.Text = "REGISTERED"
Me.textBox4.ForeColor = Color.Green
Me.tbSerial.ReadOnly = True
Me.tbSerial.Text = GClass17.smethod_2
Me.buttonActivate.Enabled = False
End If
End Sub
Private Sub buttonActivate_Click(ByVal sender As Object, ByVal e As EventArgs) Handles buttonActivate.Click
GClass23.smethod_6.Replace("5", "-")
Dim str As String = GClass23.smethod_12(GClass1.string_3, Me.tbSerial.Text)
If GClass16.smethod_13(String.Empty, str).StartsWith(str) Then
GClass17.smethod_3(Me.tbSerial.Text)
MyBase.DialogResult = DialogResult.OK
Else
MessageBox.Show("Invalid License Key!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Hand)
MyBase.DialogResult = DialogResult.None
End If
End Sub
Private Sub buttonExit_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button Exit .Click
End Sub
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If (disposing AndAlso (Not Me.icontainer_0 Is Nothing)) Then
Me.icontainer_0.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
Private Sub FormRegistration_Shown(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Shown
Dim str As String = GClass1.string_3
Dim buffer As Byte() = GClass23.smethod_2(str)
Dim i As Integer
For i = 0 To buffer.Length - 1
buffer(i) = CByte((buffer(i) Xor &H31))
str = (str & GClass23.smethod_0(buffer(i)))
Select Case i
Case 5, 9, 14
str = (str & "-")
Exit Select
End Select
Next i
Me.tbKey.Text = str.Substring((buffer.Length * 2))
End Sub
Private Sub InitializeComponent()
Me.panel1 = New System.Windows.Forms.Panel
Me.buttonExit = New System.Windows.Forms.Button
Me.textBox4 = New System.Windows.Forms.TextBox
Me.panel2 = New System.Windows.Forms.Panel
Me.textBox3 = New System.Windows.Forms.TextBox
Me.buttonActivate = New System.Windows.Forms.Button
Me.label2 = New System.Windows.Forms.Label
Me.label1 = New System.Windows.Forms.Label
Me.tbSerial = New System.Windows.Forms.TextBox
Me.tbKey = New System.Windows.Forms.TextBox
Me.panel1.SuspendLayout()
Me.SuspendLayout()
'
'panel1
'
Me.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.panel1.Controls.Add(Me.buttonExit)
Me.panel1.Controls.Add(Me.textBox4)
Me.panel1.Controls.Add(Me.panel2)
Me.panel1.Controls.Add(Me.textBox3)
Me.panel1.Controls.Add(Me.buttonActivate)
Me.panel1.Controls.Add(Me.label2)
Me.panel1.Controls.Add(Me.label1)
Me.panel1.Controls.Add(Me.tbSerial)
Me.panel1.Controls.Add(Me.tbKey)
Me.panel1.Location = New System.Drawing.Point(12, 12)
Me.panel1.Name = "panel1"
Me.panel1.Size = New System.Drawing.Size(424, 322)
Me.panel1.TabIndex = 0
'
'buttonExit
'
Me.buttonExit.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.buttonExit.Location = New System.Drawing.Point(322, 283)
Me.buttonExit.Name = "buttonExit"
Me.buttonExit.Size = New System.Drawing.Size(87, 27)
Me.buttonExit.TabIndex = 24
Me.buttonExit.Text = "Exit"
Me.buttonExit.UseVisualStyleBackColor = True
'
'textBox4
'
Me.textBox4.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.textBox4.BackColor = System.Drawing.Color.White
Me.textBox4.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.textBox4.Enabled = False
Me.textBox4.Font = New System.Drawing.Font("Arial", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(204, Byte))
Me.textBox4.ForeColor = System.Drawing.Color.Red
Me.textBox4.Location = New System.Drawing.Point(3, 89)
Me.textBox4.Multiline = True
Me.textBox4.Name = "textBox4"
Me.textBox4.ReadOnly = True
Me.textBox4.Size = New System.Drawing.Size(416, 30)
Me.textBox4.TabIndex = 23
Me.textBox4.Text = "UNREGISTERED"
Me.textBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'panel2
'
Me.panel2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.panel2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center
Me.panel2.Location = New System.Drawing.Point(3, 3)
Me.panel2.Name = "panel2"
Me.panel2.Size = New System.Drawing.Size(416, 78)
Me.panel2.TabIndex = 21
'
'textBox3
'
Me.textBox3.BackColor = System.Drawing.Color.White
Me.textBox3.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.textBox3.Enabled = False
Me.textBox3.Location = New System.Drawing.Point(16, 168)
Me.textBox3.Multiline = True
Me.textBox3.Name = "textBox3"
Me.textBox3.ReadOnly = True
Me.textBox3.Size = New System.Drawing.Size(393, 81)
Me.textBox3.TabIndex = 6
Me.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'buttonActivate
'
Me.buttonActivate.Location = New System.Drawing.Point(168, 283)
Me.buttonActivate.Name = "buttonActivate"
Me.buttonActivate.Size = New System.Drawing.Size(87, 27)
Me.buttonActivate.TabIndex = 4
Me.buttonActivate.Text = "Activate"
Me.buttonActivate.UseVisualStyleBackColor = True
'
'label2
'
Me.label2.AutoSize = True
Me.label2.Location = New System.Drawing.Point(13, 258)
Me.label2.Name = "label2"
Me.label2.Size = New System.Drawing.Size(65, 13)
Me.label2.TabIndex = 3
Me.label2.Text = "License Key"
'
'label1
'
Me.label1.AutoSize = True
Me.label1.Location = New System.Drawing.Point(13, 132)
Me.label1.Name = "label1"
Me.label1.Size = New System.Drawing.Size(74, 13)
Me.label1.TabIndex = 2
Me.label1.Text = "Hardware Key"
'
'tbSerial
'
Me.tbSerial.Location = New System.Drawing.Point(116, 255)
Me.tbSerial.Name = "tbSerial"
Me.tbSerial.Size = New System.Drawing.Size(293, 20)
Me.tbSerial.TabIndex = 1
'
'tbKey
'
Me.tbKey.Location = New System.Drawing.Point(116, 129)
Me.tbKey.Name = "tbKey"
Me.tbKey.ReadOnly = True
Me.tbKey.Size = New System.Drawing.Size(293, 20)
Me.tbKey.TabIndex = 0
'
'FormRegistration
'
Me.AcceptButton = Me.buttonActivate
Me.BackColor = System.Drawing.Color.White
Me.CancelButton = Me.buttonExit
Me.ClientSize = New System.Drawing.Size(448, 346)
Me.Controls.Add(Me.panel1)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "FormRegistration"
Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = "Registration"
Me.panel1.ResumeLayout(False)
Me.panel1.PerformLayout()
Me.ResumeLayout(False)
End Sub
' Fields
Private buttonActivate As Button
Private buttonExit As Button
Private icontainer_0 As IContainer
Private label1 As Label
Private label2 As Label
Private panel1 As Panel
Private panel2 As Panel
Private tbKey As TextBox
Private tbSerial As TextBox
Private textBox3 As TextBox
Private textBox4 As TextBox
Private Sub tbSerial_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbSerial.TextChanged
Por lo que haz puesto deduzco que falta código.
Como primera medida, podrías analizar qué está pasando con la variable GClass1.bool_3.
Saludos!
se me habia olvidado
Imports System
Imports System.Collections.Generic
Imports System.Diagnostics
Imports System.IO
Imports System.Text
Public Class GClass1
' Methods
Public Shared Function smethod_0() As GClass0
If (GClass1.list_0.Count < (GClass1.int_4 + 1)) Then
Return Nothing
End If
Return GClass1.list_0.Item(GClass1.int_4)
End Function
Public Shared Function smethod_1() As Integer
Return CInt(GClass1.stopwatch_0.ElapsedMilliseconds)
End Function
Public Shared Sub smethod_2(ByVal string_4 As String, ByVal int_5 As Integer)
If (((int_5 = 2) OrElse (int_5 = 3)) OrElse ((int_5 = 4) OrElse (int_5 = 5))) Then
GClass1.stringBuilder_0.Append((string_4 & Environment.NewLine))
GClass1.stringBuilder_1.Append((string_4 & Environment.NewLine))
End If
End Sub
Public Shared Sub smethod_3()
GClass1.stringBuilder_1 = New StringBuilder
End Sub
Public Shared Function smethod_4() As String
Return GClass1.stringBuilder_0.ToString
End Function
Public Shared Sub smethod_5()
If ((GClass1.stringBuilder_1.Length >= 5) AndAlso GClass1.bool_3) Then
Dim now As DateTime = DateTime.Now
Try
Dim writer As New StreamWriter((GClass17.smethod_14 & "\FESLog_" & now.ToString("yyyyMMddHHmmss") & ".txt"))
writer.Write(GClass1.stringBuilder_1.ToString)
writer.Close
Catch exception1 As Exception
End Try
End If
End Sub
Public Shared Sub smethod_6()
End Sub
' Fields
Public Shared bool_0 As Boolean = False
Public Shared bool_1 As Boolean = False
Public Shared bool_2 As Boolean = False
Public Shared bool_3 As Boolean = False
Public Shared bool_4 As Boolean = False
Public Shared formNotify_0 As FormNotify = Nothing
Public Shared int_0 As Integer() = New Integer() { &HBB8, &H7D0, &H3E8, 750, 600, 500, 300, 200, 100 }
Public Shared int_1 As Integer = 0
Public Shared int_2 As Integer = 500
Public Shared int_3 As Integer = 0
Public Shared int_4 As Integer = 0
Public Shared list_0 As List(Of GClass0) = New List(Of GClass0)
Public Shared stopwatch_0 As Stopwatch
Public Shared string_0 As String() = New String() { "20/min", "30/min", "60/min", "80/min", "100/min", "120/min", "200/min", "300/min", "600/min" }
Public Shared string_1 As String = String.Empty
Public Shared string_2 As String = String.Empty
Public Shared string_3 As String = "74126-E079B-627D07"
Private Shared stringBuilder_0 As StringBuilder = New StringBuilder
Private Shared stringBuilder_1 As StringBuilder = New StringBuilder
End Class
y la gclass2
Imports FiatECUScan2
Imports System
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Management
Imports System.Text
Public Class GClass23
' Methods
Public Shared Function smethod_0(ByVal byte_0 As Byte) As String
Return GClass23.smethod_1(New Byte() { byte_0 })
End Function
Public Shared Function smethod_1(ByVal byte_0 As Byte()) As String
Return BitConverter.ToString(byte_0).Replace("-", " ")
End Function
Public Shared Function smethod_10() As String
Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
Dim str As String = String.Empty
Using enumerator As ManagementObjectEnumerator = searcher.Get.GetEnumerator
Dim current As ManagementObject
Do While enumerator.MoveNext
current = DirectCast(enumerator.Current, ManagementObject)
If (str = String.Empty) Then
goto Label_0048
End If
Loop
Return str
Label_0048:
str = current.Properties.Item("SerialNumber").Value.ToString
End Using
Return str
End Function
Public Shared Function smethod_11(ByVal string_1 As String) As String
Dim obj2 As New ManagementObject(("win32_logicaldisk.deviceid=""" & string_1 & ":"""))
obj2.Get
Return obj2.Item("VolumeSerialNumber").ToString
End Function
Public Shared Function smethod_12(ByVal string_1 As String, ByVal string_2 As String) As String
If (string_1.Length < &H10) Then
string_1 = (string_1 & "30383936363339323634393236344141")
End If
string_1 = string_1.Substring(0, &H10)
Dim buffer As Byte() = GClass23.smethod_2(string_1)
Dim bytes As Byte() = New Byte(buffer.Length - 1) {}
Dim i As Integer
For i = 0 To bytes.Length - 1
bytes(i) = buffer(((buffer.Length - i) - 1))
Next i
Dim buffer3 As Byte() = GClass23.smethod_2("6A606A197B056117")
If (((string_2.Length = &H12) AndAlso (string_2.Chars(5) = "-"c)) AndAlso (string_2.Chars(11) = "-"c)) Then
Try
string_2 = string_2.Replace("-", String.Empty)
buffer3 = GClass23.smethod_2(string_2)
Catch exception1 As Exception
End Try
End If
Dim j As Integer
For j = 0 To bytes.Length - 1
If (j >= buffer3.Length) Then
Exit For
End If
bytes(j) = CByte((bytes(j) Xor buffer3(j)))
Next j
Dim length As Integer = Encoding.ASCII.GetString(bytes).Length
Return GClass23.smethod_1(bytes).Replace(" ", String.Empty)
End Function
Public Shared Function smethod_13(ByVal list_0 As List(Of GClass15)) As List(Of TableDataRowP)
Dim list As New List(Of TableDataRowP)
Dim i As Integer
For i = 0 To list_0.Count - 1
list.Add(New TableDataRowP(list_0.Item(i)))
Next i
Return list
End Function
Public Shared Function smethod_14(ByVal list_0 As List(Of GClass18)) As List(Of TableDataRowE)
Dim list As New List(Of TableDataRowE)
Dim i As Integer
For i = 0 To list_0.Count - 1
list.Add(New TableDataRowE(list_0.Item(i)))
Next i
Return list
End Function
Public Shared Function smethod_2(ByVal string_1 As String) As Byte()
Dim list As New List(Of Byte)
Dim str As String = string_1.Replace(" ", String.Empty)
Dim i As Integer = 0
Do While (i < (str.Length - 1))
list.Add(Byte.Parse(str.Substring(i, 2), NumberStyles.HexNumber))
i = (i + 2)
Loop
Return list.ToArray
End Function
Public Shared Function smethod_3(ByVal object_0 As Object) As String
If (object_0 Is Nothing) Then
Return String.Empty
End If
Return object_0.ToString
End Function
Public Shared Function smethod_4(ByVal object_0 As Object) As Integer
If (object_0 Is Nothing) Then
Return 0
End If
Dim num As Integer = 0
Try
num = Convert.ToInt32(object_0)
Catch exception1 As Exception
End Try
Return num
End Function
Public Shared Function smethod_5() As String
Return GClass23.string_0((14 - 1))
End Function
Public Shared Function smethod_6() As String
Dim s As String = String.Empty
Try
s = GClass23.smethod_11("C")
Catch exception1 As Exception
End Try
If (s.Length < 3) Then
Try
s = GClass23.smethod_11("D")
Catch exception2 As Exception
End Try
End If
If (s.Length < 3) Then
Try
s = GClass23.smethod_10.Trim
Catch exception3 As Exception
End Try
End If
If (s.Length < 3) Then
Try
s = GClass17.smethod_0.Substring(10)
Catch exception4 As Exception
End Try
End If
If (s.Length > 12) Then
s = s.Substring(0, 12)
End If
Return GClass23.smethod_1(Encoding.ASCII.GetBytes(s))
End Function
Public Shared Function smethod_7() As String()
Return GClass23.string_0
End Function
Public Shared Function smethod_8(ByVal string_1 As String) As Byte()()
Dim list As New List(Of Byte())
Dim str As String = string_1.Replace(" ", String.Empty)
Dim startIndex As Integer = 0
Dim list2 As New List(Of Byte)
Do While (startIndex < (str.Length - 1))
If (str.Chars(startIndex) = ","c) Then
list.Add(list2.ToArray)
list2 = New List(Of Byte)
startIndex += 1
End If
list2.Add(Byte.Parse(str.Substring(startIndex, 2), NumberStyles.HexNumber))
startIndex = (startIndex + 2)
Loop
list.Add(list2.ToArray)
Return list.ToArray
End Function
Public Shared Function smethod_9(ByVal string_1 As String) As String()
Dim list As New List(Of String)
Dim builder As New StringBuilder
Dim i As Integer
For i = 0 To string_1.Length - 1
If (string_1.Chars(i) = "|"c) Then
list.Add((builder.ToString.Substring(0, 4) & GClass16.smethod_2(builder.ToString.Substring(4))))
builder = New StringBuilder
Else
builder.Append(string_1.Chars(i))
End If
Next i
If (builder.Length > 4) Then
list.Add((builder.ToString.Substring(0, 4) & GClass16.smethod_2(builder.ToString.Substring(4))))
End If
Return list.ToArray
End Function
' Fields
Private Shared string_0 As String() = New String() { "data03", "lang01", "data01", "data02", "data04", "data05", "data06", "data08", "data09", "data11", "data12", "lang02", "data07", "data10", "lang03", "data13" }
End Class
espero que me puedas iluminar .
Cita de: napstero en 2 Abril 2013, 08:13 AM
espero que me puedas iluminar .
Ya lo he hecho. Lee el post anterior y pon manos a la obra.
Saludos!
mi pregunta es ¿entendés de programación? porqué si tenés todo el código hace una aplicación nueva y que el resultado de la comparación la ponga en un textbox y listo.
Ahi esta no entiendo mucho como hace la comparacion este programa, no entiendo mucho vb.net pero si c+ , la cosa era hacer el generador de llave en c+.Porlo que estuve revisando
Dim str As String = GClass1.string_3
Dim buffer As Byte() = GClass23.smethod_2(str)
Dim i As Integer
For i = 0 To buffer.Length - 1
buffer(i) = CByte((buffer(i) Xor &H31))
str = (str & GClass23.smethod_0(buffer(i)))
Select Case i
Case 5, 9, 14
str = (str & "-")
Exit Select
la GClass1.smethod_3 dentro de la clase gclass1:
Public Shared string_3 As String = "74126-E079B-627D07"(este tiene aspecto a key)
lo que no entiendo es la parte
Dim buffer As Byte() = GClass23.smethod_2(str) dentro de ahi
Dim list As New List(Of Byte)
Dim str As String = string_1.Replace(" ", String.Empty)
Dim i As Integer = 0
Do While (i < (str.Length - 1))
list.Add(Byte.Parse(str.Substring(i, 2), NumberStyles.HexNumber))
i = (i + 2)
voy mas o menos encaminado
PD: para generar el algoritmo usa el seriel numer de hd
te diré varias cosas:
1) no me gusta dar el código de keygens y menos si pueden ser para un programa comercial.
2) con ese código no es necesario saber vb.net para eso existe google
3) sabés c+ ¿y no entendés la parte más fácil? yo no sé ni basic y las sentencias son entendibles
4)
str.substring= Devuelve una subcadena del objeto string que comienza en la posición dada por el menor de los argumentos y finaliza en la posición dada por el otro argumento.
byte.parse = Convierte la representación en forma de cadena de un número en su Byte equivalente.
NumberStyles.HexNumber = da formato a un número en su representación hexadecimal
do while = repite sentencias anidadas hasta que la expresión while sea verdadera
5) nunca dijiste q soft es, y por experiencia me ha pasado que resolvemos los códigos y después otros hacen los keygen como propios sin siquiera mencionar al autor real.
6) si fuese un crackme de un concurso de la lista con gusto te ayudo.