עבור לתוכן

עזרה עם bufferoverflow

Featured Replies

פורסם

אני לא יודע אם מותר לשאול את זה פה אבל אני יבהיר שזה נועד לצורך לימוד ואין לי שום כוונה להשתמש בזה לדברים רעים:P

הכנתי תוכנה ממש פשוטה כדי להבין איך bufferOverflow עובד עכשיו התוכנה בעצם מציגה לי את הכתובת בזיכרון של הפונקציה שאמורה להקרא את הכתובת של הפונקציה שאני רוצה לקרוא לה.

ורישמת הכתובות שנמצאות במכסנית של התוכנה.

עכשיו איך אני משנה את הכתובת בזיכרון.

הנה דוגמא שתבינו מה אני אומר כי אני קצת מסתבך בלהסביר

הנה הכתובת בזיכרון של פונקציה A :0x00405011

הנה הכתובת בזיכרון של הפונקציה B שאותה אני רוצה "להכניס" B:0x00405012

ונהנה הכתובות בזיכרון המכסנית:

00000001

20102568

00405011 הכתובת של פונציה A

00256455

12344556

22333333

איך אני יודע איזה INPUT להכניס כדי לשנות את הכתובת המסומנת באדום שהיא של פונקציה A לכתובת של פונקציה B.

פורסם

אתה חושב. ברצינות. יצירת exploit-ים זה לא למתחילים.

זה שאתה יודע את הכתובות של הפוקנציות זה לא מספיק (וגם לא בדיוק קשה). אני מניח שאתה מציג לנו את החלק העליון של המחסנית של פונקציה f ש-A קראה לה, ואתה רוצה לשנות את כתובת החזרה כך שהיא תחזור ל-B? האם f מבצעת קלט כלשהו? אולי לתוך מערך בגודל קבוע? אתה יכול לנסות לדרוס את זה שם.

בשלב הזה של הידע שלך, מה שאתה צריך לעשות זה לחפש buffer overflow tutorial בגוגל. יש הרבה. תתרגל כמה כאלה כדי שתבין על מה מדובר.

הנה דוגמא לאחד: http://www.eecis.udel.edu/~bmiller/cis459/2007s/readings/buff-overflow.html

  • 3 שבועות מאוחר יותר...
פורסם

מסכים וחושב שגם כדאי לך לשחק קצת עם OllyDbg לפני שאתה מתחיל.

אתה יכול גם לנסות לפתור כמה CrackMe בסיסיים. זה ייתן לך כיוון כללי.

בהצלחה!

פורסם
  • מחבר

תודה

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים