Está en la página 1de 6

Actividad 5

EJERCICIOS

Fecha: 28 de noviembre de 2022


ACTIVIDAD 5
EJERCICIOS SOBRE DECOMPILACIÓN

Fecha:28/11/2022

Planteamiento:
Un decompilador es un programa de ordenador que realiza la operación inversa a los
compiladores, es decir, traduce código que esta a bajo nivel de abstracción a un lenguaje
con mayor nivel de abstracción.
Es decir el decompilador intenta recrear el código fuente de alto nivel a partir de un código
binario ejecutable.

A continuación observaremos varios ejercicios que nos muestran como funcionan estos
programas decompiladores (Java Decompiler y DotPeek)

Desarrollo:
Ejercicio 1. Decompilación Java Decompiler

Ubica la clase Client y revisa el código de forma detallada, identifica métodos y


propiedades.
En "compropagosdk.jar" podemos observar que tenemos los diferentes paquetes y clases en
Java. Podemos ver un ejemplo de arquitectura basada en MVC en dónde se encuentran la
parte del cliente y la parte del consumo de servicios por separado. Como podemos ver en la
imagen del punto anterior.
Las propiedades que aparecen en el código son tanto públicas como privadas, un par de ellas
son estáticas y se pueden consultar incluso fuera de la clase sin necesidad de crear una
instancia.
1.private staticString API_URL ="https://api.compropago.com/v1/";
2.privateString publicKey;
1.Client(); Este es un método constructor, en el se hace el set de las propiedades de la clase al
crear una instancia.
2.getUser() y getPass() podemos ver estos métodos "getters" que nos permiten acceder a
propiedades de manera indirecta con el fin de lograr el encapsulamiento de este código.

Ejercicio 2. Decompilación JetBrains dotPeek


Documenta la estructura.
NuGet // Raíz del proyecto.
Metadata // Tiene los metadatos de todo el proyecto para que este funcione
correctamente.
References // Tiene las referencias a otros paquetes de sistema que son necesarios
para que el proyecto funcione correctamente.
Resources // Contiene los recursos y configuraciones de compilación.
Selecciona una clase específica e integra su código, lista sus propiedades y
características.
using System;
using System.Runtime.InteropServices;

namespace NuGet
{
[ComVisible(false)]
public sealed class FileTransformExtensions : IEquatable<FileTransformExtensions>
{
public string InstallExtension { get; private set; }

public string UninstallExtension { get; private set; }

public FileTransformExtensions(string installExtension, string uninstallExtension)


{
if (string.IsNullOrEmpty(installExtension))
throw new
ArgumentException(CommonResources.Argument_Cannot_Be_Null_Or_Empty, nameof
(installExtension));
if (string.IsNullOrEmpty(uninstallExtension))
throw new
ArgumentException(CommonResources.Argument_Cannot_Be_Null_Or_Empty, nameof
(uninstallExtension));
this.InstallExtension = installExtension;
this.UninstallExtension = uninstallExtension;
}

public bool Equals(FileTransformExtensions other) => string.Equals(this.InstallExtension,


other.InstallExtension, StringComparison.OrdinalIgnoreCase) &&
string.Equals(this.UninstallExtension, other.UninstallExtension,
StringComparison.OrdinalIgnoreCase);

public override int GetHashCode() => this.InstallExtension.GetHashCode() * 3137 +


this.UninstallExtension.GetHashCode();
}
}

Propiedades:

 InstallExtension

 UninstallExtension
Métodos:

 FileTransformExtensions (el constructor)

 Equals

 GetHashCode

Conclusión:

Referencias:
Ruíz, F., García, I., Pérez, R. (2019). Mantenimiento y evolución de sistemas de
información [Versión electrónica]. Recuperado de https://elibro.net/es/lc/uvm/titulos/127090
Priyadarshi, T., Kshirasagar, N. (2015). Software Evolution And Maintenance Haga clic
para ver más opciones [Archivo PDF]. Recuperado de
http://3.droppdf.com/files/xV5TY/software-evolution-and-maintenance.pdf
ava Beam (Productor). (25 de agosto de 2020). How to decompile .jar file or .class file?
| Java Decompilers & eclipse plugin for decompile [Archivo de video]. Recuperado de
https://youtu.be/I-VFcyGPBMY
TACV (Productor). (15 de julio de 2019). How to RECODE (.dll) File | Edit Premade Dll
files Using dotpeek | Encoding, Decoding [Archivo de video]. Recuperado de
https://youtu.be/5XWmw8bnX_g

También podría gustarte