Felicitaciones por haber derrotado el examen número 2 de las definiciones y bienvenidos a la sección
3 donde vamos a ver las herramientas que utiliza un cracker y que vamos a utilizar en este curso ya
estuvimos viendo un poco el editor de decimal pero ahora vamos a hablar de lo que es el disfracen de
Vagner.
Si les ensamblador y el Aguer vendría a ser eres una persona Tibu si es un bug es así como se escribe
no es un insecto.
Esto tiene una historia.
Si las primeras computadoras la primer hacker del planeta Tierra fue una mujer muy inteligente y una
matemática llamada ADA.
De hecho hay un lenguaje de programación que se llama Ada en honor a ella.
Esta mujer era muy inteligente y bueno en la época en que las computadoras eran muy antiguas que utilizaban
válvulas de vacío que podían tener por ejemplo el ENIAC tenía una estructura que tenía como 20 metros
en forma de U.
Entonces las personas iban con unos carritos con unos changos tipo supermercado con válvulas iban cambiando
constantemente válvulas de lugar porque la máquina era muy grande muy compleja y se hacía chatina o
se caía constantemente o bien porque se rompió una válvula o bien porque la válvula de vacío desprendía
un fulgor color anaranjado y un zumbido muy característico que les encantaba a los roedores de todo
tipo.
Entonces generalmente cuando las válvulas fallaban o los zócalos se conectaban unos zócalos que se ponían
resistidos por humedad por lo que fuese.
Las ratas se comían los cables y si no había unos insectos que se colocaban en los zócalos y en los
Relay y producían problemas entonces hay una historia que una de las primeras de los primeros 6 7 6
7 es comprobante de servicio técnico esos papeles que dejan los técnicos cuando van a solucionar un
problema una máquina se cayó no podían saber lo que era y ya Tindouf no andaba lo procesaba y la llamaba
nada y ella lo solucionó cuando le preguntaron que había sido la señal de una pared donde tenía una
cucaracha un insecto grande pegado con cinta y decía un bug un insecto.
Y ahí quedó el término así que un bug es un error en el software entonces un de Backer un debugger que
vendría a ser un exterminador de bichos.
En realidad se utiliza para eso es un programa que me permite correr paso a paso la ejecución de otro
programa que yo quiero editar y de esa forma si hay algún error como lo puedo ir corriendo paso a paso
e ir viendo todo el estado de las variables puedo encontrar el bug el error por eso se llama Valle y
el descenso hablador es lo que nos permite agarrar código punto exe es decir el código compilado ese
archivo que si no le hace doble clic se ejecuta la aplicación pero en un lenguaje que es lenguaje máquina
de decir ya lo vimos se ve como una secuencia de unos y ceros estaba representado en hexadecimal en
el editor hexadecimal pero la máquina no procesa como una secuencia de unos y ceros y ella sabe lo que
tiene que hacer pero para un ser humano eso es ininteligible es decir uno leyendo eso no puede sacar
ninguna lógica de cómo está programado lo último o lo único que podemos sacar como vimos son los Extrem
las cadenas si el texto se alcanza a leer como si este programa no corre bajo el modo de Oise pero no
podemos sacar exactamente las sentencias de programación.
La receta de cómo está hecho el software que es en definitiva lo que nos va a dar la lógica para poder
tratar de derrotar la protección.
Ok entonces bueno lo que hacen los ensambladores justamente eso agarra un archivo compilados desde un
archivo en código máquina archivo punto ExE en Windows en sistemas GNU Linux se le dice binario porque
no necesariamente tiene que tener punto ExE.
De hecho no tiene punto de acceso que puede ser de archivos Meola y ser un ejecutable de Windows no
puede seguir por la extensión.
Y bueno como dije lo transforma en una serie en el programa hay varias formas de programar algunas más
a bajo nivel es decir más cerca de la máquina del procesador y otras un poco más de alto nivel.
Los lenguajes de alto nivel son más fáciles si un lenguaje como el visual y sin un lenguaje como el
Python como el par son lenguajes de alto nivel.
Si uno escribe el programa casi como si le hablara a otra persona en inglés.
En cambio hay forma de programar lenguajes que son los que están más cerca de la máquina el lenguaje
más cerca de la máquina que existe es el lenguaje código máquina el código máquina inentendible entendible
para un ser humano porque habría que acordarse qué hace cada numerito en hexadecimal que uno lee lo
que le sigue.
Es decir el lenguaje de más bajo nivel que puede entender un ser humano sin volverse loco.
Es el lenguaje ensamblador el lenguaje ensamblador es justamente lo que nos va a dar el descenso emulador
cuando se lo apliquemos a un punto ExE lo va a desmenuzar va a ser ingeniería inversa y va a entregar
el lenguaje ensamblador ensamblador es un lenguaje muy poderoso si bien es bastante complicado de programar
por eso hoy en día se hace con lenguajes de alto nivel.
Pero lo bueno de programar ensamblador es que el código queda muy pequeño muy bien optimizado sí y muy
rápido.
Hoy en día con el poder de procesamiento de las máquinas no se necesita programar en bajo nivel a menos
que sea un control un programa de control de un robot de una válvula de algo que tenga hardware y que
necesite una temporización exacta en este caso sí pero si es necesario abajo ejecutable en Windows es
el punto ExE y el código fuente es la receta de cómo está hecho como está programado ok.
En definitiva nosotros vamos a ver el código fuente el lenguaje ensamblador.
Sí puede ser que originalmente el programador haya hecho el código fuente en un lenguaje de alto nivel
pero sí ensamblador me lo va a transformar a ensamblador.
Qué más complejo pero para el cracker vamos a ver que no es tan complejo.
Bien vamos a ver en la realidad cómo suena esto
bien vamos a ver qué sabor tiene un desarrollador.
Aquí tenemos el doble de 32 de ahí cm inversión 8 9 tiene sus años bueno pero para que lo vean básicamente
tiene una ventana donde mostrar sus datos y vamos a ensamblar vamos a ensamblar el crack mi archivo
reciente.
Yo lo estuve ensamblando acá
es muy rápido para esa Asamblea del Grammy.
Tengan en cuenta que como siempre digo lo estoy corriendo dentro de un teléfono celular con el limbo
PC Emulator y sin embargo vuela rápido porque este segundo Domino le carga peso extra de procesamiento.
Fíjense si acá está el código es ensamblado.
Ven que esto es muy diferente a como se veía.
El editor hexadecimal donde veíamos nada más que cadenas de texto que podíamos llegar a reconocer pero
no las instrucciones.
En cambio acá ya empezamos a ver instrucciones a ir un poco más abajo.
Ya empezamos a ver instrucciones ok.
Mover a un registro que hoy tenemos.
Vamos a ver que tenemos llamadas tenemos que salvo el contenido de algo que son instrucciones.
Si que salte a una dirección ya que mueva datos muy ya vamos a ver las que nos interesan a nosotros
para que vean lo que vamos a usar.
Para crackear de este ensamblador es acá donde hice de back.
Lo usa como Badger en la parte que se carga al proceso y no va a permitir entre otras cosas crear un
software sin modificar el binario dependiendo el tipo de software y hacer las pruebas de los cráneos
en forma virtual en este programa para ver si funciona.
Y una vez que funcionan ahí sí que saquemos realmente el original.
Entonces está bueno para no romper el original haciendo pruebas máquina virtual y después otro lugar
en Buenos Aires tu Gatto Boqueixón que se utiliza mucho para averiguar el offset el desplazamiento dentro
del binario compilado el offset que aparece acá es otro offset el offset del programa ya es ensamblado
con sus líneas de código.
Yo quiero saber a dónde va este salto me va esta dirección pero en realidad si yo quiero modificar el
binario no va a ser esta dirección va a ser el house dentro del binario compilado no de esto que está
todo desmenuzado en el código.
Entonces tenemos que ir acá si no no voy a variar mucho.
Pero bueno vamos con la próxima clase en donde vamos a ver que ya vimos.
Así que mucho más hay que decir que es el editor hexadecimal.