الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة بسيطة ارجو التوضيح

مغلق
بدأه Xacker في 28 يناير 2005 · 4 رد · 447 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
and	byte ptr [eax+6],0
pushad
mov	edx, 421357  ; edx=buf
cmp	ecx, 5 	 ; ecx=0	<-----
mov	al, byte ptr [ebp+ecx+10]
mov	byte ptr [edx], al
inc	ecx
inc	edx
jne	421361 	 ; ----->
popad
leave
jmp	409ecc

الكود السابق يحوي خطا يتعلق بامر القفز ولا اعلم ما هو اذ ان البرنامج يتابع في العودة للعنوان 421361 حتى عندما تصل قيمة ecx لل 5 فما السبب؟

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#2

السلام عليكم

علامة القفز لا بد ان تاتى بعد المقارنه مباشرتاً, لان محتوى الفلاغ يتغير بعد كل عمليه, و jne je الخ كلها تعتمد على الفلاغ عدى jmp فهى قفز بدون اي شروط

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#3

ive thought of this already but while debugging programs i always see that the jxx command can be used even after few commands..

what yer saying forcing me to use something like this:

and byte ptr [eax+6],0
pushad
mov edx, 421357 ; edx=buf
cmp ecx, 5  ; ecx=0 <-----
je end_loop
mov al, byte ptr [ebp+ecx+10]
mov byte ptr [edx], al
inc ecx
inc edx
jmp 421361  ; ----->
end_loop:
popad
leave
jmp 409ecc

heh, whatever :P ill try that!

tnx yO

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4

السلام عليكم

المشكله فى inc وليست فى mov , يمكنك ان تستخدم موف ولا تؤثر على الفلاغ ولكن inc تغير OF SF ZF AF و PF لذالك يجب عليك ان تضع cmp بعد inc حتى تحصل على الفلاغ الصحيح.

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#5

cool ,tnx for the explaination ;)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

هذا الموضوع مغلق.

مواضيع مشابهة