Java Outil Amélioration binaire (de JBET) est un outil d'analyse générale et la manipulation programme Java. Fichiers de classe existants peuvent être démontés, remontés, ou modifiés par programmation via l'API JBET. JBET peut également être utilisé pour créer de nouveaux fichiers de classe Java à partir de zéro. JBET utilise une représentation interne commode de tous les contenus de binaires (.class) des fichiers Java, permettant à l'utilisateur de modifier les classes facilement, de manière structurée.
JBET a été développé dans le cadre du projet Mobile Agents DARPA auto-protégés en vertu de la OASIS et les programmes de réseaux actifs (numéro de contrat N66001-00-C-8602) afin d'étudier l'obscurcissement de logiciel automatisé.
Le langage Java a été choisi pour ce projet en raison de la (relative) facilité de construire des outils d'édition binaires fournies par la grande quantité d'informations de type présents dans les fichiers de classe. Nos deux rapports, les techniques Obfuscation Rapport d'évaluation, et le rapport obfuscation, sont disponibles à partir de la zone de téléchargement. L'outil d'obscurcissement développé ne fait pas partie du présent communiqué.
JBET a également été utilisé dans le projet Survivable Server DARPA / AFRL (numéro de contrat F30602-00-C-0183) d'ajouter des contrôles de sécurité supplémentaires à la bibliothèque standard Java. (L'API Java SecurityManager ne supporte pas les nombreux contrôles de sécurité souhaitables, comme la poursuite de l'autorisation d'accès aux fichiers après l'ouverture.)
JBET a été utilisé pour remplacer les références de méthodes indigènes dans la bibliothèque standard Java avec des talons qui appellent une politique de sécurité enfichable. Cet outil, appelé Jpolicy, est également disponible pour téléchargement sur ce site. Jpolicy est très incomplète en ce moment, mais il peut être intéressant de ceux qui travaillent dans la sécurité de Java ou de changer la bibliothèque standard eux-mêmes.
La représentation interne des fichiers de classe Java utilisés par JBET est intented pour le rendre facile pour les programmeurs d'écrire Java transformations de code binaire. Chaque élément de fichiers de classe Java a une structure interne de données correspondant: ClassInfo pour des classes entières, MethodInfo pour les méthodes, FieldInfo pour les champs, Snippit pour les blocs de code, et de l'instruction pour les instructions individuelles. Snippit et Instruction comprendre Java opcode syntaxe et la sémantique, permettant la création automatisée de programmes Java valides. Une classe de vérificateur compatible Java est également inclus.
Certaines transformations de code sont difficiles à programmer directement en manipulant les instructions Java. Pour ces transformations, une représentation graphe orienté acyclique (DAG) du code est disponible. Dans la représentation de DAG, chaque bloc de base a un DAG correspondant, avec un ensemble de nœuds d'entrée et de sortie. Bords dans le graphe relient noeuds "producteurs" (tels que des constantes, ou le résultat de calculs) aux noeuds "utilisateur" (tels que les appels de méthode ou d'autres calculs). Les méthodes sont divisés en blocs de base et de flux de contrôle sont stockées au niveau de bloc de base (possible parce que Java a fixé des objectifs de saut)
JBET nécessite une machine virtuelle Java 1.4 pour fonctionner, même si elle peut fonctionner sur des fichiers de classe Java à partir de versions antérieures. L'environnement de l'emballage et de construire fourni prend en charge Linux et Windows avec Cygwin; Toutefois, le processus de construction est simple et peut être effectuée manuellement sur d'autres plates-formes. Perl est nécessaire pour les tests de régression.
Jpolicy nécessite une machine virtuelle Java 1.4 pour construire, Linux ou Windows NT / XP avec Cygwin. gcc est nécessaire pour la construction sur Windows (fourni avec Cygwin). Le système d'exécution peut être soit Java 1.3 ou 1.4 (avec la JVM de Sun uniquement), fonctionnant sur Linux ou Windows NT / XP. Windows 9x et Windows 2000 peuvent fonctionner aussi bien, mais n'a pas été testée.
Installation
1. Installez JDK 1.4.1.
2. Réglez CLASSPATH JDK 1.4.1 / jre / lib / rt.jar
3. src cd; faire
4. Si cela ne fonctionne pas, examinez le makefile. java ou javac peuvent ne pas être dans le chemin.
5. Pour construire un fichier jar qui peut être utilisé avec "java -jar jbet.jar", exécutez "make pot".
6. Si vous avez installé perl, exécutez les tests avec "make test".
Eventuellement, exécutez "make regen; make test".
Faire un lien symbolique entre jbet3 / bin / JBET quelque part dans votre chemin.
Usage
JBET utilise le format JNI pour les noms de classe, et le type et la méthode JNI descripteurs. Pour un résumé de cette syntaxe, utilisez 'JBET aide syntaxe'. La spécification JVM de Sun peut également être utile.
Pour regarder un démontage de classe, utilisez 'impression JBET'. Essayez de démonter une classe que vous avez source, et a été construit avec les informations de débogage (-g): «JBET -P
Détails logiciels:
Version: 3 R1
Date de transfert: 3 Jun 15
Licence: Gratuit
Popularité: 137
Commentaires non trouvées