הנדסה הפוכה ההערכה - 💡 Fix My Ideas

הנדסה הפוכה ההערכה

הנדסה הפוכה ההערכה


המחבר: Ethan Holmes, 2019

קרייג Federighi, סגן נשיא בכיר של אפל להנדסת תוכנה ב- WWDC.

חזרה בחודש יוני בשנה שעברה - ב WWDC-Apple הודיעה בשקט iBeacon. הוא אפילו לא הזכיר את הנאום המרכזי, והופיע רק בשקופית אחת"... כמה תכונות אחרות של SDK." אבל עבור אנשים חומרה זה היה למעשה אחד המאפיינים הבולטים של המהדורה האחרונה של מערכת ההפעלה של אפל, ואת העדכון שלי טוויטר התפוצץ. אנשים תמיד מחפשים מנופים חדשים כדי לאפשר להם לעשות דברים חדשים.

אני לא מתכוון לדבר כאן על הפיצול המעניין והמפורסם בין גוגל, שהסתמכה בתחילה על טכנולוגיית NFC ורק לאחרונה הוסיפה בתרעומת תמיכה ב- Bluetooth LE ל- Android, ו- Apple, אשר נמנעה מ- NFC והתרכזה במציאת חלופות ניצול הן Wi-Fi ו- Bluetooth LE למשל על ידי גלגול AirDrop כחלופה של Google עכשיו מוגף Bump שיתוף קבצים שירות. בעוד אני חושב הבחירה של אלה טכנולוגיות מתחרות למעשה אומר לנו הרבה על שתי החברות, זה עוד הודעה לגמרי.

במה שיכול להיות בקלות שוק הסחורות - אחרי כל iBeacon הוא לא הטכנולוגיה שלהם - ההערכה נתפסת כמובילה בשוק, והוא מקודם למדי בכבדות כאחד קומץ של חברות שותף על דוכן Nordic ב CES בשבוע הבא.

מהו iBeacon?

iBeacon היא טכנולוגיה המאפשרת לך להוסיף הקשר בעולם האמיתי ליישומי הטלפון החכם. מבוסס על Bluetooth LE, חלק תקן חדש Bluetooth 4.0, זה דרך לספק ניווט מקורה בסיסית iBeacon כבר משולב לתוך iOS 7 הן בתוך מיקום Core ומסגרות Passkit כדי לאפשר המיקרו מיקום גיאוגרפי מקורה.

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

בניית iBeacon שלך

זה די פשוט לבנות iBeacon שלך - או באמצעות פטל פטל או באמצעות לוח LE Bluetooth כמו הדובי האדום Labs BLE מיני הלוח, ויש כמה אנשים לנצל את זה כדי להפוך רווח מהיר.

למשל רדיוס נטוורקס מוכרת "ערכת פיתוח iBeacon" אשר מורכב של פטל פטל, USB פלאג USB, כרטיס SD 8GB. עלות בסביבות 45 $ כאשר נרכשו בנפרד במחיר מלא קמעונאי, הם מוכרים אותו מקובץ יחד עבור $ 100. זה בהחלט סימן, במיוחד משום שהם לא יהיו קונים את הרכיבים קמעונאית, עם ערך מוסף מעט מאוד על רכישת חלקים בנפרד בעקבות הוראות פשוט למדי לבנות משלך.

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

ההערכה

כמו ששמעתי את זה, Estote פגע בו מזל. הם היו שם, משחקים עם Bluetooth "משואות" כי יכול להיות בשימוש על ידי טלפונים חכמים עבור תיקוני מיקום בתוך הבית, ללא אנשים מראה עניין רב, ואז היה אפל ו- iBeacon, והם בסופו של דבר עם כמה חודשים להתחיל על התחרות. כמובן שזה יכול להיות המהדורה האגדית האורבנית - או לפחות גרסה רוויזיוניסטית - של ההיסטוריה של החברה שלהם, נאמר בברים, לובי בכנסים, ובמקומות אחרים שבהם היזם לאסוף. אבל יש לה טבעת מסוימת של אותנטיות.

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

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

הדבר הראשון שאתה שם לב הוא כי אין כפתור on / off, המכשיר משדר כל הזמן, אפילו לפני היציאה מהאריזה שלה. זה נשלח לחיות, אשר יכול לקבל מעניין.

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

המשואה של ההערכה בנויה סביב nRF51822 Nordic Semiconductor. ניתן גם לראות את האנטנה על הלוח עבור הרדיו LE Bluetooth מימין לתמונה.

