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

הבנת המטרה וביטול

לפני נגיעה בבדיקה אחת, להשקיע זמן בהבנה מה מודול החומרה אמור לעשות.התחל על ידי איסוף כל פיסת מידע זמין:0datasheetsFLT:1, הערות יישום, עיצובים ההתייחסות, ידניים למשתמש וכל schematics - אפילו אתרי אינטרנט חלקיים.יצרן, פורומים ציבוריים כמו EEVblog או Hackaday, GitHubito יכול למצוא תשואה מפתיעה של מודולים גדולים יותר.

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

בדיקה גופנית ואנליזה חזותית

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

זיהוי בלוקים פונקציונליים עיקריים:

  • (FLT:0Microcontroller או FPGAFIRLT:1): המוח לחפש אדריכלות ידועה (ARM, AVR, PIC, Xilinx) ו לציין את סוג החבילה (QFP, BGA, QFN).
  • (ב) ,0) מכשירים מזכרים (מחדש או SPI), EEPROM, SRAM Note pin Counts andpack סימוןs.
  • (FLT:0) ממשקי תקשורת: מחברים USB, Ethernet jacks, UART Headers, I2C שובר כריות, ראשי SPI לפעמים אלה מאוכלסים עם חוטי קפיצה או נקודות מבחן.
  • (ב) ,0) רגולטורים כוח: זיהוי טווח המתח והתצרוכות.מ.מ.מ. על הפלטים במהלך ה- Power-up יכול לאשר.
  • (FLT:0) מרכיבים פסיביים של FLT:1: מתכנתים משמשים לעתים קרובות כמשיכת סטארט-אפים, משיכת-האטה, או מגבילים הנוכחיים. Capacitors מסננים כוח או אותות decouple.

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

כלים חיוניים לניתוח חומרה

