20-09-2022, 08:20 PM
(آخر تعديل لهذه المشاركة : 04-10-2022, 06:51 PM بواسطة TeRcO.
تعديل السبب: اكمال بقية الشرح +اضافة تعقيب الاخوة
)
الجزء الأول :
السيريال يكون بالشكل التالي
0000000000000000-12345
الجزء الأول به 16 محرف مع ضرورة وجود"-":السيريال يكون بالشكل التالي
0000000000000000-12345
+
يتم حساب 12345 بالشكل التالي :
md5 [(md5 :InternetLock)]=A828D684C41C6A9D35DD3E2ED6A1E628
md5 [(md5 :RegName - Exemple:terco)]=CDA87485E203331C7C86B00DAADC5046
يتم أخذ المحرف الأول من الهاش الاول A=41 بالهكس
نفس الشيء للهاش الثاني C=43
MOVZX EDI,BYTE PTR SS:[ESP+EDX+$010]
MOVZX EDX,BYTE PTR SS:[ESP+EDX+$034]
ثم يقوم 'ADD 'A=41','C=43
ويساوي= 84
ADD EDI,EDX
ثم يقوم بالعملية على الحاصل 84:
AND EDI,$08000001F
الناتج '4+1 بـــ Decimal '
وهو مكان المحرف الصحيح من النص: ABCDEFGHJKLMNPQRSTUVWXY123456789
أي أول جزء من السيريال هو E
ثم نفس العملية بالنسبة للمحرف الثاني حيث يتم اخذ ثاني محرف من الهاش الاول والثاني
المحرف الثالث حيث يتم اخذ ثالث محرف من الهاش الاول والثاني
وهكذا الى غاية المحرف الخامس
5-30-20-17-28
E 6 V S 5
وهو المناسب للاسم terco
الجزء الثاني :
1-يقوم بعملية SUM جمع لكل 4 محارف على حِدَةٍ 0000-0000-0000-0000
ثم قسمتها على الناتج بالترتيب من التعليمة التالية( 8 -7 -5 - 6) :
00445303 MOV ECX,DWORD PTR DS:[EAX+EBP*4+4]
(24-09-2022, 06:03 PM)EarthMan123 كتب : يرجى ملاحظة أنه بعد القيام بعملية الجمع وقبل القسمة يأخذ فقط الجزء الأول (8bit).
مثلا إذا كان الناتج 1A4 فإن القيمة ستكون A4 وبعد القسمة يتم التحقق من إذا كان هناك باق للقسمة أم لا.
(04-10-2022, 03:33 PM)NtPwner كتب :
عدد محارف الاسم المدخل --> terco=74 65 72 63 6F مجموع المحارف بالهكس --> esi=21D eax=38e38e39 قسمة مجموع المحارف على القيمة --> MUL ESI الناتج --> eax=38E38E75 باقي القسمة --> edx=78 SHR EDX,1 edx=3c lea edx,dowrd ptr edx+edx*8 edx= 3c*8+3c = 21c sub esi,edx 21D-21c=1 esi=1 inc esi esi=2 edi=esi eax=di sub eax,1 [اهم نفطة في كتابة الكيجن] عدد المرات التي يجب ان يتم عمل هاش مجددا --> eax========1
ناتج باقي القسمة لكل 4 محارف ........... لابد ان يساوي = 0
وبهذا انهينا تحليل السيريال
" اللهم أحسن خاتمتنا وأخرجنا من الدنيا علي خير"