REA
כל המדריכים

REA מול Ghidra: איזה תהליך עבודה להנדסה לאחור מתאים לכם?

reverseengineeranything.tools

השוו בין REA ל־Ghidra לפי משימה, קלט, פלט, שליטה ידנית, דרישות הגדרה והאפשרות להשתמש ב־Ghidra דרך REA.

מה חדש בדף הזה

  • — פורסמו מקרים מהקהילה הנתמכים במקורות, מדריכים מעשיים ומגבלות ברורות של הראיות.

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

זו השוואה קהילתית עצמאית. מאגר REA ומאגר Ghidra הם המקורות הראשוניים ליכולות ולדרישות העדכניות.

מה ההבדל בין REA ל־Ghidra?

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

REA הוא שרת MCP וכלי CLI המכסים מספר משפחות יעדים, ובהן קבצים בינאריים בקוד מכונה, יישומי JavaScript/Electron, דפי דפדפן ומכלולי קוד מנוהל. סוכן תכנות קורא לכלים של REA, מקבל ממצאים ומגבלות ומחליט מה לבדוק בהמשך. לצורך ניתוח מעמיק של קוד מכונה, REA מתחבר להתקנה נתמכת של Ghidra, Hopper או IDA. מדריך ניתוח קוד המכונה של REA מסביר את הקשר הזה לספק.

מה אתם צריכים? נקודת התחלה עדיפה קלט פלט או יתרון
לעקוב ידנית אחר פונקציות וגרפים של קובץ בינארי Ghidra ישירות קובץ בינארי נתמך סביבת ניתוח אינטראקטיבית מלאה ושליטה ישירה בפרויקט
לשאול סוכן מדוע תכונה בקוד מכונה מתנהגת בדרך מסוימת REA עם ספק נתמך לניתוח קוד מכונה קובץ בינארי ושאלה ממוקדת ממצאים, ראיות והסבר בהנחיית סוכן
לשמור ולפתח פרויקט ניתוח לאורך זמן Ghidra ישירות תוכנית שיובאה ושינויים של המנתח תהליך עבודה בפרויקט מתמשך בשליטתכם
לבדוק מודול Electron או מסלול IPC תהליך העבודה של REA ל־JavaScript תיקיית יישום או ASAR מודולים, קשרים ומיקומים במקור ללא מנוע לניתוח קוד מכונה
לכתוב סקריפט לניתוח חוזר של קוד מכונה כל אחד מהם, לפי השליטה הנדרשת קובץ בינארי וסקריפט ניתוח או בקשת CLI כתיבת סקריפטים ב־Ghidra או תוצאות CLI מובנות של REA

מתי Ghidra הוא הבחירה העדיפה?

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

שימוש ב־REA עם Ghidra אינו חושף כל תכונה של Ghidra דרך MCP. תיעוד הספק של REA מתאר פעולות שאומתו ומגבלות על המערכת המארחת. תהליך העבודה המתועד של REA ללא ממשק גרפי משתמש בפרויקט זמני; הוא אינו פותח את פרויקט המשתמש הקיים שלכם. העדיפו את הממשק הישיר של Ghidra כאשר תחזוקת הפרויקט הקיים הזה היא דרישה.

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

מתי REA הוא נקודת ההתחלה העדיפה?

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

מקרה הבוחן הרשמי של DX-Ball עוקב אחר קריאת צליל אל פונקציית עזר הממירה מיקום למיקום בסטריאו, ומשחזר את החישוב הזה ב־C. הפרויקט מדווח על 3,205 מקרי בדיקה מול קוד ה־x86 המקורי ועל התאמה של כל 63 הבתים של הפונקציה לאחר הידור. התוצאות האלה שייכות לאותה דוגמה מעשית מסוימת; הן אינן מבססות שיעור הצלחה כללי ל־REA או יתרון בביצועים לעומת Ghidra.

REA מספק גם תהליכי עבודה שאינם דה־קומפילציה של קוד מכונה. ביישום Electron, ניתוח JavaScript סטטי יכול לזהות מודולים וקשרי IPC בלי להפעיל את Ghidra. הדבר הופך את REA לנקודת כניסה נוחה כאשר החקירה שלכם כוללת אריזת יישומים, JavaScript ורכיבי קוד מכונה נבחרים. טבלת היעדים של REA מפרטת את דרישות הקדם הנפרדות.

איך משתמשים ב־Ghidra דרך REA?

התקינו גרסה של Ghidra ו־JDK שנתמכים בתיעוד הספק של REA, ואז הגדירו את REA להשתמש בהתקנה הזו. הגדרת REA יכולה לרשום נתיבים קיימים שאומתו; תהליך ההגדרה אינו מוריד או מתקין עבורכם את Ghidra או Java. מדריך ההגדרה הרשמי מכיל את הוראות התצורה העדכניות.

אל תניחו שהגרסה האחרונה של Ghidra תואמת אוטומטית לחבילת REA המותקנת שלכם. דרישות הגרסה הנוכחית של Ghidra עצמו וטווח הספק שנבדק ב־REA משרתים מטרות שונות. נכון למועד המאמר הזה, מדריך ההתקנה של REA בענף main מתאר בדיקת ספק עבור Ghidra 12.1.x; עיינו במדריך וביכולות השרת המותקן לפני בחירת גרסאות.

לאחר הגדרת הספק, אפשר לבצע אבחון ממוקד כך:

npx -y rea-agents@latest doctor --provider ghidra --json

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

אילו מגבלות צריכות להשפיע על ההחלטה שלכם?

תמיכת הספקים של REA משתנה לפי המערכת המארחת והיעד. גבול התמיכה שלו ב־Windows Ghidra P0 מוגדר במפורש כניסיוני ומצומצם יותר מהתמיכה הכוללת של Ghidra בפלטפורמות ובפורמטים. קראו את מדריך הספק ל־Windows במקום להסיק על תאימות מהיכולת של Ghidra לייבא קובץ ידנית.

הענף main של REA עשוי גם לתאר תכונות חדשות יותר מחבילת npm המותקנת באמצעות @latest. עצם קיומה של גרסת חבילה פועלת אינו מוכיח שכל פעולה מהענף main זמינה. בדקו את גבול הגרסה שפורסמה ואת הסכמות של הכלים המחוברים.

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

אילו שאלות שואלים על REA ו־Ghidra?

האם REA מחליף את Ghidra?

REA יכול להשתמש ב־Ghidra כמנוע ואינו מחליף את הסביבה האינטראקטיבית המלאה שלו. בחרו את הממשק המתאים למשימה, או שלבו ביניהם.

האם אחד הכלים ניתן בחינם?

קוד שנכתב בידי REA מופץ ברישיון MIT. Ghidra הוא פרויקט קוד פתוח בעל רישיון שפורסם והודעות בנוגע לצדדים שלישיים. לגישה למודלים של סוכני תכנות ולספקים מסחריים אופציונליים כגון Hopper או IDA יש תנאים נפרדים. ראו את הרישיון של REA ואת הרישיון של Ghidra.

האם אפשר לבדוק JavaScript ללא Ghidra?

כן. תהליך העבודה הסטטי של REA ל־JavaScript/Electron משתמש ב־Node.js וב־npm, ולא בכלי לדה־קומפילציה של קוד מכונה. תוסף בקוד מכונה באותו יישום הוא יעד ניתוח נפרד עם דרישות משלו.

איזה כלי כדאי למתחילים לנסות קודם?

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