تقييم الموضوع :
  • 6 أصوات - بمعدل 3.5
  • 1
  • 2
  • 3
  • 4
  • 5
Sm@dav_Keyg3n_S0urce_VB6
#1
الكود موجود بGoogle .....تم طرحه للافادة

 
'Create .....> CommandButton => Command1
'TextBox => txtkey
'TextBox => txtName


Private Sub Command1_Click()
 
Dim c, i, j, szCNLen  As Integer
Dim a(6) As Integer
Dim MgcNum(21) As Integer
Dim ssName(50) As Integer
Dim szName As String
a(0) = "00"
a(1) = "00"
a(2) = "00"
a(3) = "99"
a(4) = "99"
a(5) = "00"

MgcNum(0) = 38: MgcNum(1) = 56
MgcNum(2) = 57: MgcNum(3) = 57
MgcNum(4) = 99: MgcNum(5) = 15
MgcNum(6) = 58: MgcNum(7) = 12
MgcNum(8) = 13: MgcNum(9) = 17
MgcNum(10) = 19: MgcNum(11) = 18
MgcNum(12) = 88: MgcNum(13) = 58
MgcNum(14) = 52: MgcNum(15) = 52
MgcNum(16) = 12: MgcNum(17) = 13
MgcNum(18) = 12: MgcNum(19) = 57
MgcNum(20) = 52: MgcNum(21) = 98

szName = UCase(Trim(txtName.Text))
szCNLen = Len(szName) - 1

i = 0
j = 0

Do While i <= szCNLen
For c = 1 To Len(szName)
ssName(i) = Asc(Mid(szName, c, 1))
If j > 2 Then j = 0
a(j) = (ssName(i) * Len(szName) + a(j)) Mod &H64
If a(j) >= &H64 Then a(j) = a(j) Mod &H64
i = i + 1
j = j + 1
Next
Loop

i = 0
Do While i < 5
a(5) = ((a(5) + a(i) * Len(szName))) Mod &H16
i = i + 1
Loop

a(5) = MgcNum(CInt(a(5)))

If Trim(Len(txtName)) < 3 Then 'MsgBox "Name must be more than 03 Chars", vbInformation, "Crack Smadav, Al-Anshor Corporation"
txtkey.Text = "Name must be more than 03 Chars"
Else
txtkey.Text = a(3) & a(5) & a(4) & a(0) & a(1) & a(2)
End If
End Sub


الملفات المرفقة
.rar   smadav_Keygen_Source_VB6.rar (الحجم : 5.92 KB / التحميلات : 62)
" اللهم أحسن خاتمتنا وأخرجنا من الدنيا علي خير"
أعضاء أعجبوا بهذه المشاركة : [email protected] , farfes , fantazma , M!4re , DarkDeath , xdvb_dz , motaghred , -pnta-
#2
تم ترجمة الكيجن للغة الدلفي:
 
procedure TForm1.Button1Click(Sender: TObject);
const
  MagicNums: array[0..21] of Integer = (38, 56, 57, 57, 99, 15, 58, 12, 13,
  17, 19, 18, 88, 58, 52, 52, 12, 13, 12, 57, 52, 98);
var
  i, X, N_Len: Integer;
  a: array[0..5] of Integer;
  Name: string;
begin 
  a[0] := 0;  a[1] := 0;  a[2] := 0;  
  a[3] := 99; a[4] := 99; a[5] := 0;

  Name := UpperCase(Trim(Edit1.Text));
  N_Len := Length(Name);

  if N_Len < 3 then
  begin
    Edit2.Text := 'Name must be more than 03 Chars';
    Exit;
  end;

  X := 0;
  for i := 1 to N_Len do
  begin
    a[X] := (Ord(Name<em>) * N_Len + a[X]) mod $64;
    if a[X] >= $64 then
      a[X] := a[X] mod $64;

    X := (X + 1) mod 3;
  end;

  a[5] := (a[5] + a[0] * N_Len + a[1] * N_Len + a[2] * N_Len) mod $16;
  a[5] := MagicNums[a[5]];

  Edit2.Text := Format('%2.2d%2.2d%2.2d%2.2d%2.2d%2.2d', [a[3], a[5], a[4], a[0], a[1], a[2]]);
end;
 


rose
" اللهم أحسن خاتمتنا وأخرجنا من الدنيا علي خير"
أعضاء أعجبوا بهذه المشاركة : alihmoda1970 , [email protected] , Wolf295 , xdvb_dz , -pnta-
#3
ترجمه الكود الي فيجوال بيسك دوت نت
' إنشاء الواجهة 
' زر الأوامر => Command1
' مربع النص => txtKey
' مربع النص => txtName

