الفريق العربي للهندسة العكسية

نسخة كاملة : keygenning 5uPeR Cl3ann3r
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
المشاركة الأصلية كتبت بواسطة abdo-ok‏, 16-10-2014 11:03 AM
إقتباس :السلام عليكم 
درس مفصل في الكيجننغ خطوة خطوة للمستوى الصفر 
لغة البرمجة : الاسمبلي 
رابط تحميل الشرح + البرنامج الضحية + الملفات المصدرية بلغة الأسمبلي
http://www.mediafire.com/download/w41bdzftvd34b4c
http://www.mediafire.com/download/9c992ac4pi0u2a9
رابط إضافي من جوجل درايف
https://drive.google.com/open?id=1X03CbmDpmSXq-MFW2lP2QJlhLogE1nKm
باس فك الضغط:
www.at4re.net
مع تمنياتنا لكم بالإفادة  Smile
جميل الشرح اشكرك عليه..شاهدت نصفه فقط لضيق الوقت وساكمله لاحقا واذا وجد اى استفسار فساطرحه لاحقا
فى الجزء الاول من السيريل عند برمجة مول المفاتيح لماذا اضفت h الى القيمة 26 المخصصة ل EDX

السؤال الثانى هل يمكنك ان توضح رياضيا كيف تعمل هذه الدالة
movsx edx,byte ptr ds:[NameBuff]
add edx, 26h
بما ان الاسم المدخل هو سبعة احرف
فقد قمت بتجريب 1+26+2+26+3+26 الخ ولكن لم يعطينى الناتيج الصحيح
ايضا جربت
1*26+2*16+3*26 الخ وايضا لم يكن الناتج صحيحا
هل يمكنك توضيح رياضيا كيف تقوم هذه الدالة بالحساب

ايضا ان امكن هل يمكنك توضيح الاكواد السابقة ولكن بلغة C# او VB.net
 
(03-06-2019, 10:43 PM)pharaon كتب : [ -> ]فى الجزء الاول من السيريل عند برمجة مول المفاتيح لماذا اضفت h الى القيمة 26 المخصصة ل EDX

h يعني القيمة نوعها hexadecimal...
 
(03-06-2019, 10:43 PM)pharaon كتب : [ -> ]السؤال الثانى هل يمكنك ان توضح رياضيا كيف تعمل هذه الدالة
 
movsx edx, byte نأخد بايت من الاسم و نحفظه في المسجل edx
نقوم بجمع محتوى edx مع قيمة 26h و نحفظ الناتج في نفس المسجل edx
 
(03-06-2019, 10:43 PM)pharaon كتب : [ -> ]  ما ان الاسم المدخل هو سبعة احرف
فقد قمت بتجريب 1+26+2+26+3+26 الخ ولكن لم يعطينى الناتيج الصحيح
ايضا جربت
1*26+2*16+3*26 الخ وايضا لم يكن الناتج صحيحا

الاشكال انك تحاول جمع قيمتين من نوعين مختلفين، 1 من نوع decimal و 26 من نوع hexadecimal
من المفروض ان تكون العملية بهذا الشكل 31h+26h بمعنى 31 هي فيمة الهكس لــ 1

مثال:
لو ادخلنا قيمة 1 كاسم المستخدم في الكيجن
1d = 31h
31h+26h = 57h
57h=87d
يرجع لنا الكيجن قيمة 87 و هي قيمة من نوع decimal

[صورة مرفقة: attachment.php?aid=641]

[صورة مرفقة: attachment.php?aid=642]

[صورة مرفقة: attachment.php?aid=643]

[صورة مرفقة: attachment.php?aid=644]


كود الكيجن بالسي شارب:
using System;

namespace Keygen {
public class Program {
    public static void Main() {

        Console.Title = "Keygen";
        Console.Write("Username: ");

        string Username = Console.ReadLine();

        int part01 = 0;
        int part02 = 0;
        int part03 = 0;
        int part04 = 0;

        for (int i = 0; i < Username.Length; i++) {
            part01 = part01 + Username[i] + 0x26;
            part02 = part02 + Username[i] * 0x34;
            part03 = part03 + Username[i] + 0x0C;
            part04 = part04 + Username[i] * 0x0E;
        }

        Console.Write("Serial  : "+ part01 + "-" + part02 + "-" + part03 + "-" + part04);

        Console.ReadLine();
    }
}
}

السورس مع الملفات التنفيذية مرفقة:
[attachment=645]
شكرا على الشرح اخى
المشكلة هى اننى عندما استخدمت الحاسبة لاحسب قيم الارقام بالنظام hexadecimal
كنت النتيجة هى نفسها

[صورة مرفقة: 1.jpg]

بخصوص كود سى شارب

 

part01 part01 Username[i] + 0x26;


البرنامج سيجمع رقم Decimal الى قيمة hexadecimal ؟
(04-06-2019, 01:21 PM)pharaon كتب : [ -> ]المشكلة هى اننى عندما استخدمت الحاسبة لاحسب قيم الارقام بالنظام hexadecimal

لا تستعمل الحاسية بل استعمل ادوات اخرى تدعم جدول الــ ASCII مثل keygener assistant في تبويب conversion - format لان القيم المدخلة يتعامل معها الكيجن انطلاقا من منطق جدول ASCII
جدول الــ ASCII مهم جدا في مجال توليد المفاتيح...
(04-06-2019, 01:21 PM)pharaon كتب : [ -> ]البرنامج سيجمع رقم Decimal الى قيمة hexadecimal ؟

برمجيا يمكنك كتابة القيم الثابتة اما هكس او ديسي:
part01 = part01 + Username + 0x26
او
part01 = part01 + Username + 38

part01 = part01 + Username + 38
part02 = part02 + Username * 52
part03 = part03 + Username + 12
part04 = part04 + Username * 14