|
¿Qué
es el Procdump?
¿Cómo
puedo saber si un programa está comprimido?
¿Qué
es la función Hmemcpy?
¿Por qué
a veces no puedo ver las "string references" cuando utilizo el W32Dasm?
¿Qué significa
"Crippleware"?
¿Cómo puedo
saber si un programa accede al registro del Windows?
¿Cómo puedo
saber si un programa accede a algún archivo?
¿Cómo
se puede "cazar" un serial en un programa escrito en Visual Basic?
¿Qué
es eso del "Color Crack" o "crack en colores"?
¿Qué
es una Nag Screen? ¿Cómo se puede eliminar?
|
¿Qué
es el Procdump? |
ProcDump es una herramienta que te permite (entre otras cosas) copiar
el contenido de un proceso al disco duro. También te permite editar
la cabecera de los programas de tipo PE (Portable Executable). |
¿Cómo
puedo saber si un programa está comprimido?
|
La mejor forma de averiguar si un programa está comprimido
es utilizar alguna herramienta como el Gettyp.
Es conveniente tenerlo siempre a mano, al igual que el Procdump (para
descomprimir el programa en cuestión).
Utilizando el Gettyp sabremos el tipo de compresor utilizado (Aspack,
petite, upx....etc). |
¿Qué
es la función Hmemcpy? |
HMEMCPY es una API de Windows, que utiliza la memoria RAM para leer,
manipular, comparar y almacenar cadenas (texto que introducimos cuando
un programa nos pide el numero de serie por ejemplo). La funcion recoge
la informacion que le proporcionamos y la carga en memoria. Despues
manipula esas cadenas, las mueve y las compara (por ejemplo compara
tu numero de serie con el correcto), y despues decide si la cadena
es o no la correcta.
La funcion HMEMCPY devuelve esta informacion al programa en cuestion,
y si has puesto el serial correcto te lo aceptara o de lo contrario
te mostrara una bonita ventana de error.
HMEMCPY se puede utilizar para "cazar" numeros de serie validos en
programas shareware. Utilizando un debugger (depurador) como el SoftIce,
podemos poner un breakpoint en HMEMCPY para que el programa se pare
y nos avise cuando llama a la funcion. Muchos programas shareware
utilizan esta función para comparar numeros de serie, sobre
todo cuando han sido escritos en Delphi o en Visual Basic. |
¿Por
qué a veces no puedo ver las "string references" cuando utilizo
el W32Dasm? |
Pues depende. En ocasiones se debe a que el programa tiene algún
tipo de protección anti-desensamblado.
Un ejemplo: En el caso del programa Winboost 2000 (Protección
analizada por Mr.WhiTe, véase http://ecd.tsx.org)
Sucede que al editar el *.exe (previamente descomprimido con el ProcDump)
y seleccionar "Edit section". Abajo, donde pone "Section Characteristics"
si modificamos el valor C0000040 por E0000020 y guardamos los cambios,
la protección habrá desaparecido mágicamente.
|
¿Qué
significa "Crippleware"? |
Cuando un programa incorpora alguna de sus opciones deshabilitada
(como por ejemplo guardar un archivo)
existen dos posibilidades:
- El
código que hace funcionar esa función está
presente en el programa pero no esta activada.
- El
código no esta presente en el programa. Entonces se dice
que el programa es "Crippleware".
Es posiblemente
la mejor opción a la hora de proteger un programa.
Es muchisimo más dificil que un Cracker consiga habilitar esa
función (pero no imposible). |
¿Cómo
puedo saber si un programa accede al registro del Windows?
|
Utilizando una herramienta llamada REGMON (Registry Monitor) |
¿Cómo
puedo saber si un programa accede a algún archivo?
|
Utilizando una herramienta llamada FILEMON (File Monitor) |
¿Cómo
se puede "cazar" un serial en un programa escrito en Visual Basic?
|
El Visual Basic no es precisamente el lenguaje más apropiado
para programar una aplicación comercial. En el caso de toparnos
con una de estas "joyas", una opción muy aconsejable es echar
mano del Smartcheck de la empresa Numega
|
¿Qué
es eso del "Color Crack" o "crack en colores"? |
Se trata de una "nueva" técnica de cracking empleada por Estado+Porcino.
Es bastante útil cuando el mensaje de "error" no es una ventana
sino una cadena dentro de una ventana.
Debemos averiguar el color que se aplica al mensaje y colocar en el
SoftIce:
bpx nombreRutina if (*(esp+8)==00BBGGRR)
Recordad que los valores de Blue(azul), Green (Verde), Red (rojo)
están en hexadecimal.
Para más información véase el tutorial sobre
el Multimedia Builder en http://ecd.tsx.org.
|
¿Qué
es una Nag Screen? ¿Cómo se puede eliminar? |
Una Nag Screen es una ventana que nos molesta durante la ejecución
de un programa. Los motivos pueden ser muchos (Aparece al arrancar
el programa recordandonos que no estamos registrados, nos informa
de algo y nos obliga a esperar a que desaparezca, nos obliga a pulsar
un botón para mandarla a paseo......etc)
No existe ningún método estandar para crackear las Nags.
Depende del programa y de la función utilizada para pintar
la ventana. No es lo mismo el típico MessageBox con el botón
de aceptar que otro con varios botones. Tambien hay que tener en cuenta
si el programa realiza alguna modificación en la pila. Un par
de ejemplos sencillos para entender "el concepto":
Programa: Lotus SmartSuite Millenium Edition (Protección analizada
por Mr.WhiTe) véase http://ecd.tsx.org.
En este caso la ventana se presenta en pantalla haciendo uso de la
función dialogboxparama.
Nos aparecen varios botones. El que nos interesa pulsar es el botón
de "Ok". ¿Soluciones?
La mejor opción dadas las circunstancias será provocar
que el programa pulse por si mismo el botón.
¿Como conseguimos esto?
Si pulsamos el boton "OK" nos devolvera el valor 10, así que
en el momento de pasarle los parámetros a la función
dialogboxparama, forzamos el programa a introducir el valor 10 en
EAX. Para más información consulta la Win32 Programmer's
Reference
Programa: Ulead PhotoImpact v4.12 (Protección analizada por
Mr.WhiTe) véase http://ecd.tsx.org.
En este caso podemos saltarnos la molesta ventana simplemente evitando
que el programa llame a la función DialogBoxParamA. Para ello
sustituimos la llamada por unos cuantos bytes inofensivos:
:4EB066CD FF15F4A3B14E Call dword ptr [4EB1A3F4] <--- Llamada a DialogBoxParamA
:4EB066CD 909090909090 NOP NOP NOP NOP NOP NOP <--- Código inofensivo
Ojo:
Esta opción no siempre es posible. En este caso sabemos que
no sucedera ningún imprevisto porque el programa no realiza
ninguna modificación en los valores almacenados en la Pila.
|
|
(c)
Whiskey Kon Tekila [WkT!] - The Original Spanish Reversers.
Si necesitas contactar con
nosotros
, lee
esto
antes e infórmate
de cómo puedes
ayudarnos |
|
|