Перейти к содержимому

Фотография

Кейген для реальной программы, написанной на Basic .net

- - - - -

  • Авторизуйтесь для ответа в теме

#1
DuhaN

Отправлено 29 ���� 2008 - 12:08

DuhaN

    Новоприбывший

  • Пользователи
  • 19 сообщений
Исследование программ, написанных для новой платформы .NET оказывается очень легким делом. Не берусь сказать, что всегда это будет легким и простым, но сейчас скажу, т.к. без особого труда можно написать кейген для такой реальной программы как FirePanel XP, которая написана на Basic .NET. Суем ее в декомпилятор Reflector. Одной из особенностей его является то, что он может показывать декомпилированный код на языках IL, Basic, Delphi, C#. Так как программа написана на Basic, то и кейген будет на нем же, чтобы просто выдрать генерирующую код процедуру. Следует внимательно изучить дерево объектов в объекте FirePanel XP. Т.к. неизвестно в какой именно процедуре происходит проверка кода, мне пришлось проверять их все по порядку. Очень скоро попадается функция Info(). Private Sub info() ... Dim text2 As String = Interaction.InputBox("Please input registered name here:", "", "", -1, -1) If (StringType.StrCmp(text2, "", False) = 0) Then Me.override = True Me.Close End If Dim text1 As String = Interaction.InputBox("Please input key here:", "", "", -1, -1) If (StringType.StrCmp(text1, "", False) = 0) Then Me.override = True Me.Close End If If (StringType.StrCmp(Me.kc(text2, 100, 200, 300, 400), text1, False) = 0) Then Interaction.MsgBox("Thank You For Your Support", MsgBoxStyle.OKOnly, Nothing) Me.ln.Text = text2 Me.ln2.Text = text1 Dim key1 As RegistryKey = Registry.LocalMachine.CreateSubKey("SOFTWARE\FirePanel XP") key1.SetValue("username", text2) key1.SetValue("key", text1) Me.btnr.Visible = False Else Interaction.MsgBox("Your serial is invalid", MsgBoxStyle.OKOnly, Nothing) Me.override = True Me.Close End If ... End Sub Сразу видно, что введенный код проверяется с верным значением функцией StrCmp(). А сам ключ возвращается функцией kc() уже готовенький и при этом как строка. Как кстати! Смотрим kc(): Public Function kc(ByVal username As String, ByVal var1 As Object, ===> ===> ByVal var2 As Object, ByVal var3 As Object, ByVal var4 As Object) As String Dim obj5 As Object = Strings.Asc(username.Substring(0, 1)) Dim obj6 As Object = Strings.Asc(username.Substring((username.Length - 1), 1)) Dim obj7 As Object = Strings.Asc(username.Substring(0, CType(Math.Round ===> ===> (CType((CType(username.Length,Double) / 2),Double)),Integer))) Dim obj8 As Object = Strings.Asc(username.Substring(CType(Math.Round ===> ===> (CType((CType(username.Length,Double) / 2),Double)),Integer))) Dim obj1 As Object = Conversion.Hex(ObjectType.AddObj(ObjectType.MulObj(obj5, obj6), ObjectType.MulObj ===> ===> (ObjectType.MulObj(ObjectType.AddObj(obj7, obj8), var1), 100))).Substring(1, 5) Dim obj2 As Object = Conversion.Hex(ObjectType.AddObj(ObjectType.MulObj(obj6, obj8), ObjectType.MulObj ===> ===> (ObjectType.MulObj(ObjectType.AddObj(obj5, obj6), var2), 100))).Substring(0, 5) Dim obj3 As Object = Conversion.Hex(ObjectType.AddObj(ObjectType.MulObj(obj5, obj7), ObjectType.MulObj ===> ===> (ObjectType.MulObj(ObjectType.AddObj(obj6, obj8), var3), 100))).Substring(1, 5) Dim obj4 As Object = Conversion.Hex(ObjectType.AddObj(ObjectType.MulObj(obj6, obj8), ObjectType.MulObj ===> ===> (ObjectType.MulObj(ObjectType.AddObj(obj7, obj5), var4), 100))).Substring(0, 5) Return StringType.FromObject(ObjectType.AddObj(ObjectType.AddObj(ObjectType.AddObj(Obje ctType.AddObj ===> ===> (ObjectType.AddObj(ObjectType.AddObj(obj1, "-"), obj2), "-"), obj3), "-"), obj4)) End Function В принципе это готовая функция, которую осталось только скопировать в кейген. Т.к. я не знаю Basic абсолютно, то и разбираться, как же генерируется код мне было лень. Создаем в Visual Studio новый солюшен как Basic -> Windows Application. Вставляем на форму кнопку и на событие нажатия делаем вызов функции. Типа такого: Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ===> ===> ByVal e As System.EventArgs) Handles TextBox1.TextChanged MessageBox.Show(kc("my name here", 100, 200, 300, 400), ===> ===> "my key",MessageBoxButtons.OK) End Sub А выше вставляем выдранную функцию kc(). В принципе всё... Если пробовать компилировать то выйдет ошибка "Name 'ObjectType' is not declared". Покопавшись в MSDN, удается узнать, что ObjectType нужно указывать как CompilerServices.ObjectType. Таким образом везде где будет ругаться, то добавляем CompilerServices. Если всё сделать правильно, то получите код для программы :) Но разве это цель была? Автор: FEUERRADER [AHTeam] Jan 2005

#2
mus32

Отправлено 07 ������ 2008 - 05:57

mus32

    Новоприбывший

  • Пользователи
  • 34 сообщений

Суем ее в декомпилятор Reflector..
Автор: FEUERRADER [AHTeam]
Jan 2005

а версия какая, и где достать можна??