ההערכה בנויה סביב n Nord51822 Nordic Semiconductor, מה שמסביר את נוכחותם על הדוכן הנורדי ב- CES. זה שבב נחמד, ביסודו של 32-bit ARM קורטקס M0 מעבד עם 256KB של פלאש ו 16KB של RAM עם מובנה רדיו 2.4GHz התומכת הן Bluetooth LE כמו גם 2.4GHz המבצע, שבו מצב 2.4GHz הוא על אוויר תואם עם סדרת מוצרים nRF24L מ Nordic.

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

אני מניח - בינתיים - כי חיישן הטמפרטורה עליו הם מדברים הוא זה המוכלל על ה- ARM הנורדי עצמו, וכי תאוצה הוא שבב קטן יותר (בצד שמאל של התמונה) שכותרתו"8237 C3H DEA3H" אם כי אני אצטרך להודות שלא חיפשתי את גליון הנתונים בשבב הזה, אז אני לא יודע בוודאות.

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

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

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

אתה גם נעול ביעילות באמצעות המקור הסגור שלהם iOS SDK אם אתה משתמש בחומרה שלהם, כמו חומרה iBeacon אחרים לא יעבוד עם SDK שלהם, ואם אתה משתמש במכנה המשותף הנמוך ביותר - אפל עצמו מיקום Core ומסגרות Passkit- כדי לדבר עם אוסף הטרוגני של החומרה iBeacon, אתה תקוע במצב לקריאה בלבד עם משואות הערכה עצמם. זה יכול להיות בעיה אמיתית בעתיד, הן עבור משתמשי הקצה, ואת ההערכה עצמם.

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

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

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

מה מפרסם המשואה?

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

הערכת משואה שנבחרה באקראי מן היזם שלנו ערכת תצוגה מקדימה עם כתובת Bluetooth של E7: 44: 89: 31: ED: 4E מפרסם שם מקומי של "הערכה", יחד עם כמה נתוני שירות היצרן. עם זאת, זה לא נראה לפרסם כל שירות UUIDs.

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

4C00 02 15 B9407F30F5F8466EAFF925556B57FE6D ED4E 8931 B6

לשבור את זה,

  • הראשון שני בתים הם Apple החברה מזהה (אנדיאן הקטן) 0x0042.
  • הבית השלישי - לפחות סביר להניח - מציין את סוג הנתונים, שהוא 2.
  • הבית הרביעי מציין את אורך הנתונים שנותר, 21 בתים.
  • משואות הערכה יש iBeacon קבוע UUID של B9407F30-F5F8-466E-AFF9-25556B57FE6D.
  • הבא שני בתים לאחר UBID iBeacon הם מייג'ור iBeacon (ביג אנדיאן), כלומר 0xED4E, 60750.
  • הבא שני בתים אחרי iBeacon העיקריים הם iBeacon מינור (Big Endian), כלומר 0x8931, 35121.
  • הבית הסופי הוא ה- RSI הנמדד במרחק מטר אחד, כלומר 0xB6, -74.

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

  • UUID - זהו מאפיין ייחודי לכל חברה, במקרים בהם השימוש ביותר UUID יהיה נתון לכל משואות פרוסים על ידי חברה (או קבוצה). ההערכה היא יוצאת דופן בכך שהם תיקנו את ה- UUID עבור כולם"שלהם" משואות להיות אותו דבר.
  • מייג'ור - המאפיין שבו אתה משתמש כדי להגדיר קבוצת משואות קשורה, למשל. כל המשואות בחנות אחת יחלקו את אותו ערך עיקרי.
  • Minor - המאפיין שבו תציין משואה מסוימת במיקום.

אנחנו צריכים להסתכל על נתוני השירות המפורסם על ידי המשואה,

0A18 4EED318944E7 B6 4EED 3189

כדי לראות משהו הערכה ספציפית,

  • שני הבתים הראשונים מציינים נתוני שירות אלה עבור שירות עם UUID 0x180A.
  • הבא 6 בתים הם כתובת Bluetooth אבל בסדר הפוך, E7: 44: 89: 31: ED: 4E.
  • הבית הבא, 0xB6 תואם RSI נמדד ב 1 מ 'משם.
  • הבא 2 בתים, להתאים את iBeacon סרן אבל הפעם זה אנדיאן הקטן.
  • הסופי 2 בתים, להתאים את iBeacon מינור שוב בפורמט אנדיאן הקטן.

