רקע
מכיוון שהכותרת מסבירה את עצמה, ברצוני לתרגם קבצים בינאריים מכל ארכיטקטורה (למשל x86, ARM, ARM Thumb) לשפת ביניים על מנת ליישם ניתוח סטטי בלתי תלוי בקשת. .
ליתר דיוק, עבודתי מוגבלת לאובייקטים המשותפים המסופקים בקבצי APK לפלטפורמת Android. הדרישות הבסיסיות שלי, שהייתי מצפה מה- IL לעמוד בהן, הן כדלקמן (למעשה המטרה שלי היא לחלץ זרמי מידע מקובץ .so
נתון שסופק בקובץ APK).
- חיתוך בינארי
- PDG (CFG / DFG)
- נתמך היטב על ידי התחזוקה שלו או הקהילה שלו
למטרה זו בדקתי כמה כלים קיימים המפורטים להלן, אך למרבה הצער אני לא בטוח אם אוכל להשתמש בהם כדי לחשוף זרמי מידע או לא.
- OpenREIL: מטרת פרויקט זה היא להעלות קבצים בינאריים תלויי קשת ל- REIL.
- Barf Project: ניתוח בינארי עם קוד פתוח מרובה צורות ומסגרת הנדסה הפוכה
- Capstone: מסגרת פירוק.
- אפוס: כלי זה מתרגם קבצים בינאריים של כל קשת לקוד ביט LLVM שאינו תלוי בקשת. (פרויקט זה אינו ציבורי, ולכן אינני יכול להשתמש בו.)
שאלה
האם יש שם IL כלשהו בו אני משתמש לניתוח סטטי של תלוי קשת .so קובץ (בתוך ארכיון APK) על מנת לחלץ זרימות מידע? בעיקרון אני רוצה שיספק דרישות בסיסיות כגון חיתוך ו- PDG.