Win8–Application folder structure on disk–חלונות 8–מבנה תיקיית האפליקציות במחשב

14 בדצמבר 2011

תגיות: , ,
אין תגובות

 

פוסט זה הוא חלק מסדרת הפוסטים “תכנות לחלונות 8 בHTML5”.

c:\program files\Applications – התיקיה הראשית

נכון לעכשיו, כל אפליקציות מטרו מותקנות לתיקייה אחת בלבד בדיסק-  c:\program files\applications . אם כי אי אפשר לדעת בשלב זה האם גם בגרסה הסופית של חלונות זה ישאר כך. לתיקייה הזו מותקנות כל אפליקציות המטרו ע”י התקנת העתקה רגילה. במבט ראשון זה נראה כמו פרצת אבטחה – האפליקציות פתוחות לחלוטין, למרות שהתיקייה עצמה לא נראית, ואין גישה אליה בצורה רגילה:

image

כפי שאפשר לראות, התיקייה Applications לא מוצגת, אבל אפשר לנסות לגשת אליה ע”י הקלדה בשורת הכתובת:

image

אולם אז תחכה לנו הפתעה – אין לנו גישה לתיקיה הזו:

image

image

 

 

איך נגשים לתיקיה

נראה קצת מעצבן שאין לנו גישה לתקייה במחשב שלנו, אבל אפשר לפתור זאת במהירות. נלחץ על security tab בחלון שקפץ לנו, ונראה את המסך הבא

image

נלחץ advanced

image

מסתבר שהתיקיה היא לא של המשתמש שלנו. נלחץ על Change, ובמסך הבא נקליד את שם המשתמש שלנו ולאחריו CheckNames:

image

נלחץ על OK, וננסה עוד פעם להקליד Applications בשורת הכתובת. עוד פעם תקפוץ לנו אזהרה, אבל עכשיו אם נלחץ Continue נקבל גישה לתוך התיקייה.

image

בשלב הזה אנחנו נגלה משהו די מטריד – קוד המקור של כל אפליקציות המטרו חשוף *לחלוטין* ואפשר לשנות אותו כאוות נפשנו. כדוגמא, זו התיקיה של אפליקציית Alarms שמאפשרת להגדיר שעון מעורר.

image

אפשר לראות כי קוד המקור שנמצא כאן ממש זהה לקוד שראינו בפוסט הקודם “מבנה אפליקציות”, לצד עוד כמה קבצים לא מוכרים כמו AppxSignature.p7x.
אם נכנס לדוגמא ל-default.html נוכל ממש לערוך את קוד המקור:

image

אם נשנה את Alarms ל Elad’s Alarms זה ממש ישנה את האפליקציה – אין שום בדיקה על התקינות של האפליקציה ועל כך שהיא לא שונתה:

image

 

 

 

האם יש כאן חור אבטחה?

רוב האפליקציות שמגיעות מותקנות בחלונות 8 בגרסה הנוכחית כתובות בHTML5, שמותקן כקוד מקור. מאוד קל להכנס ולשנות כל מה שבא לנו, אבל גם אפליקציות C# ו – C++ ניתנות לפתיחה ולשינוי. הבלוגר ג’סטין אנג’ל טען שזו פרצת אבטחה אבל האמת שאני לא באמת מבין מה חדש. אפשר להכנס לאפליקציות גם היום, וזה דבר די ידוע באבטחת אפליקציות – השרת תמיד צריך לחשוד בכל קלט שמגיע מהלקוח – זה די טריוויאלי.
בנוסף, אנחנו יודעים שאפליקציות של ה Application Store אמורות לבוא חתומות דיגיטאלית – אפשר בהחלט להניח שבגרסאות הבאות של חלונות המערכת תבדוק את החתימה הדיגיטאלית ותשווה אותה להאש כלשהו על הקבצים לודא שהם לא שונו – כך שאני לא מבין על בדיוק הוא קפץ. זה שזה לא נעשה בגרסה ששוחררה לפני שה Application Store בכלל נפתח זה הגיוני.
כשמבצעים אריזה של אפליקציה, כל הקבצים מועתקים לתוך קובץ זיפ עם סיומת appx. :

image

בתוך קובץ הזיפ שלהלן (זה הקובץ שיירד מה Application Store), יושבים לצד הקבצים שלנו עוד שלושה קבצים חשובים:

1. AppXManifest.xml – שמכיל את ההגדרות של האפליקציה (באיזה contracts היא משתמשת, איזו יכולות היא צריכה וכו’) כפי שראינו בפוסט הקודם.
2. BlockMap – אמור להכיל האש של כל הקבצים, וזה מה שחסר כרגע בגרסה הנוכחית שמשוחררת לציבור.
3. Signature – אותו קובץ AppxSignature.p7x שראינו מקודם – שמכיל את החתימה הדיגיטאלית של האפליקציה, מה שמוודא שאי אפשר “לזייף” אפליקציות, ושהקבצים לא שונו.

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

 

איפה האפליקציות שאנחנו בנינו?

האפליקציות שנוצרות כשאנחנו מריצים אפליקציה מתוך Visual Studio לא מותקנות לתוך תקיית הApplications, אלא לתוך תקיית עבודה בשם c:\users\elad\AppxLayouts (אצלי זה “elad” – בכל מחשב זה ישב תחת המשתמש הרלוונטי):

image

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

image

גם כאן אפשר לראות את כל קבצי המקור, רק שבהרצה לוקאלית ללא הApplication Store אין קובץ חתימה דיגיטאלית.

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

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. (*) שדות חובה מסומנים