מה הם מאגדים ודקומברים?

(הניתוח של תוכנה קניינית ללא גישה לקוד המקור שלה דורש לעתים קרובות כלים מיוחדים. Disa להרכיבrs ו decompilers הם שתי קטגוריות של כלי הנדסה הפוכה המאפשרים לחוקרים, אנליסטים אבטחה, ומפתחים לבחון בינאריים ברמות שונות של אבסטרקטיון. AFLT:0disa להרכיב מ-FLT:1 קורא קוד מכונה ומתרגם אותו לשפה אנושית, חשיפת המעבדים ברמה נמוכה יותר של CF2de פועל כך פועל באופן ישיר יותר של תכנות פנימי.

איך מאגדים עובדים

(הופנה מהדף קבצים בינאריים) פועלים ישירות על קבצים בינאריים -PE, ELF, Mach-O, או תמונות קושחה גולמיות - על ידי פיזור ההוראות ומיפוי אותם למולקולוניה המקבילה שלהם.התהליך מסתמך על ארכיטקטורת ההוראה של המעבד (ISA), כגון x86, ARM, או MIPS להרכיב משתמשים ליניאריים (שלבים באמצעות קוד דומה להגדרה מדויקת יותר: פיזור נתונים) או תיקון (Facconconcreconcreconreconcrecontects) או תיקון (reconcreconreects מדויק יותר ל-Fconcrecontecting) או תיקון של פיזור נתונים מדויקים יותר: Reconcreconcreconcreconreconreecting) או תיקון (מסוגל-reconreconreconrecodes מדויק יותר (מחדש (reconreconcreconcreecting) או תיקון של נתונים (מפרק 2.

כיצד עובדים Decompilers

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

שימוש ב Disassemblers ו Decompilers in Practice

ניתוח אבטחה ו מחקר Vulnerability

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

Malware Analysis

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

קוד המקור האבוד או Legacy Source Code

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

למידה פרופיל אלגוריתמים ואינטראופרציה

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

מפיצים פופולריים ו Decompilers

IDA Pro (Interactive Disassembler)

IDA Pro הוא תקן דה Facto לניתוח בינארי.זה תומך עשרות ארכיטקטורות CPU, מציע ממשק תסריט חזק (IDAPython), ומשתלב עם ה- Hex-Rays decompiler. .הההההההההרחבה ממשק (ה-Digitalation) ו- decompilation.IDA היא תוכנה מסחרית, אך גרסה חופשית לשימוש (FreeDA) עבור שימוש מוגבל.

ג'היידר

פותח על ידי הסוכנות לביטחון לאומי ושוחרר כמקור פתוח, Ghidra יריבים IDA במובנים רבים.זה כולל מקבץ-in decompiler, API בעל תוכנית (Python או Java), ותכונות ניתוח שיתופיות. decompiler של Ghidra חזק במיוחד עבור x86, ARM, ו- PowerPC בינארי.זה חופשי להשתמש ויש לו קהילה גדולה של תוסף מידע רשמי: 1.GFer ראה יותר: 1.

Radare2

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

Hex-Rays Decompiler

Hex-Rays הוא תוסף מסחרי של קידוד IDA Pro התומך x86, x64, ARM ו- PowerPC. הוא מייצר באופן מדהים C-likecode והוא נחשב נרחב ל decompiler המדויק ביותר זמין. חברות אבטחה רבות וחוקרים פגיעויות לשקול Hex-Rays חיוני עבור זרימות העבודה שלהם.

כלים נוספים

  • (ב) ,0) ,HopperveFLT:1 (macOS ולינוקס) - מציע גם disassembly ו decompilation עם GUI ידידותי למשתמש.
  • (ב) נינג'ה בנינג'ה פנימית: פלטפורמה הנדסית מודרנית, עם דגש על שימושיות ושפה בינונית חזקה.
  • (ב) ויקרא:2 ויקרא:2 ויקרא:2 ויקרא ויקרא: ויקרא יט): "התבויות בסיסיות" (גנו בינאריות) - מתפזרות בסיסיות לבדיקות מהירות על מערכות יוניקס.

אתגרים ומגבלות

מורכבות קוד

אופטימיזציה Compiler (inlining, לולאה unrolling, קבוע מתקפל) לייצר קוד מכונה השונה באופן משמעותי ממקור המקורי. Decompilers חייב לשחזר סמנטיים ברמה גבוהה מרצף ברמה נמוכה, אשר יכול להוביל לפלט מעורפל או לא נכון. טכניקות obscation מתקדמות - כגון חבילות וירטואליזציה מבוסס, שליטה-זרימה, ו- ⁇ - ניתוח prefuretraetraetraetraetraetrarts.

חוקיות והכחשה

התוכנה הקניונית של הנדסה הפוכה מוגבלת באופן חוקי בתחומי שיפוט רבים.חוק זכויות היוצרים של Digital Millennium (DMCA) בארצות הברית, האיחוד האירופי סדר זכויות יוצרים, וחוקים דומים ברחבי העולם מכילים הוראות שעשויות לפטור הנדסה הפוכה עבור יכולת הדדית, מחקר אבטחה או חינוך, אך גבולות משתנים.תמיד להתייעץ עם יועץ משפטי לפני פירוק או ביטול מוצר שלא ברשותך או יש לך רשות לנתח את המשאבים שימושיים הוא יוצא דופן: 1.Fronic Foundation of DMCA של 1Fronic Review of PostFronic Foundation of PostFronic Review of PostFronic: 1.

In Complete Output

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

מסגרת משפטית ואתית

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

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

(ב) להתגלות עמוקה יותר בהיבטים משפטיים, יש לשקול לקרוא את ה-FLT:0U.S. Copyright Office Proure Use IndexFLT:1 ו-FLT:2CISA טקסט ⁇ FLT 3: 3.

מגמות עתידיות בדיסבדיה ודהקומבציה

ניתוח משופר של Machine-Learning Enhanced Analysis

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

שיפור ה- Platform Coverage

כפי שצוינו חדש מופיע (RISC-V, WebAssembly, וכו '), disa להרכיב ו- decompiler מפתחים מוסיפים תמיכה. Ghidra, למשל, כבר תומך מעל 30 ארכיטקטורות, ותרומות קהילתיות מרחיבות את ההגעה שלה למיקרו-בקרי IoT ולמכונות blockchain וירטואליות.

שיתוף פעולה מבוסס ענן

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

מסקנה

מאגדים ודלפקים הם כלי חיוני להשגת חשיפה לתוכנה קניינית.הם מאפשרים ביקורת אבטחה, ניתוח קוד זדוני, שחזור קוד, והתאמה ללא גישה לקוד המקור המקורי.IDA Pro, Ghidra, Radare2, Hex-Rays כל אחד מציע יתרונות ייחודיים, וקהילת הקוד הפתוח ממשיכה לדמוקרטי את הכלים החזקים האלה.