Java Binary Enhancement Tool (JBET) є загальний аналіз і маніпуляції програма Java інструмент. Існуючі файли класу можуть бути розібрані, зібрані або змінити програмно через API JBET. JBET також може бути використаний для створення нових файлів класу Java з нуля. JBET використовує зручний внутрішнє подання всього вмісту Java бінарних (.class) файли, що дозволяє користувачеві редагувати класи легко, в структурованому вигляді.
JBET був розроблений в рамках DARPA самозахисту мобільні агенти проекту під OASIS і активних мереж програм (номер контракту N66001-00-C-8602) з метою вивчення автоматизованого програмного забезпечення заплутування.
Java мову був обраний для цього проекту через (відносної) простоти побудови двійкових засоби редагування, надані великий обсяг інформації типу, присутньої у файли класів. Наші дві доповіді, методи заплутування Звіт про оцінку, і заплутування звіт, доступні із сторінки завантаження. Заплутування інструмент, розроблений не є частиною цього випуску.
JBET був також використаний у проекті живучості сервера DARPA / AFRL (номер контракту F30602-00-С-0183), щоб додати додаткові перевірки безпеки в стандартній бібліотеці Java. (Java API SecurityManager браузер не підтримує багато бажані перевірки безпеки, таких як продовження дозволу доступ до файлів після відкриття.)
JBET був використаний для заміни рідних посилання метод в стандартній бібліотеці Java з недопалками, які вимагають підключається політики безпеки. Цей інструмент, званий Jpolicy, також доступна для скачування на цьому сайті. Jpolicy дуже неповним в цей час, але може бути цікава тим, хто працює у сфері безпеки Java або зміни стандартну бібліотеку себе.
Внутрішнє представлення файлів класу Java, використовуваних в JBET intented, щоб зробити його легко для програмістів, щоб написати Java двійковий код перетворення. Кожен елемент файли класів Java має відповідний внутрішньої структури даних: ClassInfo для цілих класів, MethodInfo методів, FieldInfo для полів, Snippit для блоків коду, і Інструкцією для окремих команд. Snippit та Інструкція зрозуміти синтаксис коду операції Java і семантику, що дозволяє автоматичне створення дійсних програм Java. Клас перевіряючий Java-сумісний також включений.
Деякі код перетворення важко запрограмувати безпосередньо маніпулювання інструкції Java. Для тих перетворень, орієнтований ациклічний граф (DAG) подання коду є. У поданні DAG, кожен базовий блок має відповідний DAG, з набором вхідних і вихідних вузлів. Краї в графі підключення «виробник» вузли (наприклад, констант, або результат обчислень) на "користувач" вузли (такі як виклики методів або інших розрахунків). Методи поділяються на базові блоки і потік управління зберігається на базовому рівні блоку (можливо, тому що Java лише фіксованою стрибати цілей)
JBET вимагає Java 1.4 віртуальну машину для запуску, хоча це може працювати на класу файлів з попередніх версій Java. Упаковка і побудувати середу поставляється підтримує Linux та Windows, з Cygwin; Однак, процес складання проста і може бути виконана вручну і на інших платформах. Perl необхідний для регресійного тестування.
Jpolicy вимагає Java 1.4 віртуальну машину, щоб побудувати, або Linux або Windows NT / XP з Cygwin. GCC потрібно для будівництва на Windows (поставляється з Cygwin). Виконуюча система може бути або Java 1.3 або 1.4 (тільки JVM Сонця), працює на Linux або Windows NT / XP. Windows 9x і Windows 2000 може працювати як добре, але не були випробувані.
Установка
1. Встановіть JDK 1.4.1.
2. Встановити шлях до класів jdk1.4.1 / JRE / Lib / rt.jar
3. кд ДЗО; робити
4. Якщо це не працює, перевірте Makefile. Java або Javac не може бути в дорозі.
5. Щоб побудувати файл фляги, які можуть бути використані з "Java -jar jbet.jar", запустіть "зробити банку".
6. Якщо ви Perl встановлений, запустіть тести з "зробити тест".
При бажанні, працювати "зробити регенерацію; зробити тест".
Зробіть символічне посилання з jbet3 / бен / JBET до десь в дорозі.
Використання
JBET використовує формат JNI для імен класів і типів JNI і метод дескрипторів. Для опису цього синтаксису, використовуйте 'JBET довідки синтаксис ". JVM специфікації Sun може також бути корисним.
Щоб подивитися на класі розборки, використовуйте 'JBET друк ". Спробуйте розбирання клас у вас є джерело для, і був побудований налагоджування (-g): «JBET -P <шлях до класів> друк <ім'я-класу>". JVM специфікації Sun має посилання на інструкцію.
Дані програми:
Версія: 3 R1
Дата завантаження: 3 Jun 15
Ліцензія: Безкоштовно
Популярність: 137
Коментар не знайдено