הנדסה הפוכה ללא הכלים הנכונים היא כמו לקרוא ספר בחושך. להשקיע או לשאול את הדברים הבאים - הם לא נוחים לעבודה יעילה:

  • (ב) ⁇ :0)Digital Multimeter (DMM)igital Multimeter (DMM)cioFLT:1: עבור בדיקות רציפות, מדידות מתח וקריאות התנגדות. a mid-range Fluke או מד יד טובה מספיק.
  • תחנת ההרחבה:0 (Soldering Station with Fine TipsFLT:1): עבור נספח מובילי מבחן, הסרת ICs לתכנות, או עקפיסה של רכיבים.
  • (FLT:0)OscilloscopeFLT:1: A 2 או 4 ערוצים בהיקף דיגיטלי עם לפחות 100 רוחב פס MHz.הכרחי ללכידת אותות בזמן-דומיין כמו PWM, UART, ו- SPI אבני שעון.
  • (FLT:0Logic AnalyzerFLT:1: ה-USB מבוסס סלae או שיבוטים דומים הם מצוינים.הם מקודמים פרוטוקולים נפוצים (UART, I2C, SPI, CAN, 1-Wire) באופן אוטומטי, חוסכים שעות של פרשנות ידנית.
  • (FLT:0) גנרטור / גנרטור דפוס / גנרטור איור 1: שימושי עבור הזרקת אותות שעון או דפוסי בדיקה כדי לעורר את המודול.
  • (FLT:0) אספקת חשמל בר קיימא (עם הגבלת הנוכחית) אנדרט 1:1: לעולם אל תכריח מודול לא ידוע ישירות מאספקה קבועה.התחל במתח הצפוי הנמוך ביותר ולהגדיל לאט תוך כדי מעקב אחר זרם.
  • (ב) תחנת עבודה אווירית חמה או כלי שיט מנבאים 1: אם אתה צריך להסיר מרכיב עבור קריאה או תחליף.
  • (FLT:0) Debug TestingsFLT:1: JTAG/SWD אדפטורים (Segger, ST-Link, או FTDI מבוסס) לקריאה של קושחה ממיקרו-בקרים עם יציאות debug.

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

ירידה בחומרה: חשמל Probing ומיפוי

התחל על ידי אימות כוח ומטוסי קרקע. השתמש ב- multimeter שלך במצב רציפות כדי למפות את כל הסיכות קצרות לרכבת כוח משותפת.זהה את מתח האספקה העיקרי (לעתים קרובות 3.3V או 5V) וכל מתח משני שנוצר על הסיפון. Power theמודול מאספקת המשתנים שלך, החל ב 0V ולהגדיל בהדרגה תוך צפייה במגירה הנוכחית. מודול בריא צריך לצייר כמה עשרות מ"מונים ב- 500; מעל לכל דבר לא נכון או מ-A מציין לא נכון.

לאחר מופעל, השתמש ב-oscilloscope כדי לצפות בכל המשטחים החשופים והראשיים. Note אשר pins הם סטטיים (גבוה או נמוך) אשר מראים פעילות תקופתית או תלויה בנתונים, מעברים גבוהים לעתים קרובות מצביעים על אוטובוס SPI או קו שעון. שינויים מהירים נמוך (לעתים קרובות ב 115200 בודה או איטי יותר) מציעים U.A למשוך התנגדות ל-3.3 עם הדופק נמוך מדי פעם הוא עבור תבניות פיזיות, כל אחת, בכל אחת, בכל אחת, על פני רמות התדירות גבוהה.

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

ניתוח ממשקי תקשורת ב- Depth

רוב מודולי החומרה המותאמים אישית מתקשרים על אוטובוסים סידוריים סטנדרטיים או יותר.הנפוצים ביותר הם (FLT:0UART, I2C ו- SPIIRFLT:1 הבנה אשר פרוטוקול הוא בשימוש מאפשר לך לדבר את אותה שפה.

UART (Universal Asynchronous Acceptr/Transmitter)

UART הוא הקל ביותר לזהות: שני אותות (TX ו RX) עם קצב חיקוי קבוע.שימוש מנתח לוגיקה, אתה יכול לגלות את שיעור ה baud על ידי מדידה של הדופק הקצר ביותר - זה שווה תקופה אחת קצת. לדוגמה, 8.68 מיקרו דופק מתאים ל 115 מעלות צלזיוס, לאחר שזוהההה, לחבר USB-to-UART יותר (כמו FT) 232 פעמים, כמו קידוד: 0.

I2C (Inter-Integrated Circle)

I2C משתמש בשני חוטים: SDA (נתונים) ו-SCL (שעון) שניהם פתוחים-דראין ודורשים התנגדות למשיכת-up-ממדת התנגדות ל-VCC (בדרך כלל 4.7k ⁇ ) כדי לאשר. השתמש מנתח ההיגיון שלך כדי לפענח את כתובות (7-bit או 10bit) רוב מכשירי I2C יש כתובת קבועה, המתועדה בגליון הנתונים שלהם.אם אתה יכול לזהות את המספר, בדוק אם אתה לא ידוע על ידי קובץ השבבים / לא ידוע על ידי קובץ.

SPI (Serial Peripheral Interface)

SPI משתמש בארבעה חוטים: I (מנהל עבדים), MISO (מנהל בעבד בחוץ), SCLK (שעון אווירי), ו-SS n (שליח) השעון נוצר על ידי המאסטר; למדוד את התדירות עם ההיקף שלך. SPI הוא מהיר יותר מאשר I2C אבל פשוט יותר: נתונים עוברים על MOSI בעוד MISO מחזיר נתונים על אותם אבני דרך זהה.

Reverse Engineering Firmware: Extraction and Analysis

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

הפקה ישירה באמצעות JTAG/SWD

בדוק את ה- MCU עבור JTAG (IEEE 1149.1) או Serial Wire Debug (SWD) pins.אלה הם לעתים קרובות שכותרתו TDI, TDO, TMS, TCK, או SWDIO, SWCLK. Using a adapter כמו J-Link או ST-Link, אתה יכול להתחבר ולקרוא את כל כלי הזיכרון הבזק כגון LTF:0CDO OpenF פתוח חסום הוא לא יכול חסום את ה-D.

צילום: Flash Memory

מודולים רבים משתמשים בפלאש SPI חיצוני (למשל, Winbond W25Q סדרה, מקרון MX25) לזהות את השבב, desolder אותו או להשתמש במתכנתים (כמו ה-CH41A), ולקרוא את התוכן שלו באמצעות סדרת FLT:0SPI פלאשילרים פלאשFLT:1 או כלים כמו F:2fromFLT 3, לעתים קרובות מכיל את התמונה המוצפנתית או המוצפנתית או כלי מוצפנת.

ניתוח המשרד

עם בינארי (בשיתוף) השתמש במרכיבים כמו MCFLT:0 (GhidraFelopher 1LT) או FLT:2IDA ProphFLT 3 כדי לנתח את זה קודם, לזהות את ארכיטקטור CPU (ARM, RISC-V, AVR, וכו 'פלטפורמות כמו Ghidra יכול לבודד אם בינארי הוא גולמי או ידוע עבור קודר, לעתים קרובות, כדי להציג את ה-U.

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

שיקולים משפטיים ואתיים בHarware Reverse Engineering

בעוד מיפוי של שבב PCB או קריאה של פלאש הוא פשוט מבחינה טכנית, הנוף המשפטי הוא ניואנסד. בארצות הברית, הנדסה לאחור למטרות בין-אופרציה מוגן במפורש על ידי חוק מקרה (למשל, FLT:0Sony v. ConnectixFipherph 1) וחוק זכויות היוצרים של Digital Millennium Copyright (DMCA) מספק פטור למחקר אבטחה ובינלאומיות (DLT2), אשר ניתן תמיד להגביל את ההסכמים של האיחוד האירופי, והסכמים, אם אתה יכול תמיד לקבל אישורים.

באירופה, האיחוד האירופי 2009/24/EC על ההגנה המשפטית של תוכניות מחשב מאפשר הנדסה הפוכה עבור יכולת פעולה הדדית כאשר יש צורך.מחוץ לתחום השיפוט, החוקים משתנים באופן נרחב.כאשר ספק, להתייעץ עם עורך דין המתמחה בקניין רוחני.ally, לשתף את הממצאים שלך באחריות: לא לפרסם קוד קנייני או לעקוף אמצעי אבטחה ללא סיבה טובה.

חדור את ה-Hardware למערכת שלך

ברגע שאתה מבין את הפרוטוקולים ואת התנהגות הקושחה, אתה יכול לעצב את שכבת האינטגרציה.התחל על ידי כתיבת נהג בשפה ברמה גבוהה (Python הוא נהדר עבור prototyping) כי ליישם את הפקודות שהתגלה. Wrap את התקשורת ברמה נמוכה (UART שולח, עסקאות SPI, I2C לרשום) למילוי תסריט מבחן כי מאמת כל פקודה או פקודה נגד ערכים צפויים.

אם המודול יש מכונה פנימית (למשל, הוא צריך רצף ראשוניזציה ספציפי), מסמך כל צעד.מודולים רבים דורשים תזמון מסוים בין ע"י oscilloscope כדי לאמת כי הנהג שלך מכבד את מגבלות התזמון הללו.לדוגמה, חיישן I2C עשוי לדרוש עיכוב של 5 מ"מ לאחר צו איפוס לפני הנתונים הראשונים לקרוא.

כוונון ובדיקה

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

  • (ב) [ה]הפועלים: האם המודול מגיב בזמן המצופה לאחר השימוש בכוח?
  • (ב) ,0) רישום קורא/כתיבה: האם ניתן לקרוא מסמך מזהה ולהאשר אותו?
  • (ב) ,0) ,הבאה (ב): האם המודול מגיב כראוי לכל פקודות שנגלו?
  • (ב) ,0) בדיקות סטרס (FLT:1): שלח פקודות בקצב מקסימלי, רצף אקראי, ונתונים לא חוקיים כדי לבדוק מדינות נחות.
  • (ב) ,0) אמינות לטווח ארוך: הפעלת זרם נתונים מתמשך במשך שעות כדי לצפות לסחף, דליפות זיכרון או ג'רמי שעון.

במהלך בדיקות, שמור על מנתח ההיגיון שלך המצורף ללכוד כל התנהגות בלתי צפויה.ל.עד את כל הכישלונות ולהתאים את הנהג בהתאם.(FLT:0) מהרומט במהירות FLT:1: אחד חסר משיכה או מעט לא מופרך יכול לגרום לתאונות לסירוגין שקשה לאבחן.

טכניקות מתקדמות וקריאה נוספת

(ב) מי שרוצה לצלול עמוק יותר, לשקול לחקור את ה-FLT:0logic לנתח בסיסי עבור הנדסה לאחור הנדסה לאחור FLT:2JTAG ו SWD פותח טכניקות ההרחבה של ההרחבה 3, ו-FLT:4PCB לאחור הנדסה על EEVblogFLT:5 נוסף, משאבים כמו:5Glis BlogsFLT 7 ו-Fware:

מסקנה

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