Bien llegamos al resumen del curso que vimos básicamente bueno vimos que cualquier pieza de software
aclaró que este curso se basó en piezas de software de 32 bit si existen piezas de 64 bit que no se
van a poder cambiar con estos programas o que básicamente se obtiene una pieza de software compilada
es decir un archivo punto ExE que lo único que tiene es una secuencia de unos y ceros que interpreta
la máquina para que un ser humano le pueda hacer ingeniería inversa es decir ver qué lo hace funcionar
cómo está hecho el código no puede interpretar humanamente esos ceros y unos lo que tiene que hacer
es pasarlo a un lenguaje de un nivel un poco más alto que el nivel máquina.
El lenguaje que está a más bajo nivel más cerca del nivel máquina que puede entender un ser humano y
dijimos que es el lenguaje Assembler o ensamblador.
Para esto necesitamos un software denominado de C ensamblador.
Aplicamos tres ensamblador a la pieza de software compilada el archivo punto ExE que queremos estudiar
y no va a devolver el código de cómo fue programado el código en ensamblador posteriormente con ese
código vimos que aún Jacq a un cracker le interesan muy pocas instrucciones.
La instrucción de no hacer nada la NOB que vimos la instrucción de Jota Jota né Xantar si se cumple
la condición o si no se cumple y también existe en la instrucción con la llamada que también se utiliza
mucho.
Le mostré esta metodología que con dos dos aplicaciones pudimos sacar tres piezas de software completamente
diferentes y con tres tipos diferentes de protecciones una por tiempo otra que se cerraba con doble
comparación la tercera que buscaba el código e inclusive y se pudo hacer.
Sigo con el resumen cuando se ensamblamos la pieza buscamos jalar los magos negros porque el blanco
ya no tendría sentido ya teníamos la contraseña correcta jalamos el Mago Negro o el Bad Boy que es la
ventana que no dice registro incorrecto.
Una vez que tenemos el Mago Negro anotamos todo lo que podemos título de ventana leyenda que te pone
cuando Norton registraste si tiene algún número que si lo ponemos hacemos un dibujo una búsqueda por
string.
Una búsqueda por lo que podemos leer del Mago Negro en el editor de búsqueda del 10 ensamblador nos
va a llevar hasta una línea de memoria.
Nosotros no sabíamos que el programa punto ExE se crea en memoria se hace una copia de todo el programa
en la memoria ensamblador lo hacen y lo pone en memoria así que nos da unos números que son los que
terminan con una letra C entre paréntesis que la dirección en el club en el código donde está la referencia.
Encontramos ese número y vamos a ver el mago el Extrem lo que se puede leer en el Mago Negro por ejemplo
Registration failed si registración fallida posteriormente con la opción Ghouta carbocatión ir a un
lugar en el Código le ponemos la dirección de esa línea de código que está ensamblada la memoria y nos
va a dar la instrucción la instrucción va a ser un J.
Con Jota en lo que vimos esa instrucción va a tener un offset el offset es el desplazamiento desde el
bit cero del primer bit porque es un ser humano del primer bit de todo el bloque binario.
Para saber cuántos tenemos que correr y encontrar justo el bit o el bit que tenemos que modificar qué
tenemos que modificar un 74 75 o un 75 por un 74 también un CVF 84 85 o un CVF 85 por su negado servicio
84.
Como vimos está el código ofuscado posteriormente que tenemos que hacer tenemos que podemos probar virtualmente
con el ensamblador como vimos y puede funcionar y después vamos a quemar cromo cerrar el ensamblador
abrir el editor hexadecimal mediante el offset que es el número que tiene el HD hexadecimales final.
Buscamos el emplazamiento nos va a parecer un 74 y 75 un CVF 84 85 que reemplazamos por sus negados.
Vimos también que la paranoia es casi siempre una virtud y el cracker tiene como metodología probar
la pieza de software más de una vez.
Como vimos una de las protecciones era que una vez funciona pero la segunda vez hace una comprobación
en el arranque además de en tiempo de ejecución y se vuelve a registrar.
Otra de las cosas que vimos es que cuando un software está muy bien protegido cada vez que modificamos
y cambiamos parte de una comparación el software por otro lado puede estar auditando.
Si ese es el 74 que puso el programador sigue siendo 74 huargos se lo cambio por 75 si ve que se lo
cambio se da cuenta de que está crackear el código puede desencadenar otra acción como por ejemplo matar
el NAG que hayamos visto para poner los datos de registro o algo peor borrarte el disco duro por ejemplo
entonces cómo hacía cómo se hace para saltear esto se crackear la primera vez.
Si el software se rompe se crea que la segunda vez si haciendo dos modificaciones se vuelve a romper.
La tercera modificación una vez que la encontramos la hacemos con la cuarta si se vuelve a romper tenemos
que agarrar el archivo virgen y empezar a hacer las modificaciones partiendo de la 2 sin hacer la 1.
Si se rompe hacemos la 3 sin hacerlo y la 2 si tiene 10 10 protecciones lo vamos haciendo ok.
Para qué.
Para que cuando el programador verifique si la primer comparación la primera protección está Cranky
no ya que no está crackear porque se entiende crearíamos la primera la segunda tercera se siiii si no
anda agarramos el archivo de origen no tocamos la primera y la segunda parte si se vuelve a romper el
archivo virgen no tocamos y la primera ni la segunda parte.
Y la tercera parte el tercer J o tercer J.
Con esto vimos que podemos derrotar porque va a llegar un momento en que va a dejar de hacer comparaciones
no puedo hacer comparaciones anidadas infinitas en el código verdad.
Y para terminar vimos que generalmente los grupos de crackers lo que hacen es hacer una firma.
Y vimos también cómo hacer un Patcher vimos la forma casi automática cómo configurarlo si se empachar
en memoria RAM que lo que hace es cargar el programa de memoria RAM y una vez que está cargado en la
memoria RAM cambiar las variables entre la memoria RAM.
Esto es un Patcher en RAM como creemos nosotros en ese caso hay que configurarlo obviamente y ponerle
siempre se le pone como la dirección la dirección en este caso de la memoria por lo que se quiere cambiar
si es un parche un Patcher no en RAM sino en el archivo binario lo que vamos a tener que ponerle es
el offset dentro del binario no la división en el código ensamblado dentro del binario y lo que tenía
y lo que hay que cambiar bien.
Ahora si vamos con la próxima clase en donde les voy a hacer los agradecimientos correspondientes y
una invitación.