Java Binary Enhancement Tool (JBET) on yleinen Java-ohjelma-analyysi ja manipuloinnin välineenä. Olemassa olevia luokan tiedostot voidaan purkaa, koota uudelleen, tai muokata ohjelmallisesti kautta JBET API. JBET voidaan myös luoda uusia Java-luokka tiedostot tyhjästä. JBET käyttää kätevä sisäinen edustus kaikista sisällön Java binary (.class) tiedostoja, joiden avulla käyttäjä voi muokata luokkia helposti, jäsennellysti.
JBET kehitettiin osana DARPA Self-suojaaminen Mobile Agents hankkeen OASIS ja Active Networks ohjelmissa (sopimus numero N66001-00-C-8602), jotta voidaan tutkia automatisoituja ohjelmistoja salaustaktiikaksi.
Java valittiin tähän hankkeeseen, koska (suhteellisen) helppo rakentaa binary muokkausta tarjoamia työkaluja suuri määrä tyyppistä tietoa läsnä class tiedostot. Meidän kaksi raporttia, salaustaktiikaksi Techniques arviointikertomus, ja salaustaktiikaksi Report, ovat saatavilla sen voi ladata. Salaustaktiikaksi työkalu kehitetty ei ole osa tätä julkaisua.
JBET käytettiin myös DARPA / AFRL hengissä Server hanke (sopimus numero F30602-00-C-0183) lisätä ylimääräisiä turvatarkastuksia Java Standard Library. (Java SecurityManager API ei tue monia toivottavia turvatarkastuksia, kuten jatkoi lupaa tiedoston sisäänkäyntien avaamisen jälkeen.)
JBET käytettiin korvaamaan syntyperäinen menetelmä viittaukset Java standardin kirjasto Stub jotka vaativat kytkettävien turvallisuuspolitiikkaa. Tämä työkalu, nimeltään Jpolicy, on myös ladattavissa tällä sivustolla. Jpolicy on hyvin puutteellinen tällä kertaa, mutta voi olla mielenkiintoista niille, jotka työskentelevät Java turvallisuuteen tai muuttamalla standardin kirjasto itse.
Sisäinen edustus Java-luokan käyttämät tiedostot JBET on sen tarkoitettuun tehdä helpoksi ohjelmoijia kirjoittaa Java binaarikoodin muunnoksia. Jokainen elementti Java class tiedostot on vastaava sisäinen tietorakenne: ClassInfo kokonaisille luokissa, MethodInfo menetelmiä, FieldInfo kenttien, Snippit koodia lohkojen, ja opetus yksittäisten ohjeet. Snippit ja Instruction ymmärtää Java opcode syntaksi ja semantiikka, mahdollistaa automaattisen luomisen voimassa Java-ohjelmia. Java-yhteensopiva luokka todentajan on myös mukana.
Koodia muunnokset ovat vaikeita ohjelmoida suoraan manipuloimalla Java ohjeita. Niille muunnoksia, suunnattu asyklinen graafi (DAG) edustus koodi on käytettävissä. Vuonna DAG edustusta, jokainen perus lohko on vastaava DAG, jossa joukko tulon ja lähdön solmut. Reunat kaavio connect "tuottaja" solmujen (kuten vakioita, tai tulos laskelmat) ja "user" solmujen (kuten metodikutsuja tai muita laskelmia). Menetelmät on jaettu perus- lohkot ja valvonta virtaus tallennetaan peruslausenäyttö taso (mahdollista, koska Java on vain kiinteä hypätä tavoitteet)
JBET vaatii Java 1.4 virtuaalikoneen juosta, vaikka se voi toimia luokan tiedostoja aiempien Java-versiot. Pakkaus- ja rakentaa ympäristö toimitetaan tukee Linux- ja Windows-Cygwin; kuitenkin, rakentaa prosessi on yksinkertainen ja voidaan suorittaa manuaalisesti muilla alustoilla. Perl tarvitaan testauksessa.
Jpolicy vaatii Java 1.4 virtuaalikoneen rakentaa joko Linux tai Windows NT / XP Cygwin. gcc tarvitaan rakentuu Windows (mukana Cygwin). Runtime järjestelmä voi olla joko Java 1.3 tai 1.4 (Sunin JVM vain), käynnissä Linux- tai Windows NT / XP. Windows 9x ja Windows 2000 saattaa toimia hyvin, mutta ei ole testattu.
Asennus
1. Asenna JDK 1.4.1.
2. Aseta CLASSPATH on jdk1.4.1 / jre / lib / rt.jar
3. cd src; tehdä
4. Jos tämä ei toimi, tutkia makefile. java tai javac ei saa olla tiellä.
5. Rakentaa jar tiedosto, joka voidaan käyttää "java-jar jbet.jar", run "tee jar".
6. Jos olet perl asennettu, suorita testit "make test".
Vaihtoehtoisesti, run "tee elv, tee testi".
Tee symbolinen linkki jbet3 / bin / jbet jonnekin teidän tiellä.
Käyttö
JBET käyttää JNI muotoa luokan nimiä, ja JNI ja -menetelmät kuvaajia. Yhteenveto tämän syntaksin, käytä "jbet apua syntaksin". Sunin JVM tiedot voivat olla hyödyksi.
Voit tarkastella luokan purkamista, käytä 'jbet print ". Kokeile purkaminen luokan teillä lähde, ja oli rakennettu debug info (-g): "jbet -P
Ohjelmiston tiedot:
Kommentteja ei löytynyt