Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Un inicio general
El mtodo general de localizar una clase a parchear, consiste en encontrar un punto de
partida y navegar por la sucesin de rdenes de ejecucin hasta llegar al cdigo que
queremos cambiar. Si no encuentras el cdigo que quieres cambiar cerca del punto de
partida, toma otro punto de partida nuevo y repite el proceso. Un buen punto de partida
es crucial para resultados rpidos. A veces qu clase escoger para empezar es bastante
obvio. Por ejemplo, para una API o un parcheado lgico un punto de entrada podra ser
la interconexin o clase que quieres cambiar. Si lo que quieres es en una clase pasar un
mtodo privado a un mtodo pblico, el punto de partida es la clase en cuestin. Si
necesitas fijar un error lo mejor sera provocar una excepcin de Java, y el punto de
partida sera la clase que hubiera en la parte superior del trazado de pila.
Una vez conseguido esto, despus de establecer una clase como inicio tendrs que
obtener el cdigo fuente de esta con lo cual tendrs que descompilar el bytecode para
obtenerlo y si es necesario, estudiar dicha clase para saber si es necesario parchearla.
Este proceso es similar al estudio del diagrama de secuencias, empezando desde cada
mtodo aprende y examina cada clase que se invoca en el camino de este. En los
sistemas grandes con cientos de clases, tendrs que identificar varios puntos de partida y
elegir el que proporcione la ruta ms corta al cdigo que necesitas cambiar.
almacena las cadenas como texto plano, en principio puedes buscar por todos los
archivo .class una subcadena que hayas visto en el archivo log. Supongamos que utiliza
una estructura de seguridad, una excepcin con el texto Invalid username aparece
encima de ciertos nombres. La razn para que sea rechazado es desconocida, pero quiz
ah est la solucin. La va ms fcil para llegar al cdigo sin disponer del trazado de la
pila es buscar el texto Invalid Username en todos los archivo .class de la estructura. La
mayora de veces la encontrars un par de veces en todo el cdigo y descompilando el
archivo class, sers capaz de comprender la raz del problema. De la misma manera,
puedes buscar en todos los archivos de clase: un mtodo o un nombre de una clase, una
etiqueta GUI, una subcadena de una pgina HTML, o cualquiera otra cadena que
pienses que est insertada en el cdigo Java.