Java Binary Enhancement Tool

Software skärmdump:
Java Binary Enhancement Tool
Mjukvaruinformation:
Version: 3 R1
Ladda upp dagen: 3 Jun 15
Utvecklare: Andrew Reisse
Licens: Gratis
Popularitet: 26

Rating: nan/5 (Total Votes: 0)

Java Binary Enhancement Tool (JBET) är en allmän Java-program analys och manipulation verktyg. Befintliga klassfiler kan tas isär, ihop, eller redigeras programmatiskt genom JBET API. JBET kan också användas för att skapa nya Java klassfiler från grunden. JBET använder en praktisk intern representation av allt innehåll i Java binära (.class) filer, så att användaren kan redigera klasserna lätt, på ett strukturerat sätt.
JBET utvecklades som en del av DARPA Själv Skydda Mobile Agents projekt inom OASIS och aktiva nätverk program (avtalsnummer N66001-00-C-8602) för att studera automatiserade program förvirring.
Java valdes till detta projekt på grund av (relativt) enkel att konstruera binära redigeringsverktyg som tillhandahålls av den stora mängd av typ information som finns i klassfiler. Våra två rapporter, ljusskygg tekniker utvärderingsrapport, och Obfuscation Rapportera, finns tillgängliga från nedladdningsområdet. Den ljusskygg verktyg utvecklat är inte en del av denna utgåva.
JBET användes också i DARPA / AFRL överleva Server-projektet (avtalsnummer F30602-00-C-0183) för att lägga till ytterligare säkerhetskontroller till Java Standard Library. (Java Security API stöder inte många önskvärda säkerhetskontroller, såsom fortsatt godkännande av fil åtkomst efter öppnandet.)
JBET användes för att ersätta de inhemska metodreferenser i Java standardbibliotek med stubbar som kallar en jackbara säkerhetspolitik. Detta verktyg, som kallas Jpolicy är också tillgänglig för nedladdning på denna webbplats. Jpolicy är mycket ofullständig vid denna tid, men kan vara intressant för dem som arbetar i Java säkerhet eller ändra standardbiblioteket själva.
Den interna representationen av Java klass filer som används av JBET är avsett att göra det enkelt för programmerare att skriva Java binär kod transformer. Varje del av Java-klassfiler har en motsvarande intern datastruktur: ClassInfo för hela klasser, MethodInfo för metoder, FieldInfo för fält, Snippit för kodblock, och instruktioner för individuella instruktioner. Snippit och Instruktion förstå Java opcode syntax och semantik, vilket automatiskt skapande av giltiga Java-program. Ett Java-kompatibel klass kontrollanten ingår också.
Vissa kod transformationer är svåra att programmera direkt genom att manipulera Java instruktioner. För de trans, är en riktad acyklisk graf (DAG) representation av koden tillgänglig. I DAG representation, har varje basblock en motsvarande DAG, med en uppsättning av ingångs- och utgångsnoder. Kanter i grafen ansluta "tillverkare" noder (såsom konstanter, eller resultatet av beräkningar) och "användare" noder (t.ex. metodanrop eller andra beräkningar). Metoder är indelade i grundläggande block och flödeskontroll lagras vid grundblocknivå (möjligt eftersom Java bara har fast hopp mål)
JBET kräver Java 1.4 virtuell maskin för att köra, även om det kan verka på klassfiler från tidigare Java-versioner. Förpackningen och bygga miljö levereras stöder Linux och Windows med Cygwin; dock är byggprocessen enkel och kan utföras manuellt på andra plattformar. Perl krävs för regressionstestning.
Jpolicy kräver Java 1.4 virtuell maskin att bygga antingen Linux eller Windows NT / XP med Cygwin. gcc krävs för att bygga på Windows (medföljer Cygwin). Körtiden systemet kan vara antingen Java 1.3 eller 1.4 (med endast Suns JVM), som körs på Linux eller Windows NT / XP. Windows 9x och Windows 2000 kan fungera lika bra, men har inte testats.
Installation
1. Installera JDK 1.4.1.
2. Ställ in CLASSPATH till jdk1.4.1 / jre / lib / rt.jar
3. cd src; göra
4. Om det inte fungerade, undersöka makefile. Java eller javac kanske inte är i vägen.
5. Om du vill bygga en burk fil som kan användas med "java-jar jbet.jar" kör "göra burk".
6. Om du har perl installerat, köra tester med "make test".
Eventuellt kör "göra regen; gör test".
Gör en symbolisk länk från jbet3 / bin / jbet till någonstans i din väg.
Användning
JBET använder JNI format för klassnamn, och JNI typ och metodbeskrivningar. För en sammanfattning av denna syntax använder "jbet hjälp syntax". Suns JVM specifikation kan också vara till hjälp.
Att titta på en klass demontering, använda "jbet print". Försök demontering en klass du har källa för, och byggdes med debug info (-g): "jbet -P skriva ut ". Suns JVM specifikation har en instruktion referens.

Liknande mjukvara

Kommentarer till Java Binary Enhancement Tool

Kommentarer hittades inte
Kommentar
Slå på bilder!