Está en la página 1de 9

ACTIVIDAD 5

EJERCICIOS SOBRE DECOMPILACIÓN

Fecha:14/*04/2024
Nombre del estudiante: Israel Alan Reyes Valdespino
Nombre del docente: Ricardo Herrera Ocadiz

Con base en el material consultado en la unidad resuelve los ejercicios que se planteas a
continuación acerca de los siguientes temas.
 Decompilación:
o Java Decompiler

R= es un proyecto que tiene como objetivo desarrollar herramientas para


decompilar y analizar archivos binarios a partir de Java 5.

o JetBrains dotPeek
R= es una herramienta independiente gratuita basada en el decompilador
incluido en ReSharper. Puede decompilar de forma segura cualquier
ensamblado .NET a código equivalente C# o IL.

¿Qué es un decompilador?
R= es un programa de ordenador que realiza la operación inversa a un compilador.
Ejercicio 1. Decompilación Java Decompiler

1. Ingresa al siguiente enlace: http://java-decompiler.github.io/

 Se ingreso al enlace mencionado agregando una captura de pantalla para el


seguimiento de las indicaciones del trabajo.
2. Descarga JD-GUI adecuado para tu sistema operativo e instálalo.

3. Descarga el archivo compropagosdk.jar de: https://github.com/compropago/compropago-


java/releases
4. Utiliza el Decompilador de Java instalado para visualizar el contenido y estructura de
compropagosdk.jar
5. Ubica la clase Client y revisa el código de forma detallada, identifica métodos y
propiedades
package compropagosdk;

public class Client {


public static String VERSION = "3.0.1.0";

private static String API_URL = "https://api.compropago.com/v1/";

private String publicKey;

private String privateKey;

public boolean live;

public String deployUri;

public Service api;


*//METODO
public Client(String publicKey, String privateKey, boolean live) {
*//VALORES
this.publicKey = publicKey;
this.privateKey = privateKey;
this.live = live;
this.deployUri = API_URL;
this.api = new Service(this);
}
*METODO
public String getUser() {
return this.privateKey;
}

public String getPass() {


return this.publicKey;
}
}

CLASE CLIENTE

public String getUser() {


METODOS Y return public String getPass() {
PROPIEDADES this.privateKey;
Ejercicio 2. Decompilación JetBrains dotPeek

1. Ingresa al siguiente enlace: https://www.jetbrains.com/es-es/decompiler/

2. Descarga la herramienta de decompilado dotPeek y realiza su instalación.


3. Descarga el archivo nuget.exe de:
https://github.com/zayenCh/DownloadFile/blob/master/nuget.exe
.
4. Selecciona una clase específica e integra su código, lista sus propiedades y
características.
.

CONCLUSIÓN
Un compilador es un programa que traduce el código fuente, escrito en un lenguaje de
programación de alto nivel, a un lenguaje de máquina o de bajo nivel. Este proceso de
traducción se conoce como compilación. A diferencia de los intérpretes, los compiladores
reúnen diversos elementos o fragmentos en una misma unidad, como un programa ejecutable
o una biblioteca, que puede ser almacenada y reutilizada.
La construcción de un compilador implica dividir el proceso en varias fases, que pueden variar
en complejidad. Estas fases generalmente se agrupan en dos tareas: el análisis del programa
fuente y la síntesis del programa objeto.
En resumen, los compiladores son una parte esencial de la informática y juegan un papel
crucial en la ejecución de los programas que usamos a diario. ¡Buen trabajo en proporcionar
una descripción tan detallada!

Análisis:
El análisis se trata de la comprobación de la corrección del programa fuente, según la
definición del lenguaje en términos de teoría de lenguajes formales. Incluye las fases
correspondientes al análisis léxico, análisis sintáctico y análisis semántico.

La síntesis tiene como objetivo la generación de la salida expresada en el lenguaje objeto y


suele estar formado por una o varias combinaciones de fases de generación de código y de
optimización de código. En estas fases se busca obtener un programa objetivo lo más
eficiente posible, según su complejidad computacional o complejidad.

En resumen, los compiladores son herramientas esenciales en la programación que permiten


traducir el código fuente a un lenguaje que la máquina pueda entender y ejecutar.

El Analizador o front-end
es la parte del compilador que analiza el código fuente, comprueba su validez, genera el
árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele ser
independiente de la plataforma o sistema para el cual se vaya a compilar, y está compuesta
por las fases comprendidas entre el análisis léxico y la generación de código intermedio.

Generador o back-end
es la parte del compilador que genera el código máquina, específico de una plataforma, a
partir de los resultados de la fase de análisis. Esta división permite que el mismo generador
se utilice para crear el código máquina de varios lenguajes de programación distintos y que el
mismo analizador que sirve para examinar el código fuente de un lenguaje de programación
concreto sirva para producir código máquina en varias plataformas. Suele incluir la generación
y optimización del código dependiente de la máquina.

También podría gustarte