-7h3r3 15 n0 5p00n- BlackEnergy V.2 - Full Driver Reverse Engineering מאת דניאל אבינועם, בן קורמן ואביב שבתאי הקדמה,BlackEnergy תרחיש תקיפה שגורם להתק

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

Download "-7h3r3 15 n0 5p00n- BlackEnergy V.2 - Full Driver Reverse Engineering מאת דניאל אבינועם, בן קורמן ואביב שבתאי הקדמה,BlackEnergy תרחיש תקיפה שגורם להתק"

תמליל

1 -7h3r3 15 n0 5p00n- מאת דניאל אבינועם, בן קורמן ואביב שבתאי הקדמה,BlackEnergy תרחיש תקיפה שגורם להתקפת מניעת שירות מבוזרת (,)DDoS Attack נודע לשמצה בשנת 8008 כששימש במתקפת סייבר ששוגרה נגד מדינת גאורגיה במסגרת הסכסוך הרוסי / גאורגי שהתרחש באותה שנה. קבוצה רוסית בשם Sandworm שויכה לפוגען הראשוני, ועם השנים גרסאות נוספות הועלו לאינטרנט בפורומים מחתרתיים. במסמך זה נראה את חקירת ה Driver- של הגרסה השניה של הפוגען שיצאה בשנת,8000 מתוך זיכרון של עמדת קצה נגועה. לפני שנתחיל : במהלך החקירה נשתמש במושגים, מבנים ופונקציות בסיסיות הקשורות בפיתוח Windows,)WKD( Kernel Drivers ולא נסביר אותם לעומק - נפנה לעמודים בספר המצוין של פאבל יוסיפוביץ' ( )zodiacon לפיתוח WKD למידע מעמיק על הנושא בצורה הבאה : מושגמס' עמוד. כשנגלה מידע חדש על חלקים בקוד הנחקר נבצע פעולות מובנות מאליו מבלי לציין מפורשות (שינוי שמות פונקציות, שינוי שמות משתנים, בחירת ה Union- הרלוונטי וכד') התרחיש השלם מורכב מאוד, ומכיל הרבה חלקים וקבצים שונים. במסמך זה נחקור רק את הרכיב ה -Kernel- י ששימש בתקיפה, ולא נראה את חקירת הזיכרון המלאה מאחר וזו מתועדת בהרחבה באינטרנט. את כל ה Scripts- שכתבנו במהלך החקירה, קובץ ה Driver- שאותו חקרנו ומסמך זה מתורגם לאנגלית ניתן למצוא כאן. השתמשנו ב Volatility 2.6- לחקירת דגימת זיכרון שמגיעה עם התקנת התוכנה ומכילה את הפוגען, וב IDA Pro 7.3- לחקירת הקבצים החשודים שמצאנו.

2 חקירת הזיכרון תחילה נריץ -Plugin ים בסיסיים לחקירת ה Kernel Space- של הזיכרון כמו SSDT,Callbacks ו Modscan- ונחפש משהו שקופץ לעין. מ Callbacks- ניתן לראות ש Driver- עם השם המחשיד 00004A2A נרשם לקבלת אירועים ממערכת ההפעלה בעזרת הפונקציה :PsSetCreateThreadNotifyRoutine204 מ SSDT- אפשר לראות שקיימת טבלת SSDT נוספת, וה Driver- הזה רושם את עצמו אליה, מה שבוודאות מחשיד אותו : 1

3 בנוסף, ל Driver- הזה אין DeviceObject משויך אליו, מה שמונע מכלי -User Mode י לתקשר איתו (לא קיים אזכור שלו בפלט של ה.)Devicetree plugin- בעזרת ה Driverirp plugin- נוכל לראות של Driver- אחר בשם,icqogwp אין קובץ משויך על הדיסק, ו Dispatch Functions44 3- שלו מצביעות לאותה כתובת ב Driver- החשוד ( Create, Close ו - :)DeviceControl נאתר את כתובת הבסיס של ה Driver- הראשון ונחלץ אותו מהזיכרון : 3

4 הכנות לחקירה סטטית אם נזרוק כעת את ה Driver- ל IDA- לא נוכל לחקור אותו IDA. לא תכיר באיזה פונקציות API ה Driver- משתמש ויהיה קשה מאוד להבין מה הוא עושה. זה נובע מפעולת הטעינה של ה Driver- לזיכרון. לפני שנטפל בבעיה נתחיל מפעולה פשוטה : נבצע Rebase למרחב הכתובת של ה Driver- על פי כתובת הבסיס של ה Driver- שזיהינו קודם דרך חקירת הזיכרון : כדי לסדר את בעית ה Imports- נוכל להיעזר שוב בקובץ הזיכרון ולמצוא דרכו את כתובות הפונקציות ששימשו את ה Driver- בזמן ריצתו (בעזרת הרצת )impscan ובפלט נעזר כדי להגדיר ב IDA- את ה - Symbols לפונקצית שה Driver- עושה להן.Import ניצור Script ב Python- שיעזור לנו להמיר את הפלט ל IDC Script- שנוכל לטעון ל IDA- כדי לשחזר את טבלת ה :)impscantoidc.py( IAT- 4

5 : הקודם Script- שהתקבל מה IDC Script את IDA- כעת נריץ ב :impscan לאחר מכן נראה שמופיעים לנו שמות הפונקציות כפי שזיהינו דרך BlackEnergy V.2 - Full Driver Reverse Engineering פברואר,216 גליון

6 מאחר ואנחנו יודעים מקובץ הזיכרון גם את הכתובות של פונקציות ה SSDT- המזויפות שאליהן יש קפיצה, נוכל לכתוב Script דומה לקודם שמפרסר את הפלט שמגיע מהרצת SSDT על הזיכרון ומעדכן את שמות הפונקציות ב :)ssdttoidc.py( IDA- לאחר הרצת הפלט, במבט ראשוני על חלונית הפונקציות ב IDA- לא נראה הבדל, זה מכיוון ש IDA- מלכתחילה לא פרסה את ה Driver- בצורה מושלמת ולכן נצטרך לגשת אל הכתובת של כל אחת מהפונקציות הללו ולהגדיר אותן כפונקציות (לחיצה על P במקלדת). נקבל את התוצאה הבאה : כעת נוכל להתחיל לחקור את ה.Driver- 6

7 DriverDispatch בחקירה אידיאלית נרצה להתחיל בפונקציית ה DriverEntry50- כדי לראות הגדרות ראשוניות של משאבים שישמשו את ה Driver- בהמשך הקוד שלו, אך במקרה שלנו הפונקציה לא קריאה ב Image- שקיבלנו מהזכרון והיא :Corrupted נצטרך למצוא נקודת התחלה אחרת. מוקדם יותר ראינו שנרשמו שלוש Dispatch Functions לכתובת 0xff0d31d4 ב Driver- שלנו, ומאחר והיא פונקציה מסוג DriverDispatch אנחנו יודעים שהחתימה שלה נראת כך : נעבור אליה ונגדיר את הפרמטרים שהיא מקבלת למקבילים בחתימה, נשתמש ב Decompiler- של Hex- Rays להקלת הניתוח (לחיצה על F5 ב :)IDA- 7

8 הפונקציה נראית לחלוטין כמו פונקציית Dispatch שמטפלת בכמה סוגי בקשות, נתחיל לעבד אותה : מבוצעת בדיקה לסוג הבקשה, במידה ומדובר בבקשת DEVICE_CONTROL יש בדיקה של ה IO-53- Control-Code ובמידה וה Buffer- המתקבל מה User- גדול מ 548- בתים תבוצע קריאה לפונקציה sub_ff0d3075 עם הכתובת שמכילה את ה Buffer- וגודלו, אחרת יוחזר ערך שגיאה, נשנה את שם הפונקציה ל.DeviceControlDispatcher- עבור בקשת IRP_MJ_CREATE ה Driver- מחזיר,STATUS_SUCCESS ועבור בקשת IRP_MJ_CLOSE הוא משחרר Mutex037 ששימש אותו במהלך הקוד. גם כאן, נסתכל על הפרמטרים של הפונקציה KeWaitForSingleObject ונראה ש stru_ff0d536c- הוא מבנה מסוג - KMUTANT נשנה את שמו. 8

9 DeviceControlDispatcher ניכנס ל DeviceControlDispatcher- ונתאים את שמות הפרמטרים המתקבלים אליה : הפונקציה ארוכה ומכילה כמה Branches עבור הקלטים השונים המגיעים ב.Buffer- ראשית, מבוצעת קריאה לפונקציית עזר sub_ff0d26d4 שכנראה מפענחת כתובות של פונקציות : 9

10 SUB_FF0D26D4 כשנסתכל עליה ב- Decompiler נראה שוב תלות בפונקציה נוספת (sub_ff0d2797) שמחזירה אוביקט שעליו רצים עם קבועים מוכרים מפורמט ה- PE כמו,)0x3C( e_lfanew מה שאומר שהפונקציה הזו כנראה מחזירה Image של קובץ: נראה ש- 8 הפרמטרים שמועברים אליה שמורים בזיכרון ה- Driver ומכילים את המחרוזות "Ntoskrnl.exe" ו-" hal.dll ": 20 BlackEnergy V.2 - Full Driver Reverse Engineering גליון 216, פברואר 1012

11 כלומר, אנחנו חושדים שהפונקציה מקבלת שם של קובץ ומחזירה את כתובת ה Image- שלו. כשניכנס אל הפונקציה נראה שההנחה שלנו הייתה נכונה : ה Driver- משיג את רשימת כל ה Modules- הטעונים בעזרת הפונקציה ( QuerySystemInformation שורה,)08 שזאת תחזיר לו מבנה מסוג :RTL_PROCESS_MODULES המבנה מכיל רשימה של מבנים מסוג RTL_PROCESS_MODULE_INFORMATION שנראים כך : 22

12 ה Driver- בודק אם השם שהתקבל הוא ( ntoskrnl.exe שורה,)05 ומאחר וה Module- הזה נמצא תמיד ראשון ברשימה, ערך ה ImageBase- שלו יוחזר (שורה.)07 במידה ומדובר ב Module- אחר, נרוץ בלולאה עד שנמצא אותו (שורה )89 ונחזיר את אותו הערך (שורה.)36 נשנה אם שם הפונקציה ל -.GetImageBase נתחיל לרוץ על הקטע שמפרסר את ה - PE- כאמור ב 0x3C Offset- נמצא השדה e_lfanew המכיל את הכתובת של :IMAGE_NT_HEADERS הערך 0x70 הוא בעצם ( )0x18 + 0x60 ומכאן שהוא מפנה ל Offset( _IMAGE_OPTIONAL_HEADER- )0x18 ואז למערך :)0x60 Offset( DataDirectory : 21

13 מכאן והלאה ה Decompiler- יכול להיות מבלבל בגלל המשחק עם כתובות וערכים וצריך לשים לב טוב טוב להמרות, לכן נעדיף Assembly ועבודה צמודה עם המבנים של ה.PE- בשני המקרים ( )hal.dll / ntoskrnl.exe אוגר EDX יכיל את כתובת ה Image-Base- של ה Module- הנבחר ויעשה בה שימוש עבור תהליך החילוץ. בעזרת עבודה צמודה עם ה PE Format- אנחנו מגלים שנעשה איתור של ה Export-Table- של ה Module- ומציאה של כתובות המערכים AddressOfFunctions, AddressOfNames : ו :AddressOfOrdinals- לאחר מכן מבוצעת לולאה שעוברת על השמות של הפונקציות ומשווה Hash שמחושב בעזרת השם מול הפרמטר השני שהועבר לפונקציה : הקריאה לפונקציה sub_ff0d26ad היא כנראה פונקציה המקבלת שם של פונקציה ומחשבת את ה Hash- שלה. כל עוד לא נמצאה הכתובת המבוקשת ממשיכים עד שעוברים על כל מצביעי הפונקציות הקיימות ובמידה והכתובת לא נמצאה יופעל.Exception 23

14 נפתח את הפונקציה ב :Decompiler- כמו שהנחנו, הפונקציה מקבלת שם ומחשבת לפיו.Hash אותו Hash מושווה לאחר מכן וכך מבוצע ייבוא דינמי ומוסווה של פונקציות שישמשו את ה.Driver- פונקציית ה Hash- מתבצעת על שם הפונקציה מתוך.AddressOfName כדי לדעת איזו פונקציה מבקשת התוכנית, נצטרך לממש אותה בעצמנו, לייצר Hash Dictionary של שמות וכתובות פונקציות. לכך נצטרך : לבצע Dump ל ntoskrnl.exe- מהזיכרון. לפרסר את ה Export-Directory- של ntoskrnl.exe ולמצוא את השם של כל אחת מן ה - ExportFunctions של ה.Module- לחשב Hash על פי פונקציית ה Hash- ששימשה את ה Driver- לכל.Export Function להשוות את התוצאות מול ה -Hash- ים שנמצאו ב.Driver- כמובן שנצטרך לעשות את אותו התהליך עבור hal.dll גם כן (אנחנו נראה רק את פרסור.)ntoskrnl.exe נאתר ונחלץ את ntoskrnl.exe מהזיכרון בדומה לאיך שחילצנו את ה Driver- מהזיכרון בתחילת החקירה. נכתוב Script שיפרסר את ה Export-Directory- וישמור את השם של כל Export-Function ( :)ExportFunction.py 24

15 כעת נבנה Script שמסוגל לחשב את פונקציית ה Hash- ששימשה את ה :(BEHashCalc.cpp) Driver- ונקבל : לסיכום, ראינו שהפונקציה sub_ff0d26d4 משמשת את התוכנית כמו GetProcAddress - חשאית יותר, נשנה את שמה ל.StealthierGetProcAddress- מאחר ומדובר ב Driver- שרץ ב Kernel- הפונקציות האלה יהיו תמיד בזיכרון (מרחב זכרון משותף ב )Kernel- ולכן אין צורך לטעון כלום. מעתה ואילך נשתמש בפלט ה Script- שכתבנו ובכל פעם שיש שימוש ב StealthierGetProcAddress- נדע את שם הפונקציה שתשמש את ה Driver- על פי הערך שנשלח. נסכם את מה שראינו עד עכשיו : 25

16 חזרה ל DeviceControlDispatcher- כעת אפשר לחזור לפונקציה הראשית של ה Driver- שמטפלת בבקשות.IRP_MJ_DEVICE_CONTROL בתחילת הפונקציה יש שימוש ב ExAllocatePool40- שמקבלת גודל קבוע, ככל הנראה של המבנה שאותו אמור לקבל מה,User- ולאחר מכן לעבוד איתו : כאן אנחנו נתקלים בבעיה - ברוב המקרים ה Driver- והרכיבים המתקשרים איתו "מסכמים" על מבנים קבועים שבעזרתם הם יתקשרו אחד עם השני, מה שגורם לבעיה לנו החוקרים שלא יודעים את אותה סכימה. מאחר ולא מדובר במבנים מוכרים אנחנו לא יודעים איזה ערך אמור להיות באיזה Offset ב - Buffer אותו שולח ה,User- לא יודעים מה הגודל שלו, מאיזה סוג הוא ולמה הוא משמש. מעכשיו נצטרך להתחיל לעקוב אחרי העבודה עם ה Buffer- וננסה להבין איך נראים המבנים שאיתם ה Module- מדבר. נחזור לקוד - אפשר לראות שב pbuffer+4- יש איזשהו ערך שלפיו מתבצע ה Switch- בעל ( Cases 9 רואים חלקית). מדובר ככל הנראה ב,Enum- שלפיו ה Driver- יודע לבצע פעולות. נתחיל לתעד את המבנה שנשלח ל ( Driver- נקרא לו " "SystemBuffer מעכשיו) וכרגע הוא נראה כך : בשלב הזה נתחיל לעבור על כל.Case 26

17 - CASE 1 מוביל אותנו ישירות ל,LABEL_4- שם אפשר לראות את האתחולים הבאים : נראה שהאלוקציה שה Driver- מתחזק שונה מה Buffer- שהוא קיבל כקלט, לכן נעקוב גם אחריו (ייקרא ".)"PoolAllocation בנוסף נשים לב לקוד המטעה שיצר ה Decompiler- שיופיע גם בהמשך החקירה, כשהכוונה ב ppoolallocation_ + 2- היא ל.pPoolAllocation_ + 0x8- עוד תרגום מטעה שנראה יהיה מהצורה ],ppoolallocation_[index כאשר index גם כאן יהיה ה Offset- במבנה בכפולות של 4 בתים. חשוב לציין שתרגום זה הוא נכון ולא טעות של ה,Decompiler- והוא קורה בעקבות ההתייחסות שלו ל - ppoolallocation כמצביע למערך של,DWORD טיפוס בגודל 4 בתים. במבט נוסף על כל הפונקציה נוכל גם להסיק שהערך הראשון ב ppoolallocation- הוא ה BufferCode- (חצים אדומים), וש LABEL_12- משחררת את האלוקציה ויוצאת מה.Switch- לפי הקריאות לשם זה נראה כמו :Cleanup 27

18 ש) נמשיך עם,Case 1 אחרי האתחולים שראינו קודם יש קפיצה ל- LABEL_10, משם יש בדיקה של איזשהו flag שנמצא ב- SystemBuffer+8 )מתייחסים רק לבית אחד, אבל יכול להיות שמדובר במשתנה בגודל 4( ובמידה והוא,TRUE נכנסים ל- sub_ff0d3592, מכניסים את ערך החזרה שלה לערך הראשון ב- SystemBuffer ויוצאים. כשניכנס ל- sub_ff0d3592 נראה שימוש ראשון ב- Mutex משוחרר בבקשת,)IRP_MJ_CLOSE ולאחר שהוא מוחזק יש עוד פעולות שמותנות בערך החזרה של הפונקציה :sub_ff0d3329 כש- Driver משתמש ב- Mutex בדרך כלל מדובר בגישה למשאב משותף )ברוב המקרים רשימה(, שיכול להשתנות מכמה Threads במקביל ולכן נדרשת נעילה. נראה שיש שימוש בשני משתנים גלובאליים: dword_ff0d53cc ו- dword_ff0d53d0, והבלוק שמוקף באדום מזכיר מאוד עבודה עם מבנה מסוג,LIST_ENTRY 42 שמקשר בין כל האובייקטים ובכך יוצר רשימה: במידה ואכן מדובר במבנה מסוג זה, מבט נוסף על רצף הפעולות מרמז על הוספה של ppoolallocation המשתנה הזה מצביע לסוף כלומר, - )מסומן בצהוב( ברשימה dword_ff0d53d0 אחרי המבנה הרשימה. מכאן בא החשד שהמשתנה השני: dword_ff0d53cc מצביע לראש הרשימה ( נקבל את ההנחה הזו שוב לפי רצף הפעולות - במידה ולא קיים סוף רשימה, תגדיר את ה- Entry הזה כראש הרשימה. כך או כך ה- Entry יהיה ראש הרשימה לאחר קטע הקוד(. 28 BlackEnergy V.2 - Full Driver Reverse Engineering גליון 216, פברואר 1012

19 כדי לוודא את ההנחה הזו נסתכל על הפונקציה :sub_ff03329 ניתן לראות שהפונקציה מבצעת איטרציה על מבנה הנתונים (שהנחנו שהוא רשימה מקושרת שתחילתה במשתנה )dword_ff0d53cc ובכל איטרציה היא משווה ערכים מכל Entry ברשימה ( )i לפרמטר שקיבלה כקלט ( :)a1 29

20 מכאן אפשר להבין 8 דברים חשובים - הרשימה בנויה ממבנים מסוג,PoolAllocation וב 0x24 Offsets- ו - 0x28 נמצאים ה Flink- וה Blink- בהתאמה : כשנסתכל על ה XRefs- של הפונקציה נראה שהיא נקראת מכל הפונקציות שב SSDT- המזויף : ניכנס לכמה מהן לראות את השימוש בפונקציה. נראה שהפונקציה מגדירה את ערך החזרה של כל הפונקציות המזויפות (? )PoolAllocation ושולחות אותו. במידה והתוצאה המוחזרת היא TRUE יוחזר למשתמש ערך שגיאה, במידה ו,FALSE- תרוץ פונקציה אחרת עם הפרמטרים שנשלחו (לאחר בדיקה מדובר בכתובת הפונקציה האמיתית) : 10

21 ביצוע Hook לטבלת ה- SSDT יאפשר לתוכנה זדונית להשפיע על התוצאה שמוחזרת למשתמש ובכך להסתיר את הפעולות שהיא עושה. מהשימוש ברשימה המקושרת והמימוש של הפונקציות המזויפות, ניתן להסיק שה- Driver הזדוני מתחזק רשימה שמכילה מידע על משאבים שמיועדים להסתרה, וכאשר מגיעה קריאה לאחת מהפונקציות שיכולות להסגיר אותם, מתבצעת בדיקה בין הרשימה לקלט שהגיע והפלט מוחזר בהתאם. במידה וההנחה שלנו נכונה, לפני הקריאה ל- sub_ff03329 יבנה מבנה מסוג PoolAllocation שישלח לפונקציה כפרמטר, כי אנחנו יודעים שהרשימה שלנו בנויה ממבנים כאלו, ושהפונקציה משווה בין הקלט לשאר האובייקטים ברשימה. 12 BlackEnergy V.2 - Full Driver Reverse Engineering גליון 216, פברואר 1012

22 בכל אחת מפונקציות ה SSDT המזויפות נעקוב אחרי המבנה וננסה להבין איך הוא בנוי. בדומה ל,DeviceControlDispatcher- בכולן מוכנס לערך הראשון במבנה קוד שמשתנה בין כל סוג בקשה : CODE=1 לבקשות שקשורת ל,PID- וב 0x8 Offset- מתחילת המבנה יישמר ה PID- עצמו (מתוך :)FakeNTOpenProcess CODE=2-4 לבקשות שדורשות השוואת ( Strings מתוך :)FakeNtDeleteValueKey נבחין כי הפרמטר שמועבר ל sub_ff הוא הכתובת (המצביע) של v5( var_4c ב - :)Decompiler כלומר מאחר ובמחסנית יהיה מבנה מסוג,PoolAllocation נסתכל על המיקום של ה String- ביחס ל - var_4c ובכך נסיק את ה Offset- שלו במבנה : Var_4C נמצא ב Offset-4C- לעומת DestinationString שנמצא ב.-3C- כלומר ה String- במרחק 0x10 מתחילת המבנה. 11

23 בנוסף IDA, זיהתה ש DestinationString- הוא מבנה מסוג :UNICODE_STRING38 נקודה חשובה IDA : יכולה להתייחס למשתנים בפונקציה באמצעות אוגר EBP או באוגר ESP כ -.Index מכאן שהערכים שהמשתנים האלה יקבלו ב Disassembler- ישתנו בכל אחד מהמקרים - כמשתמשים באוגר ( EBP כמו במקרה שלנו) הערכים יהיו שליליים, וכשמשתמשים ב ESP- הם יהיו חיוביים. הסימנים מתהפכים בעקבות המיקום של המשתנים במחסנית ביחס לשני האוגרים. כך או כך ההפרש בינהם יהיה זהה תמיד. CODE=7 לבקשות קריאה מהזיכרון. ב 0x18 Offset- יהיה הכתובת שממנה קוראים וב 0x1C- גודל הקריאה (מתוך :)FakeNtReadVirtualMemory בנוסף יש שימוש בפונקציית עזר שממירה ProcessHandle ל PID- שלו. המשתנה שמקבל את ה PID- ( )v7 נמצא אחרי BytesToRead במחסנית, כלומר הוא יהיה ב :0x20 Offset- (אומנם ב Decompiler- אנחנו לא רואים שה PID- מוגדר במבנה,v6 אבל אנחנו יכולים להסיק שהמשתנה הוא חלק מהמבנה, אחרת למה שיוגדר מלכתחילה?) CODE=8 לבקשות שקשורות ל.Threads- ב 0x8- יהיה ה ( PID- כמו שהיה ב )CODE=1- וב 0xC- ה TID- (מתוך :)FakeNtSuspendThread ל CODE=5,6,9- אין אזכור באף פונקציה מזויפת. 13

24 אחרי שנוסיף את כל הערכים שגילינו ב- Offsets המתאימים למבנה PoolAllocation הוא יראה כך: Sub_FF0D3329 אחרי שמילאנו את המבנה PoolAllocation נוכל לחזור ל- sub_ff0d3329, בבדיקת איבר ברשימה, ולהבין יותר בקלות את ההשוואות שהיא עושה. אותה פונקציה שחשודה נתאים את שמות המשתנים לערכים שגילינו ונוכל לראות בקלות שהפונקציה מחפשת האם ה- Entry שהיא קיבלה נמצא ברשימה: 14 BlackEnergy V.2 - Full Driver Reverse Engineering גליון 216, פברואר 1012

25 כש BufferCode=2-4- יש שימוש בפונקציית עזר שמקבלת את המצביעים לשתי המחרוזות. במבט מהיר אפשר לראות שהפונקציה הזאת משווה בינהן : כש BufferCode=8- יש בדיקה של ה PID- ולאחר מכן של ה :TID- 15

26 ב BufferCode=7- יש בדיקה ראשונית האם ה PIDs- זהים, ולאחר מכן האם מרחב הכתובות המבוקש מכיל בתוכו את איזור הזיכרון הזדוני : סה"כ הפונקציה sub_ff0d3329 מקבלת מבנה מסוג PoolAllocation ובודקת האם הוא נמצא ברשימה, במידה וכן היא מחזירה אותו, מעתה נקרא לה :CheckIfObjectInList 16

27 כעת נוכל לחזור לפונקציה sub_ff0d3592 מתוך Case 1 ב- DeviceControlDispatcher : גם כאן אנחנו רואים שוב שימוש בפונקציית עזר:.sub_FF0D340A כשניכנס אליה נראה בתחילתה לולאה שסוכמת את גודל כל האובייקטים ברשימה: 17 BlackEnergy V.2 - Full Driver Reverse Engineering גליון 216, פברואר 1012

28 לאחר מכן מוקצת הקצאה חדשה בגודל שנסכם, ועוד לולאה שרצה שוב על הרשימה - הפעם מעתיקה את כל הערכים מכל ListEntry להקצאה הגדולה שנוצרה : בשורה 68 אנחנו רואים את השימוש הראשון (והיחיד) בערך שנמצא ב 0x4 Offset- במבנה.PoolAllocation הערך מוגדר כדגל שלפיו התוכנית מעתיקה או לא מעתיקה את ה ListEntry- להקצאה. אחרי מילוי ההקצאה הפונקציה מגדירה אותה כ Value- למפתח Registry בשם " :"RulesData 18

29 . ומעדכן אותו בכל הוספה של אובייקט לרשימה Registry שומר את הרשימה שלו בערך Driver- גילינו שה : נשנה את שמות הפונקציות בהתאם AddObjectToList - sub_ff0d3592 UpdateListInRegistry - sub_ff0d340a BlackEnergy V.2 - Full Driver Reverse Engineering פברואר,216 גליון

30 נחזור ל Case 1- ב :DeviceControlDispatcher- עצרנו בתנאי בשורה.35 במידה והתנאי הוא TRUE האובייקט שמתקבל מה User- מוכנס לרשימה וסטטוס ההצלחה מוחזר. אם התנאי לא מתקיים יש כניסה לפונקציה,sub_FF0D3620 שבמבט מהיר נראה שהיא מחפשת את האוביקט ברשימה, מוציאה אותו ומעדכנת את ה :Registry- 30

31 לסיכום, ב Case 1- ה Driver- מקבל מבנה מסוג PoolAllocation בעל CODE=1 ומוסיף / מוציא אותו מהרשימה : - CASE 2-4 אנחנו יודעים שה BufferCode- שמתקבל מה ( User- עליו רץ ה )Switch- מועתק לערך הראשון ב - PoolAllocation- כלומר גם כאן מדובר במקרים בהן מתקבל אובייקט PoolAllocation שמכיל מחרוזת. המחרוזת מועתקת מה UserBuffer- לאובייקט ה PoolAllocation- החדש ולאחר מכן מוסף / מוצא מהרשימה : 32

32 נעדכן את מבנה SystemBuffer לפי ה Offsets- המתאימים : - CASE 5 כאן יש קריאה לפונקציה sub_ff0d2ee3 שמקבלת את ה PID- כקלט, ולאחר מכן מבצע את אותו רצף הפעולות כמו ב - Case 1- כלומר גם פה יש עבודה עם אוביקט PoolAllocation בעל CODE=1 (קשור לתהליכים) : :sub_ff0d2ee3 הפונקציה משיגה את המצביע למבנה ה EPROCESS- בעזרת ה ( PID- שורה )03 ולאחר מכן מוסיפה לכתובת שלו את ה Offset- ששמור במשתנה dword_ff0d5330 ושומרת את התוצאה ב ( v2- שורה.)05 ב dword_ff0d5330- שמור ה :0x88 Offset- 31

33 - שמחבר בין כל שאר מבני ה LIST_ENTRY נמצא מבנה מסוג EPROCESS במבנה 0x88 Offset- ב :Kernel- ב EPROCESS. מהרשימה EPROCESS- הפונקציה מנתקת את אוביקט ה בשורות - ומלבד להוסיף אותו לרשימה של ה,PID שמכיל PoolAllocation מבנה מסוג Driver- ניתן ל Case 5- ב :Kernel- ים ב -Process- הוא גם מנתק אותו מרשימת ה,Driver BlackEnergy V.2 - Full Driver Reverse Engineering פברואר,216 גליון

34 בשני המקרים מועתקים הערכים הרלוונטים ל- ppoolallocation ומוכנסים/מוצאים - CASES 7-8 מהרשימה: נעדכן את SystemBuffer בהתאם. שימו לב ל- 500 הבתים הלא מוגדרים בין Length String Maximum ל- From Address To Read, שם ככל הנראה יהיה ה- String שנשלח: PoolAllocation מתחיל בקריאה לפונקצית העזר: sub_ff0d302b ההקצאה של שאחריה - CASE 9 משוחררת: 34 BlackEnergy V.2 - Full Driver Reverse Engineering גליון 216, פברואר 1012

35 כשניכנס ל- sub_ff0d302b נראה תחילה קריאה לפונקציה sub_ff0d36f1 שלא מקבלת פרמטרים )שורה 9(, לאחר מכן שחרור כל המידע שב- Registry וקריאה לפונקציה sub_ff0d13ed שמקבלת את המשתנה הגלובלי dword_ff0d53a4 )שורה 83(: sub_ff0d36f1 משחררת את כל האיברים ברשימה: 35 BlackEnergy V.2 - Full Driver Reverse Engineering גליון 216, פברואר 1012

36 בפונקציה,sub_FF0D13ED אפשר לראות שנוצר אוביקט מסוג ( ObjectAttributes מגדירה את שם האוביקט לפרמטר הנשלח אליה), בעזרתו יוצרת קובץ : בנוסף היא מגדריה את ה Attributes- ל,)OBJ_KERNEL_HANDLE( 0x240- שלפי MSDN גורמת לאוביקט להיות נגיש רק מה :Kernel- בשורה התחתונה, הפונקציה יוצרת קובץ שנגיש רק מה,Kernel- כנראה כדי לסמן שהעמדה כבר נדבקה ולמנוע הדבקה חוזרת, וכל Case 9 למעשה מקפל את הפוגען מהעמדה : 36

37 - CASE 6 שמרנו את הטוב לסוף. בשורה 56 ה Driver- בודק האם קיים עוד מבנה אחרי ה SystemBuffer- בכך שהוא משווה את הגודל שלו עם גודל ה Buffer- כולו (שעכשיו גילינו שנמצא ב.)0x220- במידה וכן הוא שולח את אותו מבנה מסתורי לפונקציה :sub_ff0d29f4 כשניכנס ל sub_ff0d29f4- נראה בלאגן שלם : בדומה ל,StealthierGetProcAddress- גם כאן אפשר לזהות Offsets מוכרים ממבנה ה,PE- כמו 0x3C שאיתם רצים על המבנה הלא מוכר ששלחנו. אם נמשיך עם ההנחה שמדובר בקובץ הרצה נראה שכל ה - -Offset ים מתאימים. 37

38 תחילה ה- Driver מקצה הקצאה בגודל של ה- PE ומעתיק אליה את ה- Header PE וה- Sections שלו: לאחר ההעתקה יש קריאה לשתי פונקציות: sub_ff0d2944 ו- sub_ff0d28b3. לפני הקריאות יש בדיקה האם קיים Relocation Directory והאם קיים Import Directory בהתאמה: כבר מהפרמטרים של שתי הפונקציות אפשר להסיק מה הן עושות. הפונקציה הראשונה sub_ff0d2944 עוברת על ה- Table Relocation ומעדכנת כל מצביע ב- PE ביחס לכתובת ההקצאה החדשה )לא נכנס לעומק(: 38 BlackEnergy V.2 - Full Driver Reverse Engineering גליון 216, פברואר 1012

39 הפונקציה השניה,sub_FF0D28B רצה על ה Import Table- של ה :PE- לפונקציה GetBaseAddress ישלח השם של כל Module שבטבלה )הערך הראשון בכל :)Entry כל פונקציה שה PE- מייבא נשלחת לפונקציית העזר הנוספת,sub_FF0D ביחד עם הכתובת העדכנית של ה Module- בזיכרון שאליו היא שייכת. פנקציית העזר מחזירה את כתובת הפונקציה בזיכרון ה,Module- בדיוק כמו ( GetProcAddress לא נכנס לעומק) : 39

40 לבסוף הפונקציה sub_ff0d28b מעדכנת את כל הכתובות שקיבלה מ GetProcAddress- ב IAT- של ה PE- החדש. אחרי שהמצביעים בשתי הטבלאות עודכנו, ה Driver- מריץ את הפונקציה הראשונה ב :ExportDirectory- מאחר ומדובר בהקצאה ב,Kernel- ושכל המצביעים מעודכנים לפיה, אנחנו יודעים שמדובר בקובץ PE של.Driver כתובת הפונקציה הראשונה של Driver Export Table היא של ה,DriverEntry- שחתימתה נראת כך : לאחר ריצת ה DriverEntry- ה Driver- מחפש את ה Relocation Table- ומאפס אותה : 40

41 גילינו שב Case 6- ה Driver- טוען רפלקטיבית Driver אחר לזיכרון : אנחנו יודעים שהמשתנה הראשון שמועבר ל DriverEntry- הוא מצביע לאובייקט.DriverObject המשתנה הראשון שמועבר ל DriverEntry- כשנלקח הזיכרון ( )dword_ff0d52b0 מצביע לכתובת :0xFF כשנסתכל על הכתובת הזו ב volshell- נראה את מבנה ה DriverObject- של ה Driver- החשוד icqogwp שראינו בתחילת החקירה : 42

42 ThreadCreationCallback בתחילת החקירה זיהינו בעזרת הרצת Callbacks על קובץ הזיכרון, שה- Driver עשה שימוש ברישום ל-.Thread Notifications נבדוק ב- MSDN את חתימת הפונקציה ונזהה את הפרמטרים ונעדכן בהתאם ב- Disassembly : תחילה פונקציית ה- Callback שולחת את ה- PID וה- TID לפונקציית העזר :sub_ff0d2e1a פונקציית העזר משיגה את אוביקט ה- EPROCESS של התהליך בעל ה- PID שהתקבל. לאחר מכן מכניסה ל- v4 את הכתובת שב- Offset EPROCESS + dword_ff0d5340 כש- dword_ff0d5340 שווה ל- 0x190 : 41 BlackEnergy V.2 - Full Driver Reverse Engineering גליון 216, פברואר 1012

43 ב EPROCESS+0x190 Offset- יש אובייקט LIST_ENTRY שמחבר את כל ה Threads- של ה,Process- כשכל Thread מיוצג ע"י אובייקט :ETHREAD מכאן ש v4- יכיל את הכתובת של ה FLink- הבא (ה ETHREAD- הראשון) ו v5- יכיל את הכתובת של ה - ETHREAD השני (הכתובת שב FLink- היא הכתובת של ה LIST_ENTRY- הבא ברשימה) במידה וקיים יותר מ Thread- אחד לתהליך, ה Driver- מעלה את ה IRQL105- ב :0- מאחר ואנחנו רוצים לעבוד עם אוביקט ה ETHREAD- ולא עם ה LIST_ENTRY- אנחנו צריכים לבצע פעולות מתמטיות על v5 ובכך לקבל את המצביע הנכון - לזה נועד ה CONTAINING_RECORD43 Macro- שבו הפונקציה משתמשת בשורה :35 לאחר מכן משווה את ה TID- שהתקבל כפרמטר לערך שנמצא ב ( ETHREAD + 0x1EC + 4 Offset- שורה 36 לאחר תרגום), שמצביע ל TID- של ה Thread- החדש שנוצר : הפונקציה מחזירה את v8 שמצביע ל ETHREAD- בעל ה TID- הזהה. 43

44 כשנחזור ל sub_ff0d2ea7- נראה שהפונקציה בודקת אם ה Thread- נוצר (דגל ה Create- בשורה :)9 במידה וכן היא מחליפה את הערך שנמצא ב ETHREAD + 0xE0- שמצביע ל ServiceTable- של ה Thread- החדש, שבעזרתו ה Thread- פונה לטבלת ה :SSDT- מכאן אפשר להניח שהמשתנה dword_ff0d5398 אותו מכניסה הפונקציה הוא המצביע ל SSDT- הזדוני שה Driver- יוצר : 44

45 סיכום זיכרון מלא של מערכת ההפעלה היא ראיה חזקה מאד שבזמן אמת מסוגלת להעניק לצוותי חקירה יכולת ניתוח מלאה של המתווה והתמודדות מהירה עם תקיפה, אך יחד עם זאת ייתכן שהמידע שכלי ניתוח הזיכרון מעניקים לא מספיק ונדרש ביצוע Reverse Engineering מעמיק כדי להבין את מתווה התקיפה לעומק. במאמר זה ניסינו להציג את דרכי הפעולה שניתן להפעיל ברגע שמזהים Driver חשוד דרך קובץ זיכרון: מרגע זיהוי הראיות בזיכרון )הוצג חלקית(, ביצוע Dump ותיקון מרחב הכתובות, זיהוי הסתרות והתגברות על ניסיונות כותב ה- Driver הזדוני להעלים ראיות, פישוט ה- Dissasembly, ועד לחקירה מלאה וזיהוי מנגנוני הפעולה העיקריים שלו. BlackEnergy השתמש ב- Driver שתפקד כ- Rootkit מורכב שביצע מעקב בזמן ריצתו והחביא ראיות שעלולות להסגיר את פעילותו הזדונית. חלק מהיכולות הללו כללו גם,Reflective Driver Loader שאפשר ל- Driver לבצע "טעינה שקטה" של כל Driver אחר שהתוקף יבחר ובכך להמשיך להסלמת יכולות התוקף על עמדתה שנתקפה והרחבת התקיפה. החקירה שביצענו העמיקה מאד במבנה הפנימי שניהל ה- Driver במטרה להבין את כל המרכיבים שלו וכללה מעקב אחר ערכים המשותפים לפוקנציות השונות של ה- Driver, הצלבת מידע, שכתוצאה מכך סייעה לנו להרכיב את כל המבנים בהם ה- Driver ושאר ה- Modules הזדוניים ששימשו אותו: 45 BlackEnergy V.2 - Full Driver Reverse Engineering גליון 216, פברואר 1012

46 אתם מוזמנים להמשיך את החקירה מאיפה שהפסקנו icqogwp( וכו'..(, ולראות איך שאר הרכיבים בתרחיש התקיפה מנצלים את היכולות של ה- Driver, מה הוא נועד להסתיר ואיך הגיע לעמדה. תרשים סיכום החקירה: מקורות Importance BlackEnergy V.2 - Full Driver Reverse Engineering גליון 216, פברואר 1012

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

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

Slide 1

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

קרא עוד

פייתון

פייתון שיעור 12: מילונים ברק גונן 1 או מילון, :hash table או,dictionary זוגות של מפתחות keys וערכים values מילון מוגדר על ידי סוגריים מסולסלים { } לדוגמה: מילון שמכיל ציונים, המפתח הוא מספר ת.ז ערך מפתח הגדרה

קרא עוד

שבוע 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 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

תשעדד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..( תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(http://mdle.tau.ac.il/) בלבד הגשת התרגיל תעשה במערכת ה- mdle aviv

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

שאלה 2. תכנות ב - CShell

שאלה 2. תכנות ב - CShell ביה"ס למדעי המחשב 4.2.2018 האקדמית נתניה מבחן מועד א' יסודות מערכות פתוחות סמסטר חורף, תשע"ח משך המבחן: שלוש וחצי שעות. יש לענות על כל השאלות. מותר השימוש בחומר עזר כלשהו, פרט למחשבים, (מחשבונים מותר).

קרא עוד

מערכות הפעלה

מערכות הפעלה מערכות הפעלה תרגול 2 קריאות מערכת ב- Linux תוכן התרגול קריאה לפונקציות ב- Linux קריאה לשירותי מערכת ב- Linux 2 תזכורת - תכנית Linux ראשונה hello.c #include int main() { char *str= Hello ; printf)

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

ייבוא וייצוא של קבצי אקסל וטקסט

ייבוא וייצוא של קבצי אקסל וטקסט ייבוא וייצוא של קבצי אקסל וטקסט (Importing & Exporting MS Excel Files and Text) ייבוא (Import) הפיכת קובץ טקסט, Excel מבסיס נתונים אחר. או סוגים אחרים, לטבלת,Access או העתקת טבלת Access בתחילת התהליך יש

קרא עוד

Slide 1

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

קרא עוד

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

קרא עוד

Microsoft Word - Ass1Bgu2019b_java docx

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 יצוא קופה לחשבשבת חלונות...01 כללי מדריך זה מסביר את

קרא עוד

מבוא לאסמבלי

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

קרא עוד

תרגול מס' 1

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

קרא עוד

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

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

קרא עוד

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום תוכן העניינים: פרק 2 3 צמצומים ומימושים של פונקציות בוליאניות 2 צמצומים של פונקציות באמצעות מפת קרנו: 2 שאלות: 2 תשובות סופיות: 4 צמצום באמצעות שיטת 6:QM שאלות: 6 תשובות סופיות: 7 מימושים בעזרת פונקציות

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

שעור 6

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

קרא עוד

מצגת של PowerPoint

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

קרא עוד

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63> 1 תרגול פעולות מומצאות ( ( $ מה מהתשובות לא יכולה להיות תוצאה של הפעולה ) ( $ 1 הוגדרה פעולה חדשה $ + 1 1 + 10 + () () מה תוצאת הפעולה ) ( @ @ 10 = הוגדרה הפעולה החדשה 10 1 () 10 () 10 $ 19 $ 17 a) ( $

קרא עוד

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

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

קרא עוד

ex1-bash

ex1-bash ביה"ס למדעי המחשב סמסטר חורף תשע"ח 13.12.2017 יסודות מערכות פתוחות פתרון תרגיל מס' 7 המכללה האקדמית נתניה שימו לב: כל ההערות שבתחילת תרגילים 1-6 תקפות גם לתרגיל זה. הערה 1: החל מתרגיל זה והלאה, בכל פעם

קרא עוד

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

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

קרא עוד

Slide 1

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

קרא עוד

מטלת מנחה (ממ"ן) 11 הקורס: חשבון אינפיניטסימלי II חומר הלימוד למטלה: יחידות 2,1 4 מספר השאלות: 7 משקל המטלה: נקודות סמסטר: ב 2007 מו

מטלת מנחה (ממן) 11 הקורס: חשבון אינפיניטסימלי II חומר הלימוד למטלה: יחידות 2,1 4 מספר השאלות: 7 משקל המטלה: נקודות סמסטר: ב 2007 מו מטלת מנחה (ממ"ן) הקורס: - חשבון אינפיניטסימלי II חומר הלימוד למטלה: יחידות, 4 מספר השאלות: 7 משקל המטלה: נקודות 337 סמסטר: ב 7 מועד אחרון להגשה: אנא שים לב: מלא בדייקנות את הטופס המלווה לממ"ן בהתאם לדוגמה

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפורים נוספים... 11 1 Moodle חדש במערכת ה- מערכת מודל

קרא עוד

PowerPoint Presentation

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

קרא עוד

Slide 1

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

קרא עוד

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

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

קרא עוד

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשעד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L, K סימני יחס חד מקומיים,R לכל אחד מהביטויים הבאים,

קרא עוד

מבנים בדידים וקומבינטוריקה סמסטר אביב תשע"ט מספרי רמזי תרגול 11 הגדרה: (t R = R(s, הוא המספר הטבעי הקטן ביותר כך שבכל צביעה של צלעות הגרף וכחול(, קיים

מבנים בדידים וקומבינטוריקה סמסטר אביב תשעט מספרי רמזי תרגול 11 הגדרה: (t R = R(s, הוא המספר הטבעי הקטן ביותר כך שבכל צביעה של צלעות הגרף וכחול(, קיים מספרי רמזי תרגול 11 הגדרה: (t R = R(s הוא המספר הטבעי הקטן ביותר כך שבכל צביעה של צלעות הגרף וכחול( קיים תת-גרף שלם K s שצבוע בכחול או שקיים תת-גרף שלם K t שצבוע באדום. הגדרה שקולה: עבור גרף עם לפחות (t

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

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

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

קרא עוד

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra תרגול מס' 10 תכנון ליניארי תכנון לינארי הינו כלי שימושי במדעי המחשב. בקורס ראינו כיצד ניתן להציג בעיות שונות במסגרת תכנון לינארי. בנוסף, ראינו שימושים לדואליות של תוכניות לינאריות, אשר מקשרת בין בעיות

קרא עוד

המדריך המהיר לכתיבה של וירוס פשוט מאת דן בומגרד Bomgard( )Dan תוכן העניינים הקדמה... 2 דרישות מהתוכנית... 3 כלים... 3 תכנון כללי( Design (High Level..

המדריך המהיר לכתיבה של וירוס פשוט מאת דן בומגרד Bomgard( )Dan תוכן העניינים הקדמה... 2 דרישות מהתוכנית... 3 כלים... 3 תכנון כללי( Design (High Level.. מאת דן בומגרד Bomgard( )Dan תוכן העניינים הקדמה... 2 דרישות מהתוכנית... 3 כלים... 3 תכנון כללי( Design (High Level... 4 חלק ראשון - התוכנית המרכזית... 4 חלק שני - חיפוש קבצים... 61 חלק שלישי - הדבקה...

קרא עוד

Microsoft Word B

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

קרא עוד

PRESENTATION NAME

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

קרא עוד

<4D F736F F D20E4F9E5E5E0FA20EEF9E0E1E920FAEEE9F1E >

<4D F736F F D20E4F9E5E5E0FA20EEF9E0E1E920FAEEE9F1E > אביתר איתיאל - שה"מ, משרד החקלאות ופיתוח הכפר כתובת המחבר: eviatar@arava.co.il תקציר רקע השוואת משאבי תמיסה משאב תמיסת קרקע הינו כלי מקובל בחקלאות לבקרת דישון ומליחות בבית השורשים. בבדיקה שנערכה בתחנת

קרא עוד

Slide 1

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

קרא עוד

Slide 1

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

קרא עוד

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

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

קרא עוד

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

תוכנה 1 1 אביב תשעג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תיעשה במערכת ה- mdle בלבד.(http://mdle.tau.ac.il/)

קרא עוד

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

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

קרא עוד

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמטרים של מערכים היא by reference וכן דוגמאות שמראות שמשתנים

קרא עוד

תאריך הבחינה 30

תאריך הבחינה   30 אוניברסיטת בן-גוריון בנגב מדור בחינות 9//8 תאריך הבחינה : ד"ר ס. סמית, דר' דבורה שמות המורים : פרץ, פרופ' גריגורי דרפל מבחן ב: חדו"א ג' --9 מס' הקורס: מיועד לתלמידי: ביולוגיה, כימיה וגאולוגיה ב מועד: א

קרא עוד

HTML - Hipper Text Makeup Language

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

קרא עוד

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

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

קרא עוד

Python 2.7 in Hebrew

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

קרא עוד

מדריך למרצים ומתרגלים 1

מדריך למרצים ומתרגלים 1 מדריך למרצים ומתרגלים 1 תוכן עניינים מדריך למרצים ומתרגלים...1 קבלת סיסמה לתחנת מידע למרצה...3 הוספת חומרי למידה...6 הוספת מורשה גישה לאתר הוספת מטלה קורס...9 לאתר הקורס...11 בחירת בודקים למטלה...17 מערכת

קרא עוד

הגנה - שקפי תרגול

הגנה - שקפי תרגול תרגול 9 סיסמאות חד פעמיות הגנה במערכות מתוכנתות )הגנה ברשתות( חורף תשע"ז 1 תזכורת בקרת כניסה אימות זהות המשתמש למניעת התחזות קבלת שירות שהתוקף אינו זכאי לו קבלת גישה למידע פרטי ולביצוע פעולות בד"כ נעשה

קרא עוד

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

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

קרא עוד

אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, אביב 2019 תרגיל בית מספר - 2 להגשה עד 02/04/2019 בשעה 23:55 קיראו בעיון את הנחיות הע

אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, אביב 2019 תרגיל בית מספר - 2 להגשה עד 02/04/2019 בשעה 23:55 קיראו בעיון את הנחיות הע תרגיל בית מספר - 2 להגשה עד 02/04/2019 בשעה 23:55 קיראו בעיון את הנחיות העבודה וההגשה המופיעות באתר הקורס, תחת התיקייה.assignments חריגה מההנחיות תגרור ירידת ציון / פסילת התרגיל. הגשה: תשובותיכם יוגשו

קרא עוד

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

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

קרא עוד

דף נגזרות ואינטגרלים לשאלון 608 כללים למציאת נגזרת של פונקציה: n 1. y' n x n, y הנגזרת x.1 נכפול בחזקה )נרשום אותה משמאל ל- (. x א. נחסר אחד מהחזקה. ב

דף נגזרות ואינטגרלים לשאלון 608 כללים למציאת נגזרת של פונקציה: n 1. y' n x n, y הנגזרת x.1 נכפול בחזקה )נרשום אותה משמאל ל- (. x א. נחסר אחד מהחזקה. ב דף נגזרות ואינטגרלים לשאלון 608 כללים למציאת נגזרת של פונקציה: n n n, y הנגזרת נכפול בחזקה )נרשום אותה משמאל ל- ( א נחסר אחד מהחזקה ב 7 y כאשר גוזרים כופלים בחזקה, 7 כלומר נרשום אותה משמאל ל-, ובחזקה של

קרא עוד

I am Very Good - Stage3 Pwned! מאת רונן שוסטין )Antartic( ופלג הדר )P( הקדמה במאמר זה נסקור טכניקות אנטי-דיבאגינג מסויימות. כרקע אנו ממליצים לקרוא את

I am Very Good - Stage3 Pwned! מאת רונן שוסטין )Antartic( ופלג הדר )P( הקדמה במאמר זה נסקור טכניקות אנטי-דיבאגינג מסויימות. כרקע אנו ממליצים לקרוא את מאת רונן שוסטין )Antartic( ופלג הדר )P( הקדמה במאמר זה נסקור טכניקות אנטי-דיבאגינג מסויימות. כרקע אנו ממליצים לקרוא את מאמרו המצויין של Zerithבנושא מתוך :DigitalWhisper http://www.digitalwhisper.co.il/files/zines/0x04/dw4-3-anti-anti-debugging.pdf

קרא עוד

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

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

קרא עוד

Microsoft Word - 01 difernziali razionalit

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

קרא עוד

סרגל כלים ל-Outlook או לExplorer- מדריך למשתמש

סרגל כלים  ל-Outlook  או לExplorer- מדריך למשתמש סרגל כלים ל- Outlook או ל Explorer- מדריך למשתמש 1 כני ס ה ו י צ יאה מהמערכת לכניסה יש ללחוץ על צלמית "כניסה למע רכת" ליציאה יש ללחוץ פעם נוספת לק בלת הצ למית סרגל כלים לדפד פ ן מסוג Explorer או Firefox

קרא עוד

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

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

קרא עוד

Algorithms Tirgul 1

Algorithms Tirgul 1 - מעגלי אוילר ומסלולי אוילר תרגול 1 חידה: האם אפשר לצייר את הציורים הבאים בלי להרים את העיפרון מהנייר? 1 קצת אדמיניסטרציה אופיר פרידלר ophir.friedler@gmail.com אילן כהן - ilanrcohen@gmail.com שעות קבלה

קרא עוד

PowerPoint Presentation

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

מס' ת"ז מס' מחברת מבחן בקורס מבוא מורחב למדעי המחשב CS1001.py ביה"ס למדעי המחשב, אונ' תל אביב סמסטר א' , מועד ב, 23/3/2018 מרצים: דניאל דויטש,

מס' תז מס' מחברת מבחן בקורס מבוא מורחב למדעי המחשב CS1001.py ביהס למדעי המחשב, אונ' תל אביב סמסטר א' , מועד ב, 23/3/2018 מרצים: דניאל דויטש, מבחן בקורס מבוא מורחב למדעי המחשב CS1001.py ביה"ס למדעי המחשב, אונ' תל אביב סמסטר א' 2017-18, מועד ב, 23/3/2018 מרצים: דניאל דויטש, אמיר רובינשטיין מתרגלים: מיכל קליינבורט, אמיר גלעד משך הבחינה: 3 שעות.

קרא עוד

Slide 1

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

קרא עוד

תרגול 1

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

קרא עוד

Untitled

Untitled 2 אגודת הסטודנטים, בן-גוריון 3 פתרון מבחן מועד ב', חדו"א 2 להנדסת חשמל, סמסטר ב', תשע"ו שאלה : א הטור המגדיר את fx הוא טור טלסקופי. הסכומים החלקיים של טור זה הם S n x n k kxe kx k xe k x nxe nx x fx lim

קרא עוד

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

קרא עוד

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

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

קרא עוד

Microsoft Word - c_SimA_MoedB2005.doc

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

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 למישור

קרא עוד

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0 22 עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 2: 622, בצהריים,תא מספר 66 בקומת כניסה של בניין 3 מתרגל אחראי: אורי הוראות כלליות: כל עוד לא נאמר אחרת, כאשר הנכם מתבקשים לתאר אלגוריתם יש לספק את הבאות: תיאור

קרא עוד

ת'' מדריך לבעלי תיבה קיימת במופ ומשתמשים ב Outlook 2003 או doc.2007 לפני שניגש להגדיר את תיבת המייל החדשה, נבצע גיבויי של המיילים ופנקס הכתובות מהחשבו

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

קרא עוד

Microsoft Word - SDAROT 806 PITRONOT.doc

Microsoft Word - SDAROT 806 PITRONOT.doc 5 יח"ל - תרגילים הכנה לבגרות תרגיל 8 נסמן ב- את האיבר הראשון ונסמן ב- את מנת הסדרה. על פי הנתון מתקיים: 6 ( S6 89 89 0 5 0 5 S0 S5 ( 0 5 0 t t 0 6 (. לפיכך, 89 5 נסמן t ונקבל: 5 t או או או 5 t נפסול את

קרא עוד

מועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: סמסטר: א תשע"ח m 2 הוראות לנבחן: )1( הבחינה מו

מועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: סמסטר: א תשעח m 2 הוראות לנבחן: )1( הבחינה מו מועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: 26.01.2018 2 סמסטר: א תשע"ח m 2 הוראות לנבחן: )1( הבחינה מורכבת מ- 6 שאלות. כל שאלה מזכה ב- 20 נקודות כך הנקודות

קרא עוד