Proteccion de bytescodes - II - con codigo
Reposteado pero con el codigo fuente. El uso de ofuscadores hacia un codigo inmantenible, intentamos proteger utilizando un Classloader a medida. Los paquetes del ejemplo: . crypt .- Loader El classloader a medida. .- Main Rutina para encriptar los ficheros. . ejemplos .- Ej_01 ... Clases sencillas para pruebas. .- Ej_02 ... Clases sencillas para pruebas. .- Ej_03 ... Clases sencillas para pruebas. .- Ej_04 ... Clases sencillas para pruebas. .- Ej_05 ... Clases sencillas para pruebas. .pruebas .- Prueba Mide la velocidad sin el ClassLoader. .- PruebaCrypt Mide la velocidad con el ClassLoader. crypt.Loader Es un classloader que en vez de leer ficheros .class lee ficheros .crypt utilizando una clave y un algoritmo de encriptacion. El metodo fundamental es hook que permite poner nuestro ClassLoader para que pueda ser llamado utilizando los new. Vease PruebaCrypt. public static void main(String[] args) { long ini = System.currentTimeMillis(); // Pongo el nuevo classloader al inicio, con chequeo try{ Loader.hook(); long a = 0; Object eje=null; for(int i=0; i < 100000; i++) { for(int j=0; j < 1000; j++) { eje= new Ej_01(); a += ((Ej_01)eje).numero + j +i; eje= new Ej_02(); ... Lo ideal seria obfuscar el Classloader a medida, crypt.Loader y poner en nuestros ficheros .jar o en el classpath los nuevos ficheros .crypt . Como veis esto es solo un ejemplo, utiliza el algoritmo de encriptacion mas sencillo, un homenaje a los virus. Utiliza ademas las antiguas IO y no las nuevas IO, no obstante la velocidad no se nota al hacerlo solo una vez por clase. El codigo fuente lo pongo en esta url: crypt.jar Termina en PDF pero es un JAR con los fuentes.
Posted at 08:00AM may 30, 2006 by Batch for the Java TM in General | Comentarios[0]