« septiembre 2010
lunmarmiéjueviesábdom
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Hoy

Publicidad

Creative Commons License 2.0

Technorati Profile

Links

RSS

Blog::Menu

« Nociones rapidas de... | Main | Productividad en... »
martes may 30, 2006

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.

Comentarios:

Enviar un comentario:
  • Sintaxis HTML: Deshabilitado
Copyright (C) 2006-2008, Batch for the Java TM

Java, J2EE, and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc

This blog is not affiliated in any way with Sun Microsystems, Inc.