על פי נתוני הליבה של מפרט הליבה של Bluetooth חייבים להיות מוקצים עם ה- UUID של 16 סיביות של השירות שהנתונים הם עבורו - וכאן עבור ההערכה - נתוני השירות מיועדים לשירות עם UUID של 0x180a, דבר המעניין משום שאנו "נראה מאוחר יותר כאשר אנו מסתכלים על GATT, כי השירות אינו קיים על המכשיר.

שירותי GATT ומאפיינים

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

אנחנו יכולים להשתמש ב- Linux gatttool שורת הפקודה של התוכנית של החבילה BlueZ - כדי לתפעל את התכונות הללו. מתחבר אל המשואה gatttool אנו מקבלים רשימה של שני השירותים והמאפיינים.

לשים את הפלט מ gatttool לתוך טופס טבלאי, שבו קראו את המאפיינים קריא באמצעות "Char-read-hnd gatttool אנו יכולים להשוות בין הערכים שקיבלנו gatttool למה שמוצג יישום ה- iOS של ההערכה,

המשואה שלנו ביישום 'הערכה' של iOS.

ואנחנו הרבה יותר קדימה. מעניין אם, בשלב זה, אתה מנסה להשתמש gatttoolשל "Char-write-req הפקודה לכתוב לכל אחד מאפשרויות ההערכה - UUID, Minor, Major, Power Level ו- Interval Interval - כתיבת ההחזר מוצלחת. עם זאת, הנתונים המשודרים של iBeacon אינם מעודכנים בהתאם.

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

שימוש ב- SDK

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

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

git clone https://github.com/sandeepmistry/EstimoteEditor.git cd EstimoteEditor git subodule init git submodule update

לאתחל ולעדכן את subodules, ולאחר מכן לפתוח את הפרויקט ב Xcode, אתה יכול לבנות ולפרוס ל- Bluetooth LE מופעל iPhone, לצערי זה לא הולך לעבוד סימולטור iOS, זה צריך להיות מופעל על מכשיר.

ההערכה שלנו iBeacon המוצגת באפליקציה EvaloteEditor.

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

שיטת swizzling CoreBluetooth

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

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

Sandeep השתמשו בטכניקה זו כדי לראות כיצד CoreBluetooth פועל תחת מכסה המנוע על OS X, ולאחר מכן השתמשו בתוצאות כדי לתקשר עם blued- הדמון Bluetooth על OS X ללא שימוש CoreBluetooth באציל, node.js שלו BLE הספרייה. אולי יותר אלסדירי ניצל את זה בקוד הייצור כדי ליירט שיחות רשת שונים ולהציג ניתוח כדי לאסוף נתוני ביצועים ברשת"בטבע" על iPhone.

בואו להשתמש בטכניקה דומה ב- iOS כדי ליירט את התקשורת בין הערכה SDK ו CoreBluetooth. לאחר תסתכל על כותרות iOS ריצה עבור CoreBluetooth, בכיתה CBXpcConnection בולט. הנה חיבור XPC משמש CoreBluetooth לתקשר עם daemon Bluetooth.

בואו לסחוב את השיטות הבאות,

- (void) handleMsg: (int) arg1 args: (id) arg2; - (חלל) sendMsg: (int) arg1 args: (id) arg2;

אשר יאפשר לנו לראות איך הערכה SDK משתמש CoreBluetooth, עם כמה פרשנות, אנו רואים כי אין שום דבר מיוחד קורה כאן,

  1. התחל לסרוק התקנים
  2. התגלו התקנים
  3. להפסיק את הסריקה
  4. התחבר למכשיר
  5. לגלות התקנים ושירותים
  6. לקרוא / לכתוב כמה מאפייני המכשיר

הדברים נראים דומים למה שעשינו עם gatttool, למעט קריאה / כותב למאפיינים מטפל 45 ו 47. אנחנו צריכים כנראה לחזור Xcode ולהגדיר breakpoints במהלך כתב אופייני ולראות מה ערימות השיחה מראה,

ערימת השיחה ב- Xcode IDE במהלך כתיבה אופיינית.

זה נותן לנו שתי שיטות נוספות כדי לסחוב, הפעם בתוך בכיתה ESTBeacon,

- (חלל) pairSensorFirstPart; - (חלל) pairSensorSecondPart;

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

הפעלת בכיתה- dump על לבנות מספק פלט מעניין. בכיתה ETBluetoothMath נראה מעניין במיוחד.