Private Sub Command1_Click(sender As Object, e As EventArgs) Handles Command1.Click
    Dim c, i, j, szCNLen As Integer
    Dim a(6) As Integer
    Dim MgcNum(21) As Integer
    Dim ssName(50) As Integer
    Dim szName As String

    ' تعيين القيم الأولية للمصفوفات
    a(0) = 0
    a(1) = 0
    a(2) = 0
    a(3) = 99
    a(4) = 99
    a(5) = 0

    MgcNum(0) = 38 : MgcNum(1) = 56
    MgcNum(2) = 57 : MgcNum(3) = 57
    MgcNum(4) = 99 : MgcNum(5) = 15
    MgcNum(6) = 58 : MgcNum(7) = 12
    MgcNum(8) = 13 : MgcNum(9) = 17
    MgcNum(10) = 19 : MgcNum(11) = 18
    MgcNum(12) = 88 : MgcNum(13) = 58
    MgcNum(14) = 52 : MgcNum(15) = 52
    MgcNum(16) = 12 : MgcNum(17) = 13
    MgcNum(18) = 12 : MgcNum(19) = 57
    MgcNum(20) = 52 : MgcNum(21) = 98

    ' تنظيف وتعديل اسم المستخدم
    szName = UCase(Trim(txtName.Text))
    szCNLen = szName.Length - 1

    i = 0
    j = 0

    ' الحلقة الأولى لمعالجة الاسم
    Do While i <= szCNLen
        For c = 1 To szName.Length
            ssName(i) = Asc(Mid(szName, c, 1))
            If j > 2 Then j = 0
            a(j) = (ssName(i) * szName.Length + a(j)) Mod &H64
            If a(j) >= &H64 Then a(j) = a(j) Mod &H64
            i = i + 1
            j = j + 1
        Next
    Loop

    i = 0
    ' الحلقة الثانية
    Do While i < 5
        a(5) = ((a(5) + a(i) * szName.Length)) Mod &H16
        i = i + 1
    Loop

    ' تحديث مفتاح التفعيل بناءً على الحسابات السابقة
    a(5) = MgcNum(CInt(a(5)))

    ' التحقق من طول الاسم المدخل
    If Trim(txtName.Text).Length < 3 Then
        txtkey.Text = "Name must be more than 03 Chars"
    Else
        txtkey.Text = a(3) & a(5) & a(4) & a(0) & a(1) & a(2)
    End If
End Sub


c#
// إنشاء الواجهة 
// زر الأوامر => Command1
// مربع النص => txtKey
// مربع النص => txtName

private void Command1_Click(object sender, EventArgs e)
{
    int c, i, j, szCNLen;
    int[] a = new int[6];
    int[] MgcNum = new int[22];
    int[] ssName = new int[50];
    string szName;

    // تعيين القيم الأولية للمصفوفات
    a[0] = 0;
    a[1] = 0;
    a[2] = 0;
    a[3] = 99;
    a[4] = 99;
    a[5] = 0;

    MgcNum[0] = 38; MgcNum[1] = 56;
    MgcNum[2] = 57; MgcNum[3] = 57;
    MgcNum[4] = 99; MgcNum[5] = 15;
    MgcNum[6] = 58; MgcNum[7] = 12;
    MgcNum[8] = 13; MgcNum[9] = 17;
    MgcNum[10] = 19; MgcNum[11] = 18;
    MgcNum[12] = 88; MgcNum[13] = 58;
    MgcNum[14] = 52; MgcNum[15] = 52;
    MgcNum[16] = 12; MgcNum[17] = 13;
    MgcNum[18] = 12; MgcNum[19] = 57;
    MgcNum[20] = 52; MgcNum[21] = 98;

    // تنظيف وتعديل اسم المستخدم
    szName = txtName.Text.Trim().ToUpper();
    szCNLen = szName.Length - 1;

    i = 0;
    j = 0;

    // الحلقة الأولى لمعالجة الاسم
    while (i <= szCNLen)
    {
        for (c = 1; c <= szName.Length; c++)
        {
            ssName[i] = (int)szName[c - 1];  // تحويل الحرف إلى قيمته ASCII
            if (j > 2) j = 0;
            a[j] = (ssName[i] * szName.Length + a[j]) % 0x64;
            if (a[j] >= 0x64) a[j] = a[j] % 0x64;
            i++;
            j++;
        }
    }

    i = 0;
    // الحلقة الثانية
    while (i < 5)
    {
        a[5] = ((a[5] + a[i] * szName.Length)) % 0x16;
        i++;
    }

    // تحديث مفتاح التفعيل بناءً على الحسابات السابقة
    a[5] = MgcNum[a[5]];

    // التحقق من طول الاسم المدخل
    if (txtName.Text.Trim().Length < 3)
    {
        txtKey.Text = "Name must be more than 03 Chars";
    }
    else
    {
        txtKey.Text = a[3] + a[5] + a[4] + a[0] + a[1] + a[2];
    }
}

