Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cazando Numeros de Serie PDF
Cazando Numeros de Serie PDF
Monitor de archivos: Programa que sirve para vigilar posibles vnculos con archivos.
Algo parecido al monitor de registro con la diferencia obvia en que este monitorea
archivos ya sea del tipo dato .txt lo que sea. Este tipo de programas es menos til que
el monitor de registro ya que casi siempre los programas guardan los datos en el
registro de Windows.
EBX: base. No tiene nada que ver con el puntero base. No tiene propsito general y
puede ser usado para almacenar datos.
EDX: datos. Esta es una extensin de EAX. Permite clculos ms complejos como
multiplicar, dividir permitiendo almacenar datos extras para facilitar estos clculos.
MOV
Descripcin: esta instruccin guarda el contenido de fuente en destino.
Descripcin: MOV destino, fuente
Ejemplo: MOV EAX, EDX guarda el valor del registro EDX en el registro EAX.
MOV EAX, 123h guarda el valor 123h en el registro EAX.
Operacin: variable_destino = variable2_fuente
MOVZX
Descripcin: esta instruccin guarda el contenido de fuente en destino con
extensin cero. Esto es, los bits que no se hayan utilizado de destino en la copia
toman el valor de cero.
Sintaxis: MOVZX destino, fuente
Ejemplo: MOVZX EAX, 123h guarda el valor 123h en el registro EAX y cambia a cero
los bits no utilizados en la operacin.
LODSB/LODSW/LODSD
Descripcin: esta instruccin guarda un byte (LODSB), palabra (LODSW), o doble
palabra (LODSD) de la direccin DS:ESI en la parte correspondiente del registro EAX.
El registro ESI se extiende o reduce segn la longitud de los datos transmitidos y del
flag DF.
Sintaxis: LODSB/LODSW/LODSD
Ejemplo: LODSB guarda un byte de la direccin DS:Esi en el registro AL.
LODSW guarda una palabra de la direccin DS:ESI en el registro AX.
LODSD guarda una doble palabra de la direccin DS:Esi en el registro EAX.
REP
Descripcin: prefijo de instruccin aplicable a las instrucciones con caracteres
(STOSB, W, D, LODSB, W, D, MOVSB, W, D). Si el prefijo se define antes de una
instruccin, esta instruccin se repetir y el registro ECX funcionar como contador.
El valor del registro ECX disminuye en uno con cada repeticin. La repeticin finaliza
cuando el valor del registro ECX llega a cero. En caso de una instruccin REP
condicionada (REPZ, REPNZ), tambin se comprueba el flag ZF.
LOOP
Descripcin: esta instruccin permite la construccin de ciclos (tambin
condicionados utilizando instrucciones LOOP especiales); el registro ECX se utiliza
como contador del nmero de ciclo. El valor del registro disminuye en uno cada vez
que se ejecuta la instruccin LOOP y, excepto cuando sea cero, realice una bifurcacin
a la direccin indicada (en el caso de la instruccin LOOP condicionada, tambin se
comprueba la condicin especfica). Cuando el registro ECX sea cero, el proceso
contina en la instruccin siguiente a LOOP.
Sintaxis: LOOP direccin
Ejemplo: MOV ECX,5
Address: MOV [EAX], ECX
NOP
Descripcin: la instruccin NOP (No Operacin) no ejecuta cierta operacin.
Sintaxis: NOP
AND
Descripcin: esta instruccin realiza una conjuncin lgica (Y lgico) entre fuente y
destino, bit a bit y guarda resultado en destino.
Sintaxis: AND destino, fuente
Ejemplo: AND EAX, EDX realiza una conjuncin lgica entre los valores de los
registros EAX y EDX y almacena el resultado en el registro EAX.
AND EAX, 3Ah realiza una conjuncin lgica entre el valor del registro
EAX y el valor 3Ah; guarda el resultado en el registro EAX.
OR
Descripcin: esta instruccin realiza una suma lgica (O lgico) entre fuente y
destino, bit a bit y guarda resultado en destino.
Sintaxis: OR destino, fuente
Ejemplo: OR EAX, EDX realiza una suma lgica entre los valores de los registros
EAX y EDX y almacena el resultado en el registro EAX.
OR EAX, 3Ah realiza una suma lgica entre el valor del registro EAX y el
valor 3Ah; guarda el resultado en el registro EAX.
Operacin: variable_destino = variable_destino | variable2_fuente
XOR
Descripcin: esta instruccin realiza la funcin lgica de no equivalencia (sum mod
2) entre fuente y destino, bit a bit y guarda resultado en destino. Esta funcin se
utiliza frecuentemente al codificar datos.
NOT
Descripcin: esta instruccin realiza la inversin de todos los bits de destino y
guarda resultado en destino (constituye su propio complemento).
Sintaxis: NOT destino
Ejemplo: NOT EAX realiza la inversin del valor de registro EAX y guarda el
resultado en este registro.
TEST
Descripcin: al igual que suceda con AND, TEST realiza una conjuncin lgica entre
fuente y destino. Sin embargo, esta instruccin no guarda el resultado en ninguna
parte (esto es, los valores de fuente y destino no varan), slo se utilizan para definir
los flags apropiados.
Expositor: Lic. Jos Antonio Flores Martnez 19
Ingeniera Reversa
A esta instruccin le suele seguir frecuentemente la instruccin de una bifurcacin
condicionada.
Sintaxis: TEST destino, fuente
Ejemplo: TEST EAX, EDX realiza una conjuncin lgica entre los valores de los
registros EAX y EDX, tambin define los flags correspondientes segn el resultado.
PUSH
Descripcin: esta instruccin guarda un valor en la pila
Sintaxis: PUSH valor
Ejemplo: PUSH EAX guarda el valor de EAX en la pila
POP
Descripcin: esta instruccin guarda un valor de la pila en destino
Sintaxis: POP destino
Ejemplo: POP EAX guarda el valor de la pila en el registro EAX
SUB
Descripcin: esta instruccin resta fuente a destino y guarda el resultado en
destino.
Sintaxis: SUB destino, fuente
Ejemplo: SUB EAX, EDX resta el valor del registro EAX a EDX y almacena el valor en
el registro EAX.
Operacin: variable_destino = variable_destino variable2_fuente
JMP
Descripcin: instruccin de bifurcacin no condicionada que desplaza el control a la
instruccin de la direccin indicada.
Sintaxis: JMP direccin
Ejemplo: JMP 00402000 desplazamiento del control a la instruccin indicada en la
direccin 00402000.
Bifurcaciones condicionadas
Estas bifurcaciones condicionadas comprueban el valor de uno o ms atributos
(flags) del registro EFLAGS y segn el resultado saltarn o no a una direccin
especfica. De estas instrucciones aparecer detrs de aquellas que definan los
atributos (es decir, CMP). A continuacin se enumera una lista de las bifurcaciones
condicionadas bsicas:
Instrucciones Bifurcacin si
JE/JZ igual/cero
JNE/JNZ no igual/no cero
JB/JNAE por debajo/no por encima ni igual
JAE/JNB por encima o igual/no por debajo
JBE/JNA por debajo o igual/no por encima
JA/JNBE por encima/no por debajo ni igual
Herramientas a utilizar:
RDG Packer Detector v0.7.0
OLLyDbg SND
Lo primero que hare es analizar este software con la herramienta RDG Packer
Detector v 0.7.0 2013 para que obtenga informacin referente al lenguaje de
programacin utilizado para el desarrollo de esta aplicacin, as mismo conocer si
cuenta este ejecutable con alguna medida de proteccin para que en base a la
informacin devuelta por la herramienta tome el procedimiento ms adecuado.
Observo que tengo 15 dias a partir del dia en que se realiz la instalacin del software,
para utilizarlo antes que caduque y por el momento me permite utilizarlo como un
programa de prueba con la opcin Try.
Expositor: Lic. Jos Antonio Flores Martnez 30
Ingeniera Reversa
Teniendo abierta la herramienta OllyDbg, procedo abrir el ejecutable
CheetahDVDBurner .exe para su anlisis y poder localizar el nmero de serie que me
permita registrar el programa. Para ello pulso el men File elijo la opcin Open y
selecciono el programa en la carpeta donde se instal y presiono el botn Abrir.
Y woal, he encontrado los nmeros de serie del programa que permiten registrar el
programa de forma permanente y con todas las funciones completas del mismo, como
si hubiera comprado una licencia de la aplicacin.
Recordar que el objetivo de esta presentacin fue con fines didcticos y de aprendizaje
en ningn momento exhorto a los alumnos, catedrticos y pblico en general a
crackear software y venderlos, puesto que esto es un delito grave castigado con prisin,
puesto que esta penado por la ley, por derechos de autor.
Gracias !!!