Java ינארי שיפור כלי (JBET) הוא כלי ניתוח תכנית Java ומניפולציה כללי. יכולים להיות מפורקים קבצים בכיתה קיימים, מחדש, או בעריכה באופן תיכנותי באמצעות API JBET. גם JBET יכול לשמש ליצירת קבצי Java בכיתה חדשה מאפס. JBET משתמש ייצוג פנימי נוח של כל התוכן של קבצים בינאריים Java (.class), המאפשר למשתמש לערוך את השיעורים בקלות, באופן מובנה.
JBET פותח כחלק מפרויקט הסוכנים ניידים DARPA עצמי ההגנה תחת OASIS ותוכניות רשתות פעילים (מספר חוזה N66001-00-C-8602) כדי ללמוד ערפול תוכנה אוטומטית.
שפת Java נבחרה לפרויקט זה בגלל הקלות (יחסית) של בניית כלים לעריכה בינארי הניתנים על ידי הכמות הגדולה של מידע מהסוג נוכחי בקבצים בכיתה. שני הדוחות שלנו, הטכניקות האפלות דוח הערכה, ודווח בחיבור, זמינים מהאזור להורדה. כלי הערפול פיתח הוא לא חלק ממהדורה זו.
JBET גם שימש בפרויקט DARPA / AFRL השרת לשרוד (מספר F30602-00-C-0183 חוזה) להוסיף בדיקות ביטחוניות נוספות לספרייה רגילה Java. (API Java SecurityManager אינו תומך רבות בדיקות ביטחוניות רצויות, כגון אישור המשך קובץ כניסות לאחר פתיחה.)
JBET שימש להחליף אזכור השיטה המקורי בספרייה סטנדרטית Java עם ספחים שקוראים מדיניות אבטחה לחיבור. כלי זה, הנקרא Jpolicy, זמין גם להורדה באתר זה. Jpolicy הוא מאוד לא שלם בזמן הזה, אבל עשוי להיות מעניין למי שעובד בביטחון Java או שינוי הספרייה סטנדרטית עצמם.
הייצוג הפנימי של קבצי ג'אווה ברמת שימוש על ידי JBET הוא intented לעשות את זה קל עבור מתכנתים לכתוב התמרות קוד בינארי Java. כל רכיב של קבצי ג'אווה ברמה יש מבנה נתונים פנימי מקביל: ClassInfo לכל כיתות, MethodInfo לשיטות, FieldInfo לשדות, Snippit לגושי קוד, והוראה להוראות פרטניות. Snippit והוראה להבין תחביר opcode Java וסמנטיקה, המאפשרים יצירה אוטומטית של תוכניות Java תקפות. אימות כיתת ג 'אווה תואמת כלולה גם.
התמרות קוד כמה קשות לתכנת ישירות על ידי מניפולציה הוראות Java. להתמרות אלה, ייצוג גרף אציקליים בימוי (DAG) של קוד הוא זמין. בייצוג דאג, כל בלוק בסיסי יש DAG מקביל, עם סט של בלוטות קלט ופלט. קצוות בגרף להתחבר צמתים "מפיק" (כגון קבוע, או התוצאה של חישובים) בלוטות ל" משתמש "(כגון שיחות שיטה או חישובים אחרים). שיטות מחולקות לגושים בסיסיים ובקרת זרימה מאוחסנת ברמת הבלוק הבסיסית (אפשרי, כי ג 'אווה קבועה רק מטרות קפיצה)
JBET דורש 1.4 מכונת ג'אווה וירטואלית לרוץ, למרות שזה יכול לפעול על קבצים בכיתה מגרסאות Java קודם לכן. סביבת האריזה ולבנות מסופקת תומכת לינוקס ו- Windows עם Cygwin; עם זאת, תהליך הבנייה הוא פשוט ויכול להתבצע באופן ידני בפלטפורמות אחרות. פרל נדרש לבדיקות רגרסיה.
Jpolicy דורש 1.4 מכונת ג'אווה וירטואלית לבנות, או לינוקס או Windows NT / XP עם Cygwin. gcc נדרש לבנייה ב- Windows (מסופק עם Cygwin). מערכת זמן הריצה יכולה להיות Java 1.3 או 1.4 (עם JVM של סאן בלבד), פועל על לינוקס או Windows NT / XP. Windows 9x ו- Windows 2000 יכולים לעבוד גם כן, אבל לא נבדקו.
התקנה
1. התקן JDK 1.4.1.
2. CLASSPATH הסט לjdk1.4.1 / JRE / lib / rt.jar
src 3. CD; לעשות
4. אם זה לא עבד, לבחון את makefile. Java או javac לא יכול להיות בדרך.
5. כדי לבנות קובץ JAR שניתן להשתמש עם "Java צנצנת jbet.jar", המנוהל על "לעשות צנצנת".
6. אם יש לך Perl הותקן, הפעילו את הבדיקות עם "לעשות בדיקה".
לחלופין, להפעיל "להפוך regen; לעשות בדיקה".
ליצור קישור סמלי מjbet3 / bin / jbet למקום בדרך שלך.
שימוש
JBET משתמש בתבנית JNI עבור שמות בכיתה, ומתארי סוג JNI ושיטה. לסיכום של תחביר זה, להשתמש "תחביר עזרה jbet '. מפרט JVM של סאן יכול להיות גם מועיל.
להסתכל על פירוק כיתה, להשתמש "הדפסת jbet '. נסה פירוק כיתה יש לך מקור ל, ונבנה עם מידע debug (-g): 'jbet -P
פרטי תוכנה:
תגובות לא נמצא