| FAQ Oficial de [WkT!] · Página 1 Página 2 Página 3 |
¿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.
FAQ Oficial de [WkT!] · Página 1 Página 2 Página 3
(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