لأبسط لك الفكرة:
بخوارزميه التسجيل للبرنامج (المكان الذي أشار اليه الأخ the9am3 ):
مقارنة طول السيريال => 14 + 07 مقارنات حول السيريال الصحيح
2x935xx94x0xxx
فاذا تحققت .......... تحققت المقارنة الاخيرة
CMP DWORD PTR SS:[EBP-8],7
SETE BYTE PTR SS:[EBP-1]
أي
BYTE PTR SS:[EBP-1] = 1
وبالتالي :
MOV AL,BYTE PTR SS:[EBP-1] وكأنها MOV AL,1
فعند ادخال سيريال غير صحيح .... لا يتحقق الشرط الاخير
أي:
BYTE PTR SS:[EBP-1] = 0
وبالتالي :
MOV AL,BYTE PTR SS:[EBP-1] وكأنها MOV AL,0
ولا يقبل التسجيل
لذا قمنا بتغيير التعليمة من:
SETE
الى
SETNE
وجعله يقبل اي سيريال
SETNE => Set if Not Equal
SETE => Set if Equal
بخوارزميه التسجيل للبرنامج (المكان الذي أشار اليه الأخ the9am3 ):
مقارنة طول السيريال => 14 + 07 مقارنات حول السيريال الصحيح
2x935xx94x0xxx
فاذا تحققت .......... تحققت المقارنة الاخيرة
CMP DWORD PTR SS:[EBP-8],7
SETE BYTE PTR SS:[EBP-1]
أي
BYTE PTR SS:[EBP-1] = 1
وبالتالي :
MOV AL,BYTE PTR SS:[EBP-1] وكأنها MOV AL,1
فعند ادخال سيريال غير صحيح .... لا يتحقق الشرط الاخير
أي:
BYTE PTR SS:[EBP-1] = 0
وبالتالي :
MOV AL,BYTE PTR SS:[EBP-1] وكأنها MOV AL,0
ولا يقبل التسجيل
لذا قمنا بتغيير التعليمة من:
SETE
الى
SETNE
وجعله يقبل اي سيريال
" اللهم أحسن خاتمتنا وأخرجنا من الدنيا علي خير"