Java Binary Enhancement Tool (JBET) ay isang pangkalahatang kasangkapan sa pagtatasa Java program at manipulasyon. Umiiral na mga file klase ay maaaring disassembled, reassembled, o na-edit ng programming sa pamamagitan ng mga JBET API. Maaari ring JBET ginagamit upang lumikha ng mga bagong Java class file mula sa scratch. JBET ay gumagamit ng isang maginhawang panloob na representasyon ng lahat ng mga nilalaman ng Java binary (Klase) file, na nagpapahintulot sa gumagamit na madaling i-edit ang mga klase, sa isang naka-balangkas na paraan.
JBET ay binuo bilang bahagi ng DARPA Self-Pangangalaga proyekto Mobile Ahente sa ilalim ng Oasis at Active programs Networks (numero ng kontrata N66001-00-C-8602) upang pag-aralan automated software obfuscation.
Ang Java wika ay pinili para sa proyektong ito dahil sa (kamag-anak) kadalian ng paggawa sa binary edit ng mga kasangkapan na ibinigay ng malaking halaga ng impormasyon sa uri naroroon sa mga files class. Ang aming dalawang mga ulat, ang Obfuscation Pamamaraan ng Pagsusuri ng Ulat, at ang Ulat Obfuscation, ay makukuha mula sa mga pag-download na lugar. Ang obfuscation tool na binuo ay hindi bahagi ng mga ito release.
JBET ay ginagamit din sa proyekto survivable Server DARPA / AFRL (kontrata number F30602-00-C-0183) upang magdagdag ng karagdagang mga tseke seguridad sa Java Standard Library. (Ang Java SecurityManager API ay hindi sumusuporta sa maraming mga kanais-nais na mga pagsusuri ng seguridad, tulad ng patuloy na pahintulot ng access file pagkatapos ng pagbubukas.)
JBET ay ginagamit upang palitan ang katutubong paraan sanggunian sa Java standard library na may stub na tumawag ng isang pluggable patakaran sa seguridad. Ang tool na ito, na tinatawag na Jpolicy, ay magagamit para sa mga download sa website na ito. Jpolicy ay tunay hindi kumpleto sa oras na ito, ngunit maaaring maging kawili-wili sa mga nagtatrabaho sa Java seguridad o pagpapalit ng mga standard library sa kanilang sarili.
Ang panloob na representasyon ng Java class file na ginagamit ng JBET ay intented upang gawing madali para sa mga programmer na magsulat ng binary code transforms Java. Ang bawat elemento ng Java class files ay may kaukulang mga panloob na istraktura ng data: ClassInfo para sa buong klase, MethodInfo para sa mga pamamaraan, FieldInfo para sa mga patlang, Snippit para sa mga bloke ng code, at Pagtuturo para sa indibidwal na mga tagubilin. Snippit at Pagtuturo maunawaan Java opcode syntax at semantics, na nagpapahintulot sa mga automated na paglikha ng valid programs Java. Ang isang klase verifier Java-compatible ay kasama rin.
Ang ilang mga transforms code ay mahirap na direkta sa programa sa pamamagitan ng pagmamanipula tagubilin Java. Para sa mga transforms, isang itinuro acyclic graph (DAG) representasyon ng code ay magagamit. Sa dag representasyon, ang bawat pangunahing block ay may kaukulang DAG, na may isang hanay ng mga input at output nodes. Gilid sa graph kumonekta "producer" nodes (tulad ng mga constants, o ang mga resulta ng mga kalkulasyon) upang nodes "user" (tulad ng mga tawag na paraan o iba pang mga kalkulasyon). Paraan ay nahahati sa mga pangunahing mga bloke at kontrol ng daloy ay naka-imbak sa mga pangunahing antas block (posible dahil Java ay nakatakda lamang target tumalon)
Ay nangangailangan ng isang Java 1.4 virtual machine JBET na tumakbo, bagaman maaari itong gumana sa klase ng mga file mula sa mga naunang mga bersyon ng Java. Ang packaging at bumuo ng kapaligiran na ibinigay sumusuporta sa Linux at Windows sa Cygwin; gayunman, ang proseso ng paggawa ay simple at maaaring maging mano-mano gumanap sa iba pang mga platform. Perl ay kinakailangan para sa pagbabalik pagsubok.
Nangangailangan Jpolicy ng Java 1.4 virtual machine upang bumuo, alinman sa Linux o Windows NT / XP na may Cygwin. gcc ay kinakailangan para sa mga gusali sa Windows (ibinibigay sa Cygwin). Ang runtime sistema ay maaaring maging alinman sa Java 1.3 o 1.4 (na may JVM Sun lamang), na tumatakbo sa Linux o Windows NT / XP. Windows 9x at Windows 2000 ay maaaring gumana rin, ngunit hindi pa nasubok.
Instalasyon
1. I-install jdk 1.4.1.
2. Itakda CLASSPATH sa jdk1.4.1 / JRE / lib / rt.jar
3. cd src; gumawa
4. Kung na hindi gumana, suriin ang makefile. java o javac hindi maaaring maging sa path.
5. Upang bumuo ng isang jar file na maaaring magamit sa mga "java jar jbet.jar", patakbuhin "gumawa ng jar".
6. Kung ikaw ay Perl-install, patakbuhin ang pagsusulit sa "gumawa ng test".
Opsyonal, tumakbo "gumawa regen; gumawa ng test".
Gumawa ng isang makahulugan na link mula jbet3 / bin / JBET sa tabi-tabi sa iyong landas.
Paggamit
JBET ay gumagamit ng mga format JNI para sa mga pangalan ng klase, at i-type ang JNI at paraan descriptors. Para sa isang buod ng mga syntax na ito, gamitin ang 'JBET tulong syntax'. Specification JVM Sun ay maaari ring maging kapaki-pakinabang.
Upang tumingin sa isang klase disassembly, gamitin ang 'JBET print'. Subukan disassembling isang klase mayroon kang source para sa, at ay binuo sa info debug (g): 'JBET P
Mga detalye ng Software:
Bersyon: 3 R1
I-upload ang petsa: 3 Jun 15
Lisensya: Libre
Katanyagan: 137
Mga Komento hindi natagpuan