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

سؤال في البرمجة العكسية ...

مغلق
بدأه شادي في 22 ديسمبر 2004 · 18 رد · 1,454 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارفقت مثالين مستقلين ...

في المثال الأول إذا وضعت في الـ Textbox الأرقام 123 يختفي الـ Label .

وفي المثال الثاني يظهر Label على الفورم عند فتحه مباشرة.

والمطلوب كيف استطيع الغاء ظهور Label بواسطة البرمجة العكسية ؟؟؟

يعني بدون ما أضع أي رقم وبدون حتى أن أضغط موافق ؟؟؟

وكذلك الحال في المثال الثاني .

تحياتي

TEST.rar

#2

السلام عليكم,

لكي نعكس البرنامج حتى لا يضهر Label عند بداية تشغيل البرنامج يمكن أن نغير خاصية Label مباشرة في الرسورس لنجعل Label غير مرئي أو Not Visible. وفي هذا البرنامج لكي نقوم بهذا سنذهب إلى الأوفسيت 12E0 في الملف - الأرقام كلها ستكون بالهيكس - ونزيد هناك 2 أوكتيه ليصبح عندنا ما يلي :

12F2 ----- 0A نضع 0A هنا ونضع صفر في ما يليه.

لكي نحافض على البرنامج يجب أن نحذف 2 أوكتيه وسنحذفهما في الأوفسيت 12F2 .

وهنا نجد البرنامج المعكوس.

إلى اللقاء.

Reversed.zip

#3

لو سمحت يا جماععه هو ازاي الواحد يتعلم ال hexadecimal .وهل لازم يكون عنده خلفيه عن الاسمبلي عشان يتعلمها

لا اله الا الله
#4

السلام عليكم,

الأخ medo_elkorsan لا أضن أن هناك علاقة بين الأسمبلر و نضام الهيكس قدر ما هناك علاقة بين الأسمبلر والبايناري. وبما أن هذا النظام الأخير صعب لأنه عادة يكون رقما طويلا وتصعب تذكيره فإن نضام الهيكس يقربنا من البايناري ويسهل تذكير البرنامج لأن الأرقام تكون صغيرة - وأقصد بهذا أنها لا تحتوي على ديجيتات كثيرة مثل البايناري.

وتعلم الهيكس أضن أنه يأتي مع التجربة وهي أرقام كالتي عتدناها. وفي هذا المجال قد لا يتطلب منا معرفة الجمع والطرح والضرب إلى غير ذلك من العمليات لأن هناك أدوات قد تقوم بهذا عوضنا مثل آلة الحاسبة للوندوز فهي تمكننا من جميع العمليات الحسابية في نظام الهيكس والبايناري وكذلك التحويل بين الأنظمة إلى غير ذلك.

إلى اللقاء.

#5

اخي chik بارك الله فيك ..

ممكن أعرف كيف توصلت إلى هذا الأفس 12E0 ؟؟

* هل اعتمادا على رقم الباسورد الذي وضعته 123 ؟؟

* طيب ماذا عن المثال الثاني الذي قمت بوضعه انا والذي ليس له تسجيل ؟؟

هل يمكن التخلص من Label ؟؟؟؟؟؟؟ وكيف ؟؟؟؟؟؟؟؟؟؟؟؟؟؟

تحياتي

#6

السلام عليكم,

حقيقة لم أرى الملف الثاني ولكن يمكن العمل عليه بنفس الطريقة.

والطريقة التي أعطيت لا تعتمد على الكود بتاتا لأننا سنغيرها في الرسورس. وكما تعلم حين تريد أن تبرمج وتصنع نافذتك يمكن أن تغير خصائصها في Prpperties وما قمت به هو تغييرVisibe Propertie فيما يخص Label إلى False وهكذا لن تظهر هذه النافذة.

ولمعرفة النافذة إما أن نذهب مباشرة إلى فقرة الرسورس في البرنامج أو يمكن أن تعتمد على الطريقة البائية إذا أردت وهي أن تفتح البرنامج في برنامج للهيكس وتبحث عن الكلمة الموجودة في Label وسيكون لديك احتمال كبير أن تقع فيه في أول بحث.

والرسورس تكون عادة كما يلي :

Caption - Left - Top - Width - Height وفيما يخص المثال السابق زدت بعد هذا البايتين 0A-00 لنعطيها خاصية Visible إلى False أو 0 وحاول تغيير 0A-00 إلى 0A-01 وشغل البرنامج ستلاحظ أن النافذة عادت للظهور مرة أخرى وهكذا سنتأكد إذن أن ذالك البايت هو المسؤول عن خاصية Visible فحين يكون 0 أو خطء لا تظهر وحين يكون 1 أو صحيح فستظهر.

إلى اللقاء.

#7

طب هو في مفهوم معين لتعلم الهكس .. يعني انا مثلا (مش شايف ان البرمجه العكسيه شئ مفيد) انا عاوز اتعلمها عشان ابقي - فاهم اكتر- لو ينفع التعبير

يعني اعرف البرنامج المكتوب للوندوز حتي لو في بيئة نصيه ايه اللي بيضافله

مش عارف اسمها ايه .. حاجه وندوز كان jass قالها ..يارب ؟

مش فاكرها !

ايوه مقاطعات وندوز ومقاطعات دوس ؟

لا اله الا الله
#8

قلت أخي chik ( لمعرفة النافذة إما أن نذهب مباشرة إلى فقرة الرسورس )

* انا استخدم برنامج Hex Workshop 4.1 فكيف اصل من خلاله إلى فقرة الرسورس ؟؟

او من اي برنامج هكس تستخدمه أنت .

* ايضا استخدمت الطريقة الثانية ووجدت الرسالة المطلوبة التي توجد داخل Label ... فكيف لي أن

أحدد مكان التغيير ؟؟؟

هل عشوائيا أبد في التغير اسفل الرسالة اغير من 1 إلى 0 حتى استطيع الغاء ظهور الـ Label

أم هناك طريقة علمية أسهل من ذلك ؟؟؟؟

ارجو التوضيح ..

تحياي

#9

السلام عليكم,

لمعرفة منطقة الرسورس أو Resource Section إما أن نقرأ الترويسة Header وإذا كنا نعرف مدلوله سنعرف أين تبدأ هذه. كما أن هناك برامج تعطينا كل ما يخص البرنامج وكذلك جميع فطعات البرنامج ومن بينها ProcDump واللائحة طويلة.

لمعرفة كل رقم ماذا يعني في داخل الرسورس أضن أن هناك ملفات تعطي هذا بالتدقيق لست أتذكرها الآن . وللذين لا توجد عندهم ذاكرة قوية مثلي من السهل التعرف على كل هذا . وفي الكثير من الأحيان حين أريد أن أتذكر هذه المسائل يمكن أن نتبع الطريقة التالية.

مثلا نريد معرفة ما يدور حول Label Box سنجاول برمجة نافذة خاوية فقط فيها Label نعطيه اسم ما وسيكون له طبعا طول وما إلى ذلك. نقوم بصنع البرنامج EXE . بدون ما نغير أي شيء في النافذة نغير خاصية Visible ونقوم بصنع EXE ثاني وبمقارنة بسيطة حول رسورس Label في برنامج هيكس سنتعرف عن الفرق. وللمزيد نسجل ملف FRM الذي يععطيه لنا ونقرأه في النوتباد مثلا وهنا سنعرف كل الخصائص كما ذكرت من قبل وحين نفتح الملف في الهيكس نبحث عن قيمة المتغيرات السابقة وسنعرف كيف تكتب الرسورس في البرنامج التنفيذي. هنا يبقى فقط أن نعرف أن في الهيكس طبعا الأرقام ستكون بالهيكس وكذلك ستكون معكوسة . لو نفترض مثلا أن الطول هو 0124 بالهيكس ففي الملف يجب أن يكون 2401 وهكذا.

إلى اللقاء.

#10

السلام عليكم,

أعتذر عن الصورة التي ربما حجبت الرقم وهذا مجرد صدفة فقد تقابل ربما الرقم الذي وضعته مع الرقم المناسب للصورة.

على العموم إذا كان الطول مثلا هو 7485 بالهيكس في الملف سيكون هو 8574

وأتمنى أن هذا الرقم لا يكون له أي مدلول هنا.

إلى اللقاء.

#11

عملت فورم ووضعت عليه ليبل وجعلت خصائص الليبل true ... ثم عملت ملف أخر بنفس الطريقة

وجعلت خائص الليبل false وكونت من كل واحد منهما ملف exe ..... جميل .

بعد ذلك عملت مقارنة بينهما بواسطة برنامج HHD Hex Editor وتوقعت أن المقارنة ستكشف

عن اختلاف بسيط تمكنني من معرفة الأرقام التي يجب تغييرها لاظهار الفورم أو اخفاءه ...

ولكن فوجئت بأن هناك اختلاف كبير بين الملفين ويستدعي تغيير طويل حتى اتمكن تبديل الخاصية

Visible الى fales او true ... مما يصعب الأمر .

برغم من أن حجم الملفين نفسه !!!!!

أما عن الذهاب مباشرة إلى نافذة الرسورس فلم أفهمه إلى الأن برغم أني فتحت الملف الذي ارسلته

لك في بداية المشاركة- فتحته ببرنامج ProcDump - محاولا الاستفادة من شرحك السابق لكن دون

جدوى .. إلى الأن يصعب على معرفة مكان التغيير .... وما يجب أن اضعه .

تحياتي

#12

السلام عليكم,

الأخ شادي : طبعا وربما التغيير سيكون بينهما في بضع بايتات ولكن بما أن طول الملف سيتغير فسننتظر أن برامجد المقارنة ستعطينا فرقا شاسعا لأن معظم هده البرامج يقوم بالمقارنة بايت ببايت.

حين قلت نرى الفرق كنت أقصد فقط الفرق فيما يخص اللابيل . وحاول أن تقوم بالمقارنة مرة أخرى ولكن هده المرة ابدأ فقط من بداية اسم اللابيل وسترى أنه بعد بضع بايتات ستصبح الأمور متساوية ولكن ستكون إزاحة بالنسبة في الأوفسيت.

إدا وجدت شيئا من الوقت سأحاول أن أكتب الطريقة بشيء من التدقيق إن شاء الله.

إلى اللقاء.

#13
chik كتب:
إدا وجدت شيئا من الوقت سأحاول أن أكتب الطريقة بشيء من التدقيق إن شاء الله.

أرجو أن يسمح وقتك لكتابة ذلك أخي chik لأنني بصراحة اختلطت علي الأمور حتى بعد اسم

ليبل أجد أن هناك بايتات كثيرة متغيرة ...

ولكنني سأحاول بطريقة عشوائية إن تمكنت من الوصول للطريقة الصحيحة فسأخبرك حتى أوفر

وقتك ...

تحياتي

#14

أخي chik ما أدري نسيت الموضوع أم ما زلت مشغولاً ....

الا يعرف معلومة ولو بسيطة الرجاء وضعها هنا ..

لأني بالفعل محتاج الحل ...

تحياتي

#15

السلام عليكم,

الأخ شادي أستسمح عن عدم المتابعة وذلك لأن كل موضوع جديد ينسيني الموضوع الأول وزيادة أن هذه الأيام لدي مهام كبيرة وأتمنى أن أجد وقتا لكتابة ما وعدتك به وإن شاء الله تسير الأمور كلها تمام.

إلى اللقاء.

#16

أخي chik لا ألومك أبدا وأقدر انشغالك ....

الله يكون في عونك ..

وأنا لم ألجأ إلى طرح السؤال الا بعد تقطعت جميع السبل لإيجاد الحل ...

تحياتي

#17

السلام عليكم,

الأخ شادي في الملف المرفق قد أعطيت ملفات لمثال عما ذكرت وفي ملف يتكلم عن مختلف الخصائص فيما يخص اللابيل وأتمنى أن يفيدك.

إلى اللقاء.

Label.zip

#18

الف شكر اخي CHIK على المعلومات القيمة بارك الله فيك .

حاولت أكثر من مرة أرد على الموضوع ولكن كانت دائما تواجهني مشاكل في رفع مشاركتي .

إلى الأن عرفت كيف تحويل خصائص الليبل من TRUE إلى FALSE والعكس ولكن بالاعتماد على الرسالة التي تكون داخل الليبل أي بالطريقة

البدائية التي وصفتها .

* أما الطريقة الأخرى وهي طريقة الرسورس فلم أتمكن من معرفتها فلو لم يكن داخل الليبل رسالة أو لو كان الليبل يحمل مسمى أخر

فكيف التوصل إليه ؟

* ما فائدة القيم التو ضعتها في ملف الورد ( 177 و 2DD ) وغيرها أقصد هذه :

      Height                                       =   375             '    177     
      Left                                           =   720             '    2DD

هل تفيدني في معرفة مكان الليبل في حالة لم يكن اللبل يحمل رسالة ؟؟؟

تقبل تحياتي

#19

حسبما اتوقع ِ(لم اتابع الموضوع من البداية) فالاخ chik يخبرك بانه ان اردت الوصول الى الطول والعرض الخاص بالنافذة فستكون القيم بالهكس طبعا والتي تظهر لك في التعليق

Do as I say, not as I do

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

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

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