2011-05-23 10 views
11

Supongamos que uno descubre que cierto desarrollador codificó un puñado de nombres de usuario y contraseñas en la aplicación, que lo convirtió en Producción. Oh-oh ...!verifique el contenido en los archivos .class

Conoce el nombre de usuario y la contraseña: ¿hay alguna forma de escanear el bytecode e identificar si, de hecho, el nombre de usuario, la contraseña estaban codificados?

Respuesta

19

Una manera simple de ver qué literales de cadena se usan en un archivo ".class" es usar la utilidad javap en su instalación JDK para volcar el archivo usando la opción "-v". A continuación, grep para un texto que se parece a <String "..."> donde ... es la cadena que está buscando.

ACTUALIZACIÓN

La documentación más reciente para javap es here, pero la versión antigua se ve mejor la OMI.

+0

¡Esto es asombroso! Gracias – JAM

+0

¡De nada! –

+0

¡Funcionó muy bien para mí también! –

7

Puede utilizar descompiladores java para descompilar su clase (y para comprobar si la clase contiene nombre de usuario/contraseñas codificadas) Tenga una mirada en:

7

Tienes usted miró en JD-GUI? Puede ver allí si ha sido codificado en cualquiera de los archivos de clase.

+2

Resumí esta recomendación. JD-GUI es una gran herramienta para examinar los archivos de clase Java. – rickumali

4

Puede ser útil para otros en el futuro. (De How can I open Java .class files in a human-readable way?)

Usage: javap <options> <classes>... 

where options include: 
    -c      Disassemble the code 
    -classpath <pathlist>  Specify where to find user class files 
    -extdirs <dirs>   Override location of installed extensions 
    -help      Print this usage message 
    -J<flag>     Pass <flag> directly to the runtime system 
    -l      Print line number and local variable tables 
    -public     Show only public classes and members 
    -protected    Show protected/public classes and members 
    -package     Show package/protected/public classes 
          and members (default) 
    -private     Show all classes and members 
    -s      Print internal type signatures 
    -bootclasspath <pathlist> Override location of class files loaded 
          by the bootstrap class loader 
    -verbose     Print stack size, number of locals and args for methods 
          If verifying, print reasons for failure 
+0

Erm ... esta respuesta debe ser para personas que no saben cómo hacer clic en un enlace: http://download.oracle.com/javase/8/docs/technotes/tools/windows/javap.html –

+1

ha ha ... Puedo entender. En función de mi documentación previa expuesta a Oracle, los enlaces aparecen finalmente interrumpidos. Es bueno tenerlo en su lugar. Por supuesto, nadie está tomando sus créditos y ha avistado la referencia :) Tómelo con calma. +1 para su respuesta –

+0

Se arreglan los enlaces rotos en las respuestas de StackOverflow. Si las preguntas y respuestas valen la pena. –

Cuestiones relacionadas