جميل الشرح اشكرك عليه..شاهدت نصفه فقط لضيق الوقت وساكمله لاحقا واذا وجد اى استفسار فساطرحه لاحقا
فى الجزء الاول من السيريل عند برمجة مول المفاتيح لماذا اضفت 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 كاسم المستخدم في الكيجن
1
d = 31
h
31
h+26
h = 57
h
57
h=87
d
يرجع لنا الكيجن قيمة 87 و هي قيمة من نوع decimal
كود الكيجن بالسي شارب:
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
كنت النتيجة هى نفسها
بخصوص كود سى شارب
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