أعضاء أعجبوا بهذه المشاركة : [email protected] , Str0x , DarkDeath
#4
الأيام تجري  سبحان الله

وضعت لها البرنامج تحدي سنة 2016  للاصدارة 10.5  أيام كنت نائب مدير منتدى AoRE

وقد شارك بالحلول الصحيحة كل من الإخوان الله يذكرهم بخير

1- Service Manual
2- المخفي 2000
3- Mov_Eax

لكن للاسف ضاعت حلول الشباب مني ولم أجد ألا حلي Sad

سوف أضع حلي للفائدة و شرح فلاشي لمعوقات البرنامج 
 
DarkDeath 
==============================================
new ver 10.5.1
=====================

1- search by Unregister (First Unregister )
2- Go Up long JMP 
3- Go 2 line down  U found  MOVSX EAX,WORD PTR DS:[59B274]
4- Put  find References in all address
   First STOP At
   005820E3      66:3935 74B25>CMP WORD PTR DS:[59B274],SI

5- value 59B274 = 0 = Unreg
   value 59B274 = 1 = Registration


      مسجل لـ فقط بدون اسم   رقم 1 و 2   
	  هذا كسر للبرنامج  وجميع المميزات تعمل لكن لا تستطيع أن تضع أسمك  في خانة الترخيص
	  في الخطوة رقم 1 و 2
1 )))
005820E3      66:3935 74B25>CMP WORD PTR DS:[59B274],SI
To
005820E3      66:8305 74B25>ADD WORD PTR DS:[59B274],1
005820EB      90            NOP
005820EC      90            NOP
005820ED      90            NOP
005820EE      90            NOP

OR (fox jmp) هذه الخطوة إضافية حل بديل عن رقم 1 بالاعلى واستخدمت القفزة الثعلبية لاحراج المبرمج
00581EBF     /0F85 D3010000 JNZ 00582098                             ;  SM_10_5.00582098
To
00581EBF     /0F85 AA010000 JNZ 0058206F                             ;  SM_10_5.0058206F



2 ))
004EDA22   .  85C0          TEST EAX,EAX
To
004EDA22      33C0          XOR EAX,EAX

=============== الخطوة 3 و 4 يقبل اي اسم وأي سيريال مكون من 12 رقم ===========
أستخدمت القفزات الثعلبية لتفادي كثير من التغييرات 
3 ))fox jmp  SN registration

004EBA40     /0F84 FE020000 JE 004EBD44                        ;  =>> Fox jmp To 004EBA79
To
004EBA40     /EB 37         JMP SHORT 004EBA79                 ;  =>> Fox jmp To 004EBA79
004EBA42     |90            NOP
004EBA43     |90            NOP
004EBA44     |90            NOP
004EBA45     |90            NOP

4)))

jmp delete registration info 

fox jmp 
00582037   .  66:3BDE       CMP BX,SI
To
00582037     /EB 36         JMP SHORT 0058206F                       ;  SM_10_5_.0058206F
00582039     |90            NOP

يجب أرجاع الاسم الى الاسم الاصلي بعد عملية الباتش 
حتى لا تظهر رسالة البلاك لست -القاشمة السوداء - لك 
لانه عندما يكون البرنامج في حالة الحماية النشطة  بجانب الساعة وتطلب فتح البرنامج فسوف يعمل البرنامج الغير مكسور الاصلي






شرح المعوقات  بالمرفقات


الملفات المرفقة
.rar   SmaDav.part1.rar (الحجم : 2 MB / التحميلات : 15)
.rar   SmaDav.part2.rar (الحجم : 1.21 MB / التحميلات : 15)
وما توفيقي إلا بالله
أعضاء أعجبوا بهذه المشاركة : TeRcO , sitifis , Bosalem , xdvb_dz , adhem , [email protected] , Ogredbg , -pnta-


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 2 ) ضيف كريم