Java Binary Enhancement Tool (JBET) je obecná analýza Java programů a manipulace nástroj. Existující soubory třída může být demontována, reassembled, nebo upravovat programově prostřednictvím JBET API. JBET lze také použít k vytvoření nové soubory Java třídy od nuly. JBET používá pohodlný interní zastoupení všech obsahu binárních (.class) soubory Java, který umožňuje uživateli upravovat tříd snadno, strukturovaným způsobem.
JBET byl vyvinut jako součást DARPA Self-ochranu mobilních zmocněnci projektu v rámci OASIS a aktivních programů Networks (číslo smlouvy N66001-00-C-8602), za účelem studovat automatizovaný software mlžení.
Jazyk Java byla vybrána pro tento projekt, protože (relativní) snadnou konstrukci binárních nástroje pro úpravy, které poskytuje velké množství informace o typu přítomné v souborech třídy. Naše dvě zprávy, že mlžení techniky hodnotící zpráva, a zmatku zpráva, jsou k dispozici od oblasti pro stahování. Zmatek nástroj vyvinutý není součástí tohoto vydání.
JBET byl také použit v rámci projektu Survivable serveru DARPA / AFRL (číslo smlouvy F30602-00-C-0183), aby se přidat další bezpečnostní kontroly na Java standardní knihovny. (Java API SecurityManager nepodporuje tolik žádoucí bezpečnostní kontroly, jako je pokračující povolování souboru přistupuje po otevření.)
JBET byl použit k nahradit nativní metodu odkazy v standardní knihovny Java s pahýly, které volají jedna zasunovací bezpečnostní politiku. Tento nástroj, tzv Jpolicy, je také k dispozici ke stažení na těchto webových stránkách. Jpolicy je velmi neúplné v této době, ale může být zajímavé pro ty, kteří pracují v Java bezpečnosti či změny standardního knihovny sebe.
Vnitřní reprezentace souborů tříd Java používaných JBET je zaměřena, aby bylo snadné pro programátory psát Java transformací binární kód. Každý prvek soubory třídy Java má odpovídající vnitřní strukturu dat: ClassInfo pro celé třídy, MethodInfo- metod, FieldInfo pro pole, Snippit pro bloky kódu, a instrukce pro jednotlivé instrukce. Snippit a instrukce pochopit Java opcode syntaxi a sémantiku, což umožňuje automatizovanou tvorbu platného Java programů. Java-kompatibilní třída ověřovatel je také v ceně.
Některé transformace kódu je obtížné programovat přímo tím, že manipuluje Java pokyny. Pro tyto transformace, orientovaný acyklický graf (DAG) reprezentace kódu je k dispozici. V reprezentaci DAG, každá základní blok má odpovídající DAG, se sadou vstupních a výstupních uzlů. Hrany v grafu spojit "výrobce" uzly (jako konstanty, nebo výsledek výpočtů), aby "uživatel" uzly (například volání metody nebo jiných výpočtů). Metody jsou rozděleny do základních bloků a pro řízení průtoku je uložen na základní úrovni bloku (možné, protože Java jen pevné skok cílů)
JBET vyžaduje Java 1.4 virtuální stroj spustit, i když to může fungovat na třídní soubory z dřívějších verzí Javy. Balení a budovat prostředí dodáván podporuje Linux a Windows s Cygwin; nicméně, tento proces sestavení je jednoduché a může být prováděno ručně na jiných platformách. Perl je vyžadován pro regresní testování.
Jpolicy vyžaduje Java 1.4 virtuální stroj stavět, a to buď Linux nebo Windows NT / XP s Cygwin. gcc je nutná pro budování systému Windows (dodávána s Cygwin). Runtime systém může být buď Java 1.3 nebo 1.4 (pouze Sun JVM), běžící na systému Linux nebo Windows NT / XP. Windows 9x a Windows 2000 mohou fungovat jako dobře, ale nebyly testovány.
Instalace
1. Nainstalujte JDK 1.4.1.
2. Nastavte CLASSPATH, aby jdk1.4.1 / jre / lib / rt.jar
3. cd src; dělat
4. Pokud to nefunguje, zkontrolujte makefile. java nebo javac nemusí být v cestě.
5. Chcete-li vytvořit soubor jar, který může být použit s "java-jar jbet.jar", spusťte "make jar".
6. Pokud jste nainstalovaný Perl, spusťte testy s "make test".
Volitelně, spusťte "make Regen, make test".
Proveďte symbolický odkaz z jbet3 / bin / jbet někam do vaší cestě.
Používání
JBET používá formát JNI pro názvy tříd, a druh a způsob JNI deskriptory. Pro shrnutí této syntaxi, použijte 'jbet nápovědu syntaxe ". Specifikace JVM Sun mohou být také užitečné.
Chcete-li se podívat na třídě demontáž, použijte 'jbet print'. Zkuste demontáže třídu máte zdroj, a byl stavěn s ladícím info (-g): "jbet -P
Podrobnosti Software:
Verze: 3 R1
Datum uploadu: 3 Jun 15
Licence: Volný
Popularita: 137
Komentáře nebyl nalezen