Java Binary Enhancement Tool (JBET) este un instrument general de analiză program Java și manipulare. Fișierele de clasă existente pot fi dezasamblate, reasamblat, sau editat programatic prin API JBET. JBET pot fi de asemenea folosite pentru a crea noi fișiere de clasă Java de la zero. JBET foloseste o reprezentare internă convenabil tuturor conținutului Java binare (.class) fișiere, permițând utilizatorului să editeze clasele ușurință, într-un mod structurat.
JBET a fost dezvoltat ca parte a DARPA Self-Protejarea proiectul agenți mobile sub OASIS și programe rețele active (număr de contract N66001-00-C-8602), în scopul de a studia confuzie software automate.
Limbajul Java a fost aleasă pentru acest proiect datorită (relativ) ușurința de a construi instrumente de editare binare furnizate de cantitatea mare de informații de tip prezente în fișierele de clasă. Cele două rapoarte, tehnicile de disimulare raportul de evaluare, precum și raportul Confuzie, sunt disponibile din zona de descărcare. Instrumentul confuzie dezvoltat nu face parte din această versiune.
JBET fost, de asemenea, utilizat în cadrul proiectului Survivable Server DARPA / AFRL (contract de numărul F30602-00-C-0183) pentru a adăuga controale suplimentare de securitate la Standard Biblioteca Java. (API Java SecurityManager nu acceptă multe controale de securitate dorit, cum ar fi autorizarea în continuare a fișierului accesează după deschidere.)
JBET fost utilizat pentru a înlocui trimiterile metoda native din biblioteca standard Java cu resturile care necesită o politică de securitate pluggable. Acest instrument, numit Jpolicy, este de asemenea disponibil pentru download la acest site. Jpolicy este foarte incomplet în acest moment, dar poate fi interesant pentru cei care lucrează în domeniul securității Java sau schimbarea biblioteca standard de ei înșiși.
Reprezentarea internă a fișierelor de clasă Java utilizate de JBET este finalitate a face mai ușor pentru programatori pentru a scrie Java transformări cod binar. Fiecare element al fișierelor de clasă Java are o structură de date internă corespunzătoare: ClassInfo pentru clasele întregi, MethodInfo metode, FieldInfo pentru domenii, Snippit de blocuri de cod, și instrucțiuni pentru instrucțiuni individuale. Snippit și instrucțiuni să înțeleagă Java opcode sintaxă și semantică, care permite crearea automată a programelor Java valide. O clasă verificator compatibil Java este de asemenea inclus.
Unele transformă cod sunt dificil de a programa direct prin manipularea instrucțiuni Java. Pentru aceste transformări, un grafic aciclic direcționat (DAG) reprezentarea cod este valabil. În reprezentarea DAG, fiecare bloc de bază are un DAG corespunzător, cu un set de noduri de intrare și ieșire. Marginile din Graficul conecta noduri "producători" (cum ar fi constante, sau rezultatul calculelor) și noduri "utilizator" (cum ar fi apeluri de metode sau alte calcule). Metodele sunt împărțite în blocuri de bază și fluxul de control sunt stocate la nivelul blocului de bază (posibil deoarece Java a stabilit doar ținte de salt)
JBET necesită un Java 1.4 mașină virtuală pentru a rula, desi poate funcționa pe fișiere de clasă de la versiunile anterioare Java. Mediul de ambalare și de a construi furnizate suporta Linux si Windows cu Cygwin; Totuși, procesul de construire este simplu și poate fi realizată manual pe alte platforme. Perl este necesară pentru testarea de regresie.
Jpolicy necesită un Java 1.4 mașină virtuală pentru a construi, fie Linux sau Windows NT / XP cu Cygwin. gcc este necesar pentru construirea pe Windows (livrat cu Cygwin). Sistemul de rulare poate fi Java 1.3 sau 1.4 (cu numai Sun JVM), care rulează pe Linux sau Windows NT / XP. Windows 9x și Windows 2000 pot lucra la fel de bine, dar nu au fost testate.
Instalare
1. Instalați JDK 1.4.1.
2. Setați CLASSPATH la jdk1.4.1 / JRE / lib / rt.jar
3. cd src; face
4. Dacă nu au de lucru, să examineze Makefile. java sau javac nu poate fi în calea.
5. Pentru a construi un fișier jar care poate fi utilizat cu "java jar jbet.jar", a alerga "face jar".
6. Dacă ați perl instalat, rulați testele cu "face de încercare".
Opțional, executați "face Regen, face de încercare".
Creați un link simbolic de la jbet3 / bin / jbet undeva in calea ta.
Folosire
JBET utilizează formatul JNI pentru nume de clasă, precum și tipul și metoda JNI descriptori. Pentru un rezumat al acestui sintaxă, utilizați "sintaxa ajutor jbet". Specificație Sun JVM poate fi, de asemenea, de ajutor.
Să se uite la o dezasamblare clasă, utilizați "print jbet". Încercați dezasamblarea o clasă ai sursă pentru, si a fost construit cu informații de debug (-g): "jbet -P
Detalii soft:
Versiune: 3 R1
Incarca data: 3 Jun 15
Licenţă: Gratuit
Popularitate: 137
Comentariile nu a fost găsit