Descompilar un .class de Java Febrero 6, 2007
Posted by superpiwi in Programacion.1 comment so far
Si necesitamos descompilar rapidamente un .class de Java para ver el código podemos utilizar una herramienta denominada “Jad”.
http://www.kpdus.com/jad.html
Accedemos al sitio web y nos descargamos el .zip correspondiente a nuestra version de Sistema operativo. Lo descomprimimos y le damos permisos de ejecución:
chmod +x ./jad
Si a la hora de ejecutar sale un error. nos aseguramos de que tenemos todas las dependencias instaladas con el comando “ldd”.
./jad
./jad: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory
jose@soledad:~/Desktop$ ldd jad
linux-gate.so.1 => (0xffffe000)
libstdc++-libc6.2-2.so.3 => not found
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7f9b000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e66000)
/lib/ld-linux.so.2 (0xb7fd3000)
En este ejemplo nos falta la libreria “libstdc++-lib6.2-2.so.3″. Tiramos de Google y nos bajamos el RPM correspondiente a esa libreria:
libstdc++2.10-2.96-0.83mdk.i586.rpm
Convertimos el rpm a .deb con el programa “alien”. Si no lo tienes instalado en tu maquina descargate el .deb correspondiente e instalalo manualmente o ejecuta:
sudo apt-get install alien
Para convertir el paquete rpm al formato debian ejecutamos:
alien -d libstdc++2.10-2.96-0.83mdk.i586.rpm
Se genera el fichero: libstdc++2.10_2.96-1.83_i386.deb que ya podemos instalar en nuestra maquina.
Resueltos los problemas de dependencias, ejecutamos Jad de la forma:
./jad <fichero.class>
Si lo ejecutamos sin parametros nos muestra la ayuda:
jose@soledad:~/Desktop$ ./jad
Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov (kpdus@yahoo.com).
Usage: jad [option(s)] <filename(s)>
Options: -a - generate JVM instructions as comments (annotate)
-af - output fully qualified names when annotating
-b - generate redundant braces (braces)
-clear - clear all prefixes, including the default ones
-d <dir> - directory for output files
-dead - try to decompile dead parts of code (if there are any)
-dis - disassembler only (disassembler)
-f - generate fully qualified names (fullnames)
-ff - output fields before methods (fieldsfirst)
-i - print default initializers for fields (definits)
-l<num> - split strings into pieces of max <num> chars (splitstr)
-lnc - output original line numbers as comments (lnc)
-lradix<num>- display long integers using the specified radix
-nl - split strings on newline characters (splitstr)
-noconv - don’t convert Java identifiers into valid ones (noconv)
-nocast - don’t generate auxiliary casts
-noclass - don’t convert .class operators
-nocode - don’t generate the source code for methods
-noctor - suppress the empty constructors
-nodos - turn off check for class files written in DOS mode
-nofd - don’t disambiguate fields with the same names (nofldis)
-noinner - turn off the support of inner classes
-nolvt - ignore Local Variable Table entries (nolvt)
-nonlb - don’t insert a newline before opening brace (nonlb)
-o - overwrite output files without confirmation
-p - send all output to STDOUT (for piping)
-pa <pfx>- prefix for all packages in generated source files
-pc <pfx>- prefix for classes with numerical names (default: _cls)
-pe <pfx>- prefix for unused exception names (default: _ex)
-pf <pfx>- prefix for fields with numerical names (default: _fld)
-pi<num> - pack imports into one line using .* (packimports)
-pl <pfx>- prefix for locals with numerical names (default: _lcl)
-pm <pfx>- prefix for methods with numerical names (default: _mth)
-pp <pfx>- prefix for method parms with numerical names (default:_prm)
-pv<num> - pack fields with the same types into one line (packfields)
-r - restore package directory structure
-radix<num>- display integers using the specified radix (8, 10, or 16)
-s <ext> - output file extension (default: .jad)
-safe - generate additional casts to disambiguate methods/fields
-space - output space between keyword (if, while, etc) and expression
-stat - show the total number of processed classes/methods/fields
-t<num> - use <num> spaces for indentation (default: 4)
-t - use tabs instead of spaces for indentation
-v - show method names while decompiling
Al descompilar el .class se genera un fichero con extension .jad en el mismo directorio con el contenido de la clase.
A descompilar!!!.
A “quemar” CDs Febrero 6, 2007
Posted by superpiwi in Ubuntu.add a comment
Si buscas un buen programa para “tostar” CDs y DVDs instalate K3b. Puede ser una alternativa al “Nero” de Windows.
Curso de Ubuntu Febrero 6, 2007
Posted by superpiwi in Uncategorized.3 comments
El CNICE (Centro Nacional de Información y Comunicación Educativa) ha publicado un curso online de ubuntu. Cubre aspectos como la instalacion y manejo basico de las aplicaciones. Un recurso interesante para todo aquel que comience con este sistema operativo.
Apunta tu navegador a:
Instalando el driver de Nvidia Febrero 6, 2007
Posted by superpiwi in Ubuntu.add a comment
Bueno, como he tenido que reinstalar Beryl en mi Pc aprovecho y hago este Post. Para instalar el driver de Nvidia seguimos los siguientes pasos:
1. Nos conectamos a nvidia.org y descargamos la última version del driver (si tu tarjeta es algo antigua tal vez tengas que instalar una version anterior, a mi me paso en el Pc del trabajo). A fecha de hoy este fichero era:
NVIDIA-Linux-x86-1.0-9746-pkg1.run
2. Ahora instalamos (si no las tenemos) y desintalamos (para no tener conflictos) algunas cosillas desde Sinaptic. Te recomiendo que insertes el DVD de Edgy para instalarlas si no tienes acceso a Internet.
Tienes que tener instaladas las librerias para tu nucleo, se llaman linux_headers y un numero que depende de la version instalada. Para conocer la version desde la consola puedes teclear:
uname -a
Tienes que instalar tambien el paquete build-essential (al instalarlo se te instalaran otras dependencias como gcc, etc..).Es recomentable tambien instalar las librerias de desarrollo para xorg: xorg-xserver-dev
Y para no tener problemas a la hora de instalar el nuevo driver, desinstala nvidia-kernel-common y las librerias (restricted) asociadas.
3. Vale es hora de instalar. Abre una sesion de terminal pulsando Control+F1. nos despedimos de las X. como usuario root:
sudo -s
Introduce lo siguiente para matar las X:
/etc/init.d/gdm stop
se para el Gnome display manager. Ahora muevete al directorio donde hayas descargado el driver, dale permisos de ejecucion y ejecutalo con:
sh ./NVIDIA-Linux-x86-1.0-9746-pkg1.run
Sigue los pasos de el asistente. Se compilara e instalara el driver. Para finalizar reinicia la maquina con el comando:
shutdow -r now
Deberias poder entrar en el entorno grafico. Si tuvieras algun problema y no pudieras visualizar el entorno grafico, abre una sesion de consola y como usuario root recupera el backup del fichero de configuracion, este se encuentra en el directorio /etc/X11 o edita directamente el fichero /etc/X11/xorg.conf