@ ממשק ETBluetoothMath: NSObject {} + (id) stringFromHexString: (id) arg1; + (id) hexStringToBytes: (id) arg1; + (int) giveSignToUnsigned: (int חתום) arg1; + (לא חתום ארוך) Secunit_ModExpWithBase: (לא חתום ארוך) arg1 Exp: (לא חתום ארוך) arg2 ו- mod: (לא חתום ארוך) arg3; + (לא חתום ארוך) randomUInt32; + (לא חתום קצר) randomUInt16; + (id) randomDataWithBytes: (int חתום) arg1; + (const char *) CBUUIDToString: (id) arg1; + (int) CompareCBUUID: (id) arg1 UUID2: (id) arg2; + (id) IntToCBUUID: (לא חתום קצר) arg1; + (לא חתום קצר) CBUUIDToInt: (id) arg1; + (לא חתום קצר) להחליף: (חתום קצר) arg1; + (const char *) UUIDToString: (struct __CFUUID *) arg1; @end

בואו לסחוב את Secunit_ModExpWithBase: Exp: andMod: שיטה ולהוסיף כמה בכניסה על תשומות וערכים לחזור. זה יגיד לנו איך ידית אופיינית 45 משמש,

  1. צור מספר שלם לא חתום של 32 סיביות.
  2. כתוב את המאפיינים הבאים על ידית 45: 5 ^ (אקראי 32) mod 0xfffffffb (endian קטן)
  3. קרא מאפיין ב ידית 45 (אנדיאן קטן): (ערך אופייני 45) ^ (אקראי 32) mod 0xfffffffb

בואו לשים נקודת עצירה בשיטה pairSensorSecondPart swizzled ב ESTBeacon, וצעד לתוך המקור. לאחר דריכה על כמה הוראות אנו רואים משהו מעניין.

דורך דרך הקוד וזיהוי השיחה aes_encrypt ב TI_aes.c.

האם זה TI- כמו טקסס אינסטרומנטס? הולך ל- Google אנו מוצאים לא רק את זה, אבל את קוד המקור עבור TI_aes.c זמין באינטרנט. אנחנו יכולים לתפוס אותו, ולהוסיף אותו לפרויקט שלנו. זה ייתן לנו לנסות להוסיף breakpoints ל aes_encrypt ו aes_decrypt בפנים TI_aes.c. באופן מפתיע, אלה breakpoints למעשה לקבל מכה, כלומר, אנחנו יכולים לבדוק את הנתונים עברו הן הצפנה ושיטות פענוח.

מפתח ההצפנה AES-128 הוא תמיד 0xff8af261013625c2d810097f20d3050f. בעוד מצב ההצפנה מבוסס על כתובת Bluetooth (E7: 44: 89: 31: ED: 4E) והוא 0x4eed318944e731ed4ee74489443189.

מפתח פענוח AES-128 מבוסס על secunit האחרון מחושב (0x8e450d08) והוא 0x080d458e8e450d08088e0d458e08450d. בעוד מצב פענוח הוא תוצאה של הצפנה, 0x419a05a457dcceebeed5129e88a81c4e.

התוצאה של פענוח נכתב המאפיין ב ידית 47, גלישת את תהליך ההתאמה.

לשים דברים ביחד

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

מעניין. ה- SDK אינו מאפשר לנו לעדכן את ה- UUID, האם אנו יכולים לעשות זאת באמצעות שיטה זו? מסתבר שנוכל. כתיבת הערך זהה לשני המאפיינים UUID עובד, ואת UBID iBeacon מעודכן. אנחנו יכולים להגדיר את UBID iBeacon למשהו הערכה לא לחשוף.

סיכום

הערכה SDK SDK הוא מקור סגור, אבל באמצעות שיטה swizzling ואת השירות בכיתה dump על זה ואת מסגרת CoreBluetooth הצלחנו לברר איך זה אינטראקציה עם המשואה.

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

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

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

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

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

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

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

00


אתה עשוי להתעניין

טיפים של השבוע: Zip עניבה פיתול, הדפסה 3D מלטש אחיזה, ואת שבץ ניסור מסלולית

טיפים של השבוע: Zip עניבה פיתול, הדפסה 3D מלטש אחיזה, ואת שבץ ניסור מסלולית


השבוע בביצוע: להפשיט את האינטרנט, הצופים הנערים להתמודד עם אבטחה Cybersecurity, ועוד

השבוע בביצוע: להפשיט את האינטרנט, הצופים הנערים להתמודד עם אבטחה Cybersecurity, ועוד


7 Vans המרה לתוך בתים זעירים על גלגלים

7 Vans המרה לתוך בתים זעירים על גלגלים


קניון

קניון






פוסטים אחרונים