Respuesta a preguntas muy frecuentes |
WKT
(c) Mr.Red 1998 |
┐QuΘ es crackear? |
No tiene nada que ver con las drogras...(el famoso Crack) : (
"Crackear es el arte de reventar protecciones software/hardware con
fines intelectuales, personales pero no lucrativos. Crackear también
se llama "ingeniería inversa" (Reverse Engineering), ya que sin
el programa fuente se es capaz de analizar el comportamiento del
programa y modificarlo para tus intereses."
|
┐QuΘ es un debugger? |
Permite ver paso a paso (instrucción a instrucción)
un programa mientras se está ejecutando en la memoria del ordenador.
Las instrucciones se visualizan en ensamblador normalmente. Nos servira
para ver como se comportan las rutinas de protección ya que son
parte del programa. En el podremos cambiar instrucciones para comprobar
y asi eludir las protecciones. Estos cambios no son permanentes en el fichero
ejecutable.
El mejor debugger es WinIce (Softice para
Windows 95) http://www.numega.com
|
┐QuΘ es un desensamblador? |
Un desensamblador toma un fichero de instrucciones en hexa y lo convierte
a lenguaje ensamblador. El lenguaje ensamblador, es el conjunto de sentencias
que entiende el microprocesador (tu Pentium o mi 486). El procesador es el corazón del ordenador, todas las sentencias son ejecutadas por él y sólo por él. Por ejemplo un 43 en hexa se transforma en inc eax. Se necesitan algunos conocimientos de ensamblador pa esto de crackear. Nosotros usaremos el desensamblador para crakear con la técnica de la lista muerta... Ref.- Como crackear por Estado Porcino. Puedes pillar un magnífico desensamblador para W95 en http://www/expage.com/page/w32dasm |
┐QuΘ es un editor hexadecimal? |
"Los programas no son más que un conjunto de instrucciones y cada
instrucción no es más que un conjunto de bits, pero donde
demonios se guardan esos bits?. Los bits del programa se localizan en los
ficheros, p.e. las instrucciones del programa de compresión arj
se guardan en el fichero arj.exe. Hay algunos programas que no guardan
todas sus instrucciones en único fichero, si no en varios, un ejemplo
de esto son los programas que utilizan librerías dinámicas
(o dll)." Un editor hexadecimal, no es más que un programa, que permite "editar" los ficheros de instrucciones de otros programas, osea, que permite ver,modificar,copiar,pegar... los bits de los programas. Para simplificar la cosa no se muestran los bits a pelo, sino que se muestran en hexadecimal, de ahí su nombre. Nosotros lo utilizaremos para alterar el comportamiento de los programas. Supongamos que conocemos la instrucción sentencia de la rutina de protección que debemos modificar, sea jz 23 y queremos modificarla por jnz 23, bien como toda instrucción no es más que un conjunto de bits, sea 0110 para jz 23 y 1001 para jnz 23, sólo nos queda buscar estos bits dentro del fichero ejecutable del programa (que es, en general, el contiene las sentencias del programa). Como usamos un editor hexadecimal, debemos buscar la secuencia de un unos y ceros en hexa en el fichero del programa que queremos modificar. Si la secuencia que buscamos es muy común deberemos utilizar las instrucciones que se encuentran entorno a la instrucción a modificar. Esto es muy importante, sólo debe existir una localización del patrón de búsqueda en el fichero, si existe más de una, debemos añadir a la búsqueda las sentencias de alrededor, sino se corre el riego de modificar la sentencia equivocada, lo que provoca casi siempre un "cuelgue". Ref.- Como crackear por Estado Porcino. Uno de los más completos es UltraEdit-32 Professional http://www.uedit.com |
┐Todos los programas se desprotegen de la misma forma? |
No... Un programa a·n haciendo lo mismo puede programarse de mil formas... Esto se entiende en las protecciones del mismo modo (protecciones de numero de serie, etc..). Pueden existir miles de formas de proteger un programa, a·n siendo el mismo tipo de protecci≤n. No obstante la "estupidez" de muchos programadores de pacotilla (aquellos que solo ven dinero en sus programas), y a la falta de imaginaci≤n de otros, hacen que la tarea de desproteger sea a veces muy sencilla. |
┐QuΘ diferencias hay entre programas hechos en Visual C++ y Visual Basic? |
La mayoría de las aplicaciones programadas mas profesionalmente
para Windows 95 (requieren un conocimiento mas exhaustivo de programación)
son las compiladas en C++... aparte de ser siempre las mas rápidas.
De hecho Windows 95 está hecho prácticamente en C++... La diferencia entre Visual C++ y Visual Basic es la siguiente: Con Visual C++ somos como el director general de una oficina mientras que con Visual Basic somos los empleados (si entregamos un informe pasaremos por varios departamentos hasta que llegue al despacho del director general). E incluso no podremos hacer cosas que no pueda hacer el director general. Todo ese proceso interno de pasar de un departamento a otro lo realizan unas librerías que actúan mientras se ejecuta el programa (librerías Run-time). Estas son VBRUN300, VB40032, MSVBM50 según sea la versión de Visual Basic. Desde el punto de vista de un cracker es mucho mas interesante un programa en C++... Los crackers suelen huir de programas hechos en Visual Basic, por lo incomodos y pesados que son y porque casi nunca aportan nada interesante que investigar. Aunque esto no significa que sean los mas dificiles de desproteger. |
┐C≤mo saber si un programa esta hecho en Visual Basic? |
Existen muchas maneras, pero todas consisten en lo mismo. Hay que localizar
referencias a varias librerias de ejecucion. Sus nombres son VBRUNxxx
(xxx =100,200,300 para la versión 1,2 y 3 respectivamente),
VB40032.DLL para la versión 4 del compilador
de Visual Basic y MSVBM50.DLL para la versión
5. Las formas de localizarlas podrían ser:
+++++++++++++++++++ IMPORTED FUNCTIONS ++++++++++++++++++ Number of Imported Modules = 1 (decimal) Import Module 001: MSVBVM50.DLL |
┐QuΘ es una DLL? |
Es una librería dinámica (Dynamic Link Library). Es un
fichero en el que residen funciones(código ejecutable) o recursos (ventanas de un programa,
menues, iconos, bitmaps, etc...) y que pueden ser llamadas por cualquier
otro programa de Windows. Existen una gran variedad de DLL
personalizadas y comerciales que permiten sacar partido a muchos
programadores (Jscript.dll =librería de Java Script, Tl32v20.dll
=Timelock, rutina de protección de programas en periodo de prueba,
etc...).
De hecho Windows 95 usa en su mayoria DLLs... KERNEL32.DLL, USER32.DLL, GDI32.DLL... Incluso los archivos DRV y FON (fuentes) son DLL, aunque estos se cargan de forma no automatica... |
Pongo un break point en Winice y nunca para el programa en Θl |
Hay muchas instrucciones de programas que nunca se ejecutan si
no se dan las condiciones adecuadas...
Siempre conviene estudiar un poco el ejecutable, o bien con la lista muerta o con el Winice. Poner en cualquier punto del programa un breakpoint no lleva a nada si no sabemos donde lo ponemos. |
Cuando paro un programa con Ctrl+D en Winice me aparece el listado en una zona llamada KERNEL32 |
Esto es muy normal, teniendo en cuenta que Windows 95 usa internamente
un API (Interfaz de Programación Avanzada) núcleo de sistema (Kernel) de 32 bits. El kernel32 es el minimo de código que necesita Windows95 para arrancar el sistema. También la mayoria de los programas suelen usar esta API para realizar operaciones basicas con sus funciones( uso de archivos, tareas, recursos, carga de librerías, uso de la memoria, etc..). Hay unas 780 funciones dentro de esta librería. Muchas rutinas de protección hacen uso de funciones de esa librería y de otra llamada USER32.DLL. Para nosotros el listado interno de estas librerias no interesa. Usaremos estas funciones como cajas tontas (solo interesará lo que nos muestre por fuera no como esté hecha por dentro). Es decir, si un programa usa la función GetComputerName (obtener el nombre de la computadora), solo nos interesará el nombre que la computadora, no como lo obtiene internamente. |
Esta FAQ la iremos completando a medida que recibamos vuestras consultas a traves de nuestro buz≤n estadoporcino@hotmail.com. Si estas empezando, no te cortes y preguntanos tus dudas. ;o) Mr.WhiTe |
[ Entrada | Documentoz GenΘricoz | WKT TEAM Main Site ] |
[ Todo el ECD | x Tipo de Protecci≤n | x Fecha de Publicaci≤n | x orden AlfabΘtico ] |