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

هلا من مساعد من مدراء المنتدى

مغلق
بدأه هند في 27 سبتمبر 2003 · 21 رد · 3,031 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

نعم اخي الحبيب عندي كتاب اسمه ( حماية البرمجيات وطرق كسرها)

ولكن يستخدم المؤلف السوفت اكثر مافي دروسه حيث هناك برامج اخرى اكثر سهولة ومرونة مثل OLLYDBG

وقد سمعت له اوامر تجعلني استغني عن أي برنامج آخر

ياليت القى من يساعدني في هذا الشان واكون شاكرة له

#2

كلامك اخي عين الصواب

ومشكور على الموقع بس ياليت القى مثل هذا الموقع بالعربي

واكرر ليش العرب ما يقدروا يعمل مثل هذه المنتديات

لا يوجد بالساحة إلا امبراطورية العرب

#3
هند كتب:
كلامك اخي عين الصواب

ومشكور على الموقع بس ياليت القى مثل هذا الموقع بالعربي

واكرر ليش العرب ما يقدروا يعمل مثل هذه المنتديات

لا يوجد بالساحة إلا امبراطورية العرب

كان فيه قبله موقع اسمه (الفريق العربي للبرمجة) باشراف الاخوة خالد الصالح وانس عبد الله وغيرهم لكن ... قدر الله وما شاء فعل ...

ان لاحظت اختي فالموقع صحيح يتكلم عن امور مخالفة للقانون لكنه مشرع حسب الاعراف الاوروبية عامة والالمانية خاصة حيث لا يسمح بنشر اي مقال عن برنامج *بعينه* والاخوة فاضيين وراضيين همومهم مش متل همومنا عشان هيك عندهم وقت ليتابعوا كل شي مش متلنا نحن (مهتمين بالاغاني الصرعة والالعاب!)

سلام

Do as I say, not as I do

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

#4

اخي الفاضل

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

بس يا هل ترى ماله دروس اخرى ولو كان له دروس اخرى كيف احصل عليها

تعمل معي جميل

الله يعطيك الف الف عافية ساعدني

#5

اود ان الفت انتباهك الى موقع رائع لتعلم الهندسة العكسية وهو

http://www.reverser-course.de

اما بالنسبة لدروس الاخ خالد فاخر ما اعلمه انه كان بصدد تنسيقها وايجاد سيرفر لتحميلها اليه ثم انقطعت كامل اخباره !

Do as I say, not as I do

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

#6

الأخ chik والأخ Xacker

السلام عليكم ورحمة الله وبركاته

كلامكما عين الصواب فأرجو أن نبدأ

وعلى بركة الله نبدأ

شاكرا تعاونكم معي

اختكم هند

#7

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

أظن أن كل من يريد ولوج هدا الميدان لا بد وأن يتوفر على بعض الأدوات لهدا.

سنستعمل Debugger وأضن أن أفضلهم هو سوفتايس وكما أفترض أننا نعلم كيفية تشغيله أو على الأقل المبادئ الأولية له.

كما يجب أن نتوفر على برنامج يفتح لنا الملف ب الهيكس Hexadecimal وهدا النوع من البرامج كثير ويمكن أن نختار البرنامج الدي ألفناه أو استئنسناه.

وكما يمكن أن نتوفر على برامج أخرى وهي ليست ضرورية في البداية مثل الأسمبلر وبرنامج لتغيير Resource وغيرها.

كما يجب أن نعرف مفهوم PeHeader أو المعلومات التي تكتب في بداية ملف EXE لنعرف مثلا نقطة البداية و sections والحماية. وهنا يمكن أن أرسل لكم ملفا يتكلم عن هدا مستقبلا.

لكن في البداية دعونا نبتدأ بداية أولية وكأننا لا نعرف شيئا في هدا الميدان.

إن برنامج EXE حين يحمله اللودر يضعه في مكان ما في الداكرة وهدا المكان يكون مسجلا في PEHeader وغالبا ما يكون العنوان 400000H بالهكس طبعا بعد هدا يبدأ البرنامج بالتشغيل من نقطة البداية التي هي كدلك تكون معروفة في الهيدر ومن هنا يتم التشغيل حسب متطلبات البرنامج.

هنا سوف لن نبحث نحن عن نقطة البداية وسنتطرق لهدا بعد دراسة الهيدر وسنترك سوفتايس يجدها لنا.

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

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

في البداية سأتككم تزيدون شيئا ما لبرنامج وأظن أن كل مبتدئ في البداية يزيد MessageBox قبل أن يبدأ البرنامج وحين ننقر OK ل MessageBox يتم تشغيل البرنامج عاديا.

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

خدوا أي برنامج بشرط أن لا يكون محميا فهده مشكلة أخرى. سنأخد مثلا Notepad أو calc وهنا لنلاحظ أنهم ليست لهم نفس نقطة البداية.

نفتح مثلا نوتباد في سوفتايس ونكون قد قمنا بسوفتايس على أن تتوقف في نقطة البداية. بعد هدا ستقوم سوفتايسبالفعل في التوقف عند نقطة البداية وهنا يمكن أن نغير مجرى البرنامج يدويا يعنى سنكتب لبرنامج الدي ىعطينا MessageBox في مكان ما خال وسط الداكرة ونزيد له Jump في النهاية إلى النقطة ب المدكورة أعلاه. بعد هدا نغير EIP لنعطيه عنواننا الجديد ونشغل البرنامج وإدا كنا قد قمنا بما يجب فإنن ستلاحظ النتيجة المتوقعة.

سأعطي هنا برنامجا يعطينا MessageBox وأفترض أننا سنكتبه في الداكرة x وسنكتب موضوع MessageBox في x+t و caption في x+c. لكي نكتب بالأسمبلر في سوفتايس نستعمل a address a هي الكوماند للأسمبلر و address هي عنوان الداكرة التي نريد أن نكتب فيها. ففي مثالنا سيكون كالتالي :

A x كوماند لسوفتايس لنكتب الكود

Push 0 البارمتر الأخير ل MessageBox

Push x+c الداكرة اللي فيها الكابشن

Push x+t الداكرة اللي فيها موضوع

Push 0 البارامتر الأول

Call address of MessageBox

Jmp point B القفز إلى اللنقطة ب بعد نقطة التشغيل

وبالطبع ندهب إلى الناوين x+t ونكتب الشيء الدي سيظهر في موضوع البوكس وفي x+c ما يظهر في الكابشن

وفيما يخص address of MessageBox تكونوا قد تعرفتم عليها من قبل افتحوا أي برنامج تكون فيه MessageBox وتكونوا قد عملتم Break BPX MessageBoxA في سوفتايس وحين يتوقف سجلوا عنوان هده الأخيرة.

الآن لا يمكن أن أعطيكم كل هدا لأنه ليست لدي الأدوات لهدا فأنا استعمل كمبيوتر عمومي أما الأدوات فهي في المنزل.

سأقوم بكل هدا وسأكتب في المرة القادمة كل هدا مع العناوين.

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

وهده طريقة أضن أنها تفهمنا كيف تسير الأشياء.

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

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

#8

الله الله ما اروعك وما اروع اسلوبك

روح ياشيخ الله يجعل لك في كل خطوة سلامة أمين يارب العالمين

بصراحة استاذ بل دكتور ما شاء الله عيني عليك بارده

اخي انا لا يوجد على جهازي الأيس (سوفتايس) ولكن مو مهم إذا بتريد اركبه

الوندوز ME ... البرنامج اللي استخدمه أوللي قالوا لي حلو وسهل وسلس

اخي وعزيزي : ما اود ان اجعل لك مشكلة في هذا المنتدى فإذا هناك عليك خطورة ارجو ان تسلسل لي المواضيع وترسلها على أميلي في اول الرسالة وهو

hhnd85@hotmail.com

اما بخصوص البرنامج IceDump ارسل لي اللنك الذي بواسطته احمله

واخيرا وليس اخيرا ادعو لك من كل قلبي بالجنة وان يزيدك علما وعمرا بارك الله فيك وفي امثالك وجعل علمك سببا في دخولك الجنة وصلاح اولادك

تم تعديل هذه المشاركة بواسطة هند في 2 أكتوبر 2003 في 20:50

#9

اخي الغالي chik

عسى المانع خير واسأل الله ان لايكون غيبتك في شئ يفجعنا فيك

بصراحة غيبتك ذي تخوف والله يطمنا عليك

اختك هند

#10

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

أنا أضن أنني لم أتغيب كثيرا فأنا لدي انشغالات أخرى.

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

فيما يخص IceDump فهناك مواقع كثيرة فأضن من الأحسن أن تعمل بحثا في google مثلا أو غيره لتحميله لأنه يمكن أن أرسل رابطا قد يكون شغالا عندي وليس عندك.فهدا البرنامج فهو يشتغل مع سوفتايس إلا إدا كنت تريدين ProcDump فهدا شيء آخر.

وعلى ما قلت أنك تستعملين وندوز Me فأنا لم يسبق أن استعملت هدا وليس على بالي سوفتايس لهدا وعلى ما يبدو يمكن استعمال سفتايس ل 98 لكن مع استعمال DDK الخاص ب Me .

#11

هلا باخوي طمنتي عليك الحمد لله

اعطني بعض الوقت احول جهازي لوندوز 98 واركب السفتايس ونبدأ مع بعض

وعلى ما اركب الوندوز والبرامج تكون انت جهزت بعض الدروس

نعم باغلبك معي ولكن استحملني الله يوفقك

#12

السلام ,

أرى أنك على الخط الآن.

لمادا لا تستعملي برنامجا للريكوفري لتسهل مشاكل التثبيت وإعادة التثبيت.

#13

لمادا لا تستعملي برنامجا للريكوفري لتسهل مشاكل التثبيت وإعادة التثبيت

اخي العزيز ما اعرف ماذا تقصد بالريكوفري

باشكرك على اهتمامك

صدقني انا جالسة اتصفح المواقع وارجع احدث الصفحة اللي فيها موضوعي

لأعرف المستجد لأنني عارفة انك مهتم بموضوعي

لا فقدناك ابدا يارب

#14

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

أظن أن الأخ xacker أعطى كل التوضيحات مشكورا على هده البرامج. وأنا شخصيا أستعمل TrueImage من شركة Acronis ولكن كل واحد يفضل ما يشاء ففي قرص سيدي Bootable واحد مثلا عندي نظام التشغيل مع جميع الدرايفرات وبرامج الكتابة والبرمجة وأشياء كثيرة ولا يتطلب مني إعادة تنصيب كل هدا إلا حوالي 10 دقائق مع أن الكمبيوتر اللي عندي يعتبر تقريبا من عهد الدينوصورات.

دعنا الآن نرجع إلى مثالنا .فقد كتبت ما يلي وسأرسل لك على المايل هدا الملف وورد والملفات المرافقة له وملفات أخرى تتكلم عن PE Header ومن أراد هدا يترك إيميله هنا :

السلام عليكم’

هنا سنجد مثالا كيف نضع MessageBox يضهر قبل أن يبدأ نوتباد وبعد دلك يشتغل عاديا.

هده الطريقة هي مجرد تجربة يدوية تمكننا من معرفة كيف تمشي الأشياء وهنا أفترض أنه ليست لنا معلومات عن كيف يتكون الملف EXE ولا نعرف Sections .

نعمل على نسخة من نوتباد حتى نترك الأصلية كما هي …..

حين نفتح نوتباد من السوفتايس لودر ونوكون قد ثبتناه على أن يتوقف عند البداية فإنه سيقف عند الداكرة 4010AA .

انظر الملف scr1.htm .

0177:004010AA 55 PUSH EBP ^

0177:004010AB 8BEC MOV EBP,ESP ^

0177:004010AD 83EC44 SUB ESP,44

0177:004010B0 56 PUSH ESI

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

كما نرى أعلاه أو في scr1.htm فإن push ebp تأخذ بايت واحد في الذاكرة وهو 55 هيكس

mov ebp,esp فهي تأخذ 2 بايت.

أما إذا غيرنا الذاكرة 4010AA ب قفزة طويلة فهي سوف تأخذ لنا 5 بايت إذن من 4010AA إلى 4010AE فهذا سيضيع لنا الثلاثة أوامر Instructions الأولى أما من 4010B0 وما بعد ستبقى كما هي .

إذن لنقوم بعملنا نبدل الأمر الأول ب قفزة إلى ذاكرتنا وفي داكرتنا نشغل الكود الذي نريد بعد هذا نزيد الأوامر الثلاثة التي غيرناها ونرجع بالبرنامج إلى الذاكرة 4010B0 ومن هنا سيشعر نوتباد كأنه يسير في مساره العادي.

في الملف scr2.htm يظهر التغيير الذي قمنا به في بداية البرنامج

0177:004010AA E9F13A0000 JMP 00404BA0 ^

0177:004010AF 44 INC ESP ^

0177:004010B0 56 PUSH ESI

لقد اخترنا الذاكرة 404BA0 لنضع فيها الكود الخاص بنا . فهي مكان فارغ في البرنامج . في هذه الحصة سنأخذها كما هي ومن بعد سنرى كيف نبحث عن الذاكرة التي نريد أو نزيدها.

نلاحظ العنوان 4010Af هذا لا يهم لأن هذا السطر لن يشتغل أبدا.

في الملف scr3.htm نرى ماذا وضعنا في الذاكرة 404BA0 التي اخترنا أن نضع فيها الكود.

0177:00404BA0 6A00 PUSH 00 ^

0177:00404BA2 68004C4000 PUSH 00404C00 ^

0177:00404BA7 68104C4000 PUSH 00404C10

0177:00404BAC 6A00 PUSH 00

0177:00404BAE E887F5B4BF CALL USER32!MessageBoxA

0177:00404BB3 55 PUSH EBP

0177:00404BB4 8BEC MOV EBP,ESP

0177:00404BB6 83EC44 SUB ESP,44

0177:00404BB9 E9F2C4FFFF JMP 004010B0

الخمس أسطر الأولى خاصة ببرمجة MessageBox . السطر الثاني push 404C00 ففي هذا العنوان 404C00 وضعنا هنا caption التي تحتاجها MessageBox وفي الذاكرة 404c10 وضعنا موضوعها , انظر scr3.htm .

في السطر 6 – 7 – 8 فقد قمنا بوضع الأسطر التي ضيعناها في بداية البرنامج وبعد هذا نقفز إلى البرنامج الأصلي.

هذا ما يدور في الذاكرة أما إذا أردنا تغيير الملف فنفتحه في برنامج يعطينا الهيكس مثل WinHex أو HexWorkShop أو غيرها. حين نفتح Notepad نذهب إلى Offset 10AA ونغير 5 بايت التي تعطينا القفز.

نذهب إلى Offset 4BA0 وننقل هنا البليتات الخاصة بالكود الذي زدناه

في Offset 4C00 نكتب عنوان MessageBox لايتعدى 15 حرفا.

في Offset 4C10 نكتب موضوع MessageBox .

ملاحظة : في سوفتايس يمكن أن نكتب CODE ON حتى تظهر الأرقام الخاصة بكل أمر Instuction وإذا لم نرد هذا نكتب :

CODE OFF .

#15

شكرا لك اخي Xacker

اخي chik بصراحة درس حلو بالمرة والله يوفقك للمزيد

عنوان بريدي

HHnd85@hotmail.com

#16

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

إلى الأخت هند :

انظري إيميلك وأتمنى أن تفيدك الملفات التي أرسلت لك.

إلى اللقاء.

#17

مشكور يالغالي والله يعطيك العافبة

باشيك عليه

#18

وايميلي wormsworms64@hotmail.com ;)

الشكر الجزيل على الجهد

Do as I say, not as I do

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

#19

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

الأخ xacker , انضر إيميلك لتجد الملفات.

وأتمنى أن تكون مفيدة.

إلى اللقاء.

#20

أخي الكريم جدا جدا

أعرف أنني تأخرت في إدراج بريدي هنا ولكن كان هذا لأنني لم أكن مهتم بهذا المجال

فأرجو منك إرسال ملف الوورد عل عنواني البريدي ولك جزيل الشكر

كما أطلب منك أن ترسل لي إرتباط لتنزيل برنامج الsoftice

وعنواني هو

hfphfp@hotmail.com

#21

السلام عليكم ورحمة الله

بصراحه موضوعكم شيق جدا وعندي مداخله عسى ان تتقبلوها بدون زعل

الي و هي ( بناء البرامج و تطويرها اسهل بكثير من فك برامج الغير و انا اعرف انها ليست صعبه ولكن تحتاج الى جهد ووقت يصعب توفيرهما على حساب انتاج البرامج التي لها مردود مالي او فائدة عامة ) و السلام عليكم

#22

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

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

هدا مجرد رأي وطبعا تختلف الآراء.

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

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

إلى اللقاء إن شاء الله.

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

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