Java Herramienta de Mejora binario (JBET) es un análisis de los programas de Java y la manipulación de herramientas general. Archivos de clases existentes se pueden desmontar, volver a montar, o editados mediante programación a través de la API JBET. JBET también se puede utilizar para crear nuevos archivos de clases de Java a partir de cero. JBET utiliza una representación interna conveniente de todos los contenidos de (.class) archivos Java binarios, lo que permite al usuario editar las clases fácilmente, de una manera estructurada.
JBET fue desarrollado como parte del proyecto de Agentes Móviles DARPA Auto-Protección bajo el OASIS y programas de redes activas (número de contrato N66001-00-C-8602) con el fin de estudiar la ofuscación de software automatizado.
El lenguaje Java fue elegido para este proyecto debido a la (relativa) la facilidad de construir herramientas de edición binarios proporcionados por la gran cantidad de información de tipo presente en los archivos de clase. Nuestros dos informes, las técnicas de ofuscación de informe de evaluación, así como el informe ofuscación, están disponibles en el área de descargas. La herramienta de ofuscación desarrollado no es parte de este comunicado.
JBET también fue utilizado en el proyecto de servidor de supervivencia DARPA / AFRL (contrato número F30602-00-C-0183) para agregar controles de seguridad adicionales a la Norma Biblioteca Java. (El API Java SecurityManager no soporta muchos controles de seguridad deseables, como continuó la autorización de los accesos a ficheros después de la apertura.)
JBET se utilizó para reemplazar las referencias de métodos nativos en la biblioteca estándar de Java con los trozos que llaman a una política de seguridad conectable. Esta herramienta, llamada Jpolicy, también está disponible para su descarga en este sitio web. Jpolicy es muy incompleta en este momento, pero puede ser interesante para los que trabajan en seguridad de Java o el cambio de la biblioteca estándar de sí mismos.
La representación interna de archivos de clase Java utilizadas por JBET esta destinada a hacer más fácil para los programadores escribir Java transforma código binario. Cada elemento de los archivos de clase Java tiene una estructura interna de datos correspondiente: ClassInfo para clases enteras, MethodInfo de métodos, FieldInfo para los campos, snippit para bloques de código y de instrucciones para instrucciones individuales. Snippit e Instrucción entienden Java sintaxis y la semántica de código de operación, lo que permite la creación automática de programas Java válidos. Una clase verificador compatible con Java también se incluye.
Algunas transformaciones de código son difíciles de programar directamente mediante la manipulación de las instrucciones de Java. Para esas transformaciones, un gráfico acíclico dirigido (DAG) la representación de código está disponible. En la representación DAG, cada bloque básico tiene un DAG correspondiente, con un conjunto de nodos de entrada y de salida. Los bordes de la gráfica conectan nodos "productores" (como constantes, o el resultado de cálculos) a nodos "usuario" (como las llamadas a métodos u otros cálculos). Los métodos se dividen en bloques básicos y el flujo de control se almacenan en el nivel de bloque básico (posible porque Java sólo se ha fijado metas de salto)
JBET requiere una máquina virtual de Java 1.4 para funcionar, aunque puede funcionar con archivos de clase de versiones anteriores de Java. El ambiente de los envases y construir suministrado soporta Linux y Windows con Cygwin; sin embargo, el proceso de construcción es simple y se puede realizar manualmente en otras plataformas. Perl es necesario para las pruebas de regresión.
Jpolicy requiere un 1.4 máquina virtual Java para construir, ya sea Linux o Windows NT / XP con Cygwin. gcc se requiere para la construcción en Windows (suministrado con Cygwin). El sistema de ejecución puede ser Java 1.3 o 1.4 (con sólo JVM de Sun), que se ejecuta en Linux o Windows NT / XP. Windows 9x y Windows 2000 pueden funcionar tan bien, pero no han sido probados.
Instalación
1. Instalar JDK 1.4.1.
2. Establezca CLASSPATH para JDK 1.4.1 / jre / lib / rt.jar
Src 3. cd; hacer
4. Si eso no funciona, examine el archivo MAKE. java o javac no pueden estar en el camino.
5. Construir un archivo jar que se puede utilizar con "java -jar jbet.jar", ejecute "make jar".
6. Si ha instalado perl, ejecute las pruebas con "make test".
Opcionalmente, ejecute "make regeneración; make test".
Hacer un vínculo simbólico desde jbet3 / bin / JBET a algún lugar en tu camino.
Uso
JBET utiliza el formato de JNI de nombres de clase, y el tipo de JNI y método descriptores. Para un resumen de esta sintaxis, utilice 'ayuda sintaxis JBET'. Especificación JVM de Sun también puede ser útil.
Para ver una clase de desmontaje, utilice 'print JBET'. Intenta desmontar una clase que tiene origen para, y fue construido con información de depuración (-g): 'JBET -P
Detalles de software:
Versión: 3 R1
Fecha de carga: 3 Jun 15
Licencia: Libre
Popularidad: 137
Comentarios que no se encuentran