السلام عليكم ورحمة الله
بهذا الدرس نكون قد أنهينا الأساسيات المهمة
في موضوع xX البرمجة العكسية Xx
ونكمل باقي المشوار بالأمثلة التطبيقية
وإلى اللقاء
السلام عليكم ورحمة الله
بهذا الدرس نكون قد أنهينا الأساسيات المهمة
في موضوع xX البرمجة العكسية Xx
ونكمل باقي المشوار بالأمثلة التطبيقية
وإلى اللقاء
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
السلام عليكم,
شكرا للأخ jaas مرة أخرى على هذا الموضوع الشيق . وبما أنه لا توجد تفاعلات مع هذا الموضوع أريد أن أعطي طريقة أخرى نتخلص منها من الكود وذلك بدون فك ضغط البرنامج إذ سيبقى على حالته الحالية. وأتمنى أن تكون هناك تفاعلات من الإخوة حتى تعم وتكثر الإفادة.
قبل أن أبدأ أريد أن أأكد أن مثل هذا الموضوع قد يحكم عليه بأنه نوع من الكراكينغ إذ هو يتبع نفس الطريقة. ولكن هنا نريد أن نتعلم كيف نفك ضغط البرنامج أو على الأقل نفهم معنى الضغط زيادة على أن البرنامج المستهدف هو برنامج من صنع محلي للتجربة فقط. كما أن تعلم كل من تقنيات البرمجة قد يصلح لأهداف مختلفة يبقى على المستعمل مسؤولية توضيف هذه المعلومات.
لكي نغير شيئ ما سأستعمل برنامج سوفتايس لهذا الغرض وبرنامج تحويل الهكس لكتابة الكود مباشرة في البرنامج.
أولا سنبحث عن مكان وضع الباتش للتخلص من كلمة المرور ونلاحظ أننا حين ندخل كلمة خطء تعطينا إنذار إذن سنقوم بفعل BPX MessageBoxA في سفتايس وندخل كلمة خطئ بعد توقف سفتايس والضغط على F12 سنجد أننا داخل البرنامج وراع التعليمة التي تعطينا الإنذار ولو نصعد شيء ما في الكود سيكون لدينا شيء من هذا القبيل :
401443 Compares the code starting with last letter 4014E0 cmp eax,F0 <-- If the code is good eax=F0 4014E5 Push 00 4014E7 jz 401501 <-- Jump if good vode <-- Here the code for messagebox and return
نرى من خلال الكود أن عند الذاكرة 401443 تبدأ المقارنة مع كلمة المرور وهذه المقارنة تبدأ مع الحرف الأخير وفي كل حرف صحيح نظيف 10 إلى الرجستر eax وإذا كانت الكلمة صحيحة ستكون عندنا الحصيلة هي F0 وهذا هو المقارنة في العنوان 4014E0 أو القفز في الذاكرة 4014E7 . كل هذا سيمكننا من معرفة كلمة المرور ولكن هنا سنعمل باتش ليقبل أي كلمة كيفما كانت والطريقة السهلة هنا هي أن نجعل البرنامج يقفز كل مرة عند الذاكرة 4014E7 وفي هذه الحالة سيعتبر أن الكلمة صحيحة يعني سنغير jz ب jmp أو حسب الأرقام سنغير 74 كود ل jz ب EB كود للتعليمة jmp قصيرة.
نرى إلى حد الآن أن فكرة الباتش سهلة لكن المشكل هي أين سنجد مكانه في الملف علما أنه مضغوط. والطريقة هنا أننا سنتتبع برنامج فك الضغط حتى ينتهي ونعمل عملتنا ونترك العمل الشاق له أي فك الضغط. برنامج فك الضغط سيعمل بالتفكيك وحين ينتهي يعطي اليد للبرنامج عند نقطة بدايته الأصلية وهذا ما سنقوم بتتبعه بشيء من الصبر . نتتبع البرنامج من بدايته حتى نصل إلى الكود التالي :
4073A9 mov [ebp+03A8],eax <-- Fill the address for entry point 4073BA 4073AF Popad 4073B0 jnz 4073BA 4073B2 mov eax,1 4073B7 Ret 0C 4073BA Push 401530 <-- Push the entry point 4073BF Ret <-- Go to the entry point pushed before
أهم مرحلة فيما سبق هي النقطة 4073BA حيث هنا تظهر نقطة بداية البرنامج وفي السطر الموالي سيذهب البرنامج إلى هذه النقطة ويكون برنامج فك الضغط قد انتهى وسنغير هذا البرنامج ليصبح كما يلي :
4073A9 Popad <-- move up the next instruction mov eax,4014E7 <-- put in eax the address of the patch mov Byte Ptr [eax],EB <-- put there the value we want jmp 401530 <-- Go to the entry of prog
إذن البرنامج سيقوم بفك الضغط وفي الأخير سيغير وسط البرنامج الأصلي ما نريد تغييره قبل أن ينتقل إلى نقطة بداية البرنامج. ونلاحظ هنا أن البرنامج سيبقى مضغوطا.
في الملف المرفق تجدون كل هذه التغييرات في الملف الأصلي.
إلى اللقاء.
شكرا chik على الموضوع
وفي الحقيقة كان الهدف من الموضوع فهم أساسيات في الملف التنفيذي
وليس بالضرورة فهم كسر الحماية
بالنسبة
اقتباسقبل أن أبدأ أريد أن أأكد أن مثل هذا الموضوع قد يحكم عليه بأنه نوع من الكراكينغ إذ هو يتبع نفس الطريقة. ولكن
فلا أعتقد - لأنك كما قلت برنامج صنع محلي - تعليمي لا أكثر ولا أقل
ويحق لي أنا فقط في أن أشتكي عليك :) للتغيير في البرنامج
أما عن عدم وجود أي إستفسار عن الموضوع
فهذا شيء متوقع ؟! قد يكون موضوع متقدم مع إني أصر أنة أساسيات فقط
وشكرا مرة أخرى و إلى اللقاء
-
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
chik كتب:وبما أنه لا توجد تفاعلات مع هذا الموضوع
شكرا لكم جميعا
أكيد ما في تفاعل مع الموضوع
لأنه إنتم معلمينا في الإسمبلي و بالرمجة
و كثير من الأعضاء مبتدئييين و أنا منهم
شكرا مرة أخرى
السلام عليكم
موضوع رائع جدا منكم اخواني لايسعني الا الشكر الكثير لكم
موضوع دسم جدا لاني مبتدي بس يبعث روح الحماس والاصرار على اكتشاف ماتتكلمون عنه والتطبيق
شكرا مرة اخرى
أخي jaas الدرس رائع جدا تسلم يديك والله يعطيك الف عافية ...
في الحقيقة الدرس رائع ولكن بالتأكيد سيكون فيه بعض المعوقات أثناء تطبيقه وخاصة على المبتدئيين أمثالي .
* حاولت تطبيق الدرس بشكل سريع فكانت أول المشاكل هي عند عرضك لسيريال البرنامج وهو
( FWE7HTX3SQ5IA6M ) ووتوضيح ذلك بالصورة حاولت عمل ذلك فلم استطع التوصل للسريال ؟؟؟
* ماذا تقصد بقولك ( وأن ستراجع ترتيب البرنامج عن طريق ملاحظة الفرغات إن صح التعبير ) أي فراغات تقصد ؟؟؟
* عنوان نهاية الترويسة وهو X02C0 لم أستطع العثور عليه ... كيف أجده ؟؟
وصلت لإل هذه النقطة وتوقفت لأنني لم استطع الإكمال ...
أرجو توضيح النقاط السابقة وفقك الله .
أخي chik أيضا أشكرك لمداخلتك الرائعة ولكن أعتقد ان الموضوع يحتاج بعض التفصيل ...
أخيرا سؤال يطرح نفسه :
هل تصلح هذه الطريقة مع كل برامج التشفير مثل Armadillo و ASProtect والأول من أصعب برامج التشفير ثم يليه الثاني من وجهت نظري ؟
وهل يمكن وضع درس حول كيف فك تشفير برنامج مضغوط ببرنامج Armadillo ؟
تحياتي
شكرا على المشاركات
بالنسبة لإستفساراتك أخي شادي
أعتقد أن مصدرها واحد
راجع الدرس وتأكد من أسماء القوائم
مثل إفتح ملف عن طريق File -Open
وإفتح ملف عن طريق View -File
أما عن
اقتباسوهل يمكن وضع درس حول كيف فك تشفير برنامج مضغوط ببرنامج Armadillo ؟
أعتقد إنة في الطريق ( مسألة وقت + ترتيب في مستوى الدروس )
وأنا متأكد لو أضع درس من هذة النوعية لإستفاد 5 أو 10 أعضاء
ولكن لو أضعة بعد مراحل من الدروس سيستفيد 50 أو 100 أو 1000 ليش لا
وأنا في إنتظار مشاركات وتجارب الأعضاء
وأتمنى من كل عضو مر بتجرية أن يضعها في المنتدى ( لكي يفيد ويستفيد )
وبالتوفيق
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
بصراحة اساتذة و الله يزيدكم علما و يحسب في ميزان حسناتكم ان شاء الله
واذا ممكن اسأل هذا السؤال : هل طريقة فك التشفير تعمل على طريقة
تشفير CD-COPS VER 1.92 #3905
لأني جربت اشغل البرنامج ب OLLYDBG فيعطيني انه يجب ان ادخل مفتاح
التعريف وقدحاولت ان اسجل المفتاح الاصلي ولا يتم قبوله مع العلم بأنني قد
نسخته ب NERO
والمسج هي:
THIS CD-ROM IS NOT APPROVED IF THIS IS AN ORIGINAL CD, PLEASE CONNTACT YOUR DISTRIBUTO AND GIVE YOUR MACHINE CODE : 48FC
افيدوني افادكم الله
وشكرا
السلام عليكم,
أولا أريد أن أقول أنني لا أريد أن أتعمق كثيرا في هذا الموضوع لأنه قد ننزلق بسرعة إلى أشياء ممنوعة ويجب أن نحترم مبادئ منتدانا حتى نضمن له الديمومة.
بعجالة يمكن أن أقول أن فعلا حماية من نوع أرمديو هي أصعب نسبيا من الأخرى وهي تتم على مراحل من 1000 بت تقريبا حسب النسخ.
وبالنسبة للأخ lootech أقول أن النيرو ربما ليس الأفضل لنسخ مثل هذه الأقراص وهناك برامج أخرى تصلح قد تفيدك في مثل هذه الحالات وجرب مثلا برنامج كلون سيدي وإن شاء الله تتوفق.
إلى اللقاء.
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
سديتم و وفيتم و جزاكم الله كل خير ان شاء الله
السلام عليكم ..
سؤال أولي وان شاء الله سيليه أسئلة كثيرة حول هذا الموضوع وبالمناسبة اشكر الاخ jass لارشادي الى هذا الموضوع ;)
سؤالي :
عندما قمت بـ Dump - Full للبرنامج من خلال برنامج Procdump32 وتخزين الناتج في ملف جديد .. قمت بتشغيل الملف ، واستغربت كثيراً عندما اشتغل بطريقة طبيعية كالملف الاصلي ؟؟!!
حسب علمي انه يجب أن نجري التغيرات والتي ذكرتها في ملف الشرح حتى يعمل البرنامج ، فهل هذا منطقي ؟؟ وما تعليلك ؟؟
وحتى لا أخفيك ، قرأت الشرح 3 مرات وما زال هنالك بعض الغموض ..
تحياتي
مرحبا بالإحتراف ,,,
أولا أشكرك على الحضور , وأتمنى أنك تتبعت سلسلة الأمثلة إلى أن وصلت إلى هذا الموضوع ؟! لأنها مترابطة وكل قسم مكمل للآخر ,,
المهم نرجع للموضوع
اقتباسعندما قمت بـ Dump - Full للبرنامج من خلال برنامج Procdump32 وتخزين الناتج في ملف جديد .. قمت بتشغيل الملف ، واستغربت كثيراً عندما اشتغل بطريقة طبيعية كالملف الاصلي ؟؟!!
أنت تعرف أن الملف المشفر والمضغوط يكون فقط في القرص وعند تشغيلة فإنة يفك
التشفير في الذاكرة !
برنامج Procdump32 يقرأ محتويات الملف في الذاكرة (بعد فك الضغط ) ويعيدها للقرص
والدليل أنك ستجد أن حجم الملف زاد بنسة كبيرة
وسيعمل البرنامج بدون أي مشاكل لأن التنفيذ سيبقى كما هو ولن يدخل إلى الكود الذي تم فك تشفيرة
بمعنى أن البرنامج سيصبح 2 برنامج مشفر + البرنامج بعد فك التشفير
والبرنامج المشفر هو الذي سيعمل ,
وبدورنا نغير عناوين البرنامج لنجعلة يبدأ من البرنامج الذي تم فك تشفيرة ليعمل البرنامج بكل بساطة
---
راجع الأمثلة الموجودة في القسم , وبعد ذلك ضع أي سؤال أو إستفسار
وإن شاء الله تجد أجوبة كاملة وواضحة من أعضاء المنتدى الكرام
ولا تتردد في أي سؤال ,,, إلى اللقاء
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
مرحبا ...
حسناً وصلت الفكرة ، ولكني كنت أعتقد انه عندما نقوم بعملية Dump فإننا نقوم بتخزين البرنامج الذي هو في الذاكرة والذي يكون اصلا قد تم فك تشفيره .. أي انني سأخزن البرنامج بدون تشفير !! هذا ما اعتقدته !!
لقد قمت بقراءة مواضيعك ذات العلاقة .. طبعا لم فهمها بشكل كامل .. ولكن بالتأكيد عند بدء التطبيق العملي سيزداد فهمي لها .
على كل لدية بعض الاسئلة ان أمكن :
1. في صفحة 11 من ملف الشرح الخاص بك تذكر ان عنوان نهاية الترويسة هو x02c0 ، هل من الممكن ان تشرح قليلا كيف قمت بإيجاده ؟؟
2. هل يمكن اعادة شرح فك تشفير قسم rdata ؟؟ اشعر انه هنالك شيء مفقود لم افهمه !!
3. هل يمكن ان تقوم بايجاد قيمة عنوان بداية تنفيذ الملف ، عنوان بداية قسم الكود ، عنوات بداية قسم البيانات ، عنوان البرنامج في الذاكرة ؟؟ بحيث تكون هذه القيمة من ترويسة الملف وليس من خلال شاشة تقسيم الذاكرة في Olly ؟؟ أي من خلال مواقعها التي ذكرتها في شرحك في موضوع ( كيف تعمل مترجمات لغات البرمجة ) ؟؟
4. متى يمكنك البدء في شرح العملية العكسية ؟؟ اي عملية تشفير الملف ؟؟
شكرا جزيلا واعذرني ان كانت اسئلتي ناتجة عن عدم فهمي لشرحك
السلام عليكم,
في ميدان فك التشفير يجب أن نعلم أنه ليست هناك طريقة قد تشتغل لكل أنواع التشفير وهنا نجد الطريقة الرئيسية لعمل هذا ولكن يجب كل مرة أن نرى ماذا عمل التشفير حتى نقوم بفكه. ففي بعض الحالات يمكن أن نقوم بعمل Dump للملف ويشتغل وهنا يكون التشفير لم يقم بإضافات أخرى ولكن هناك بعض التشفيرات مثلا التي تقوم بتغيير Import وهنا يجب أن نقوم أيضا بإعادة هذه الفقرة وهناك أيضا من يقوم بفك التشفير قطعة بقطعة وعمل Dump كامل قد لا ينفع لوحده وهنا يجب تتبع القطع حتى نصل إلى القطعة الرئيسية التي يكون فيها البرنامج.
هذه فكرة لنعرف أن الملف سيفك تشفيره في الذاكرة في وقت من الأوقات ويبقى علينا أن نتتبع البرنامج حتى نصل إلى هذه المرحلة وهنا المبرمج لبرامج التشفير قد يعقد هذه المسيرة حسب نوع التشفير .
وأضن أن أحسن طريقة للتعلم هي التطبيق فحين نقوم بفك بعض البرامج قد نتعلم بعض التقنيات ونعرف كيف يمكن أن يتحايل المبرمجون ليخفوا طريقة تشفيرهم.
إلى اللقاء.
السلام عليكم
أخي Jaas قمت بتطبيق الدرس و لكن الملف لا يعمل
أرفقت لك الذي قمت به و أرجوا منك توضيح خطـأي و شكرا
لماذا لم يرد علي أحد
السلام عليكم ..
يبدو ان هنالك ما يشغل المشرفين عن هذا المنتدى هذه الايام ..
فنلنتمس لهم العذر ...
أما بالنسبة لي .. فلا اعتقد اني قادر على ايجاد موقع الخلل !!
تحياتي
مرحبا ,,,,,
قمت بتخزين الملف ,, وسأبحث لك عن حل
وبالتوفيق ,,,
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
الأخ الكريم
و المعلم الفاضل Jaas لقد إكتشفت الخطأ و كان أنني لم أنفذ الخطوات كلها
و الان نجح الجزء الأول و ما يعيق تقدمي حاليا أنني لم أفهم الجزء الخاص بال Resources
أخي الكريم ,,
أسهل شيء في فك التشفير هو قسم المصادر
إنسخة كما هو ومن نفس عنوانة في الذاكرة ( وغير عنوان الجدول وحجم الجدول )
من ترويسة الملف PE
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
يعطيك العافية اخوي jaas
ماشا ءالله عليك مبدع
عندي سؤال لو تجاوبني عليه اكون شااااكر لك يالغالي
عندما اردنا تغير التعليمة من je الى jne قلت ان هناك طريقتين للتغير
ياريت توضحها اكثر يالغالي لاني محتاج لها كثير الله يسلمك
وتحياتي لك
يعطيك العافية اخوي jaas
ماشا ءالله عليك مبدع
اعذرني واعرف ان الموضوع لو يمر عليه فترة ينتهي مفعوله بس لي طلب
الشرح اللي نزل يتكلم عن البرامج
هل يتحدث عن الملفات (( الباتشات )) لاني جربت على اكثر من باتش لم اجد حل
معلوم ان هناك طرق كثيرة في فك باتشات الهكر ولكن بطريقتك اليدوية هل استطيع
اتمنى ارشادي
سلمت اخي من كل شر
السلام عليكم ورحمة الله وبركاته
اولا اسف للرد على موضوع قديم
لكنه مفيد :D
اخوي JAAS اشكرك على وضعك موضوع مثل هذا
بس واجهتني مشكله بفك برنامج ProAgent v2.1
بعد فكه ببرنامج الـPROCDUMP كان حجمه 1.29 ميجا بعد الفك طلع حجمه 2.29
حللته بـOllyDbg بس تطلع لي رساله تقول ان الملف مضغوط او مشفر
شوف الصوره :
http://up4arab.com/images/up4arab.php?up4arab=1130693742645
حتى حاولت افكه بـplugins خاص ببرنامج olly ونفس الكلام
مع العلم ان البرنامج مشفر من اداه اسمها SISCrypt من صنع مصممي البرنامج وغير موجوده بالنت
وهذا رابط للـProAgent v2.1
يا ليت حل
ومشكور مره ثانيه
تم تعديل هذه المشاركة بواسطة zero-cool في 3 نوفمبر 2005 في 07:43