- Editorial:
- RA-MA
- Any d'edició:
- 2004
- ISBN:
- 978-84-7897-628-7
- Pàgines:
- 400
- Col·lecció:
- VARIAS
CRACKING SIN SECRETOS
ZEMANEK, JAKUB
PRÓLOGO CAPÍTULO 1. MÉTODOS DE PROTECCIÓN Y SUS PUNTOS DÉBILES CIFRADO PROGRAMAS INCOMPLETOS CLASIFICACIÓN BÁSICA DE LOS TIPOS DE PROTECCIÓN DISPONIBLES Duración limitada Otras restricciones numéricas Número de registro REGISTRO INTERACTIVO Fichero clave Programas limitados Protección hardware Comprobación de la presencia del CD Compresores y codificadores PE Protección contra la copia del CD Deterioro físico del CD Ficheros de tamaño falso CDs sobredimensionados TOC ("Table of Contents") ilegal Ficheros agrupados Errores ficticios de software y otras manipulaciones en el proceso de fabricación de los CDs Protecciones comerciales SafeDisc SecuROM ProtectCD Armadillo Software Protection System ASProtect VBox Programas en Visual Basic Comparación de cadenas de caracteres Comparación variable (tipo de datos variable) Comparación variable (tipo de datos largo) Conversión del tipo de datos Transferencia de datos Operaciones matemáticas Miscelánea Otras vulnerabilidades de las protecciones actuales CAPÍTULO 2. PROTECCIÓN CONTRA LOS PROGRAMAS DE DEPURACIÓN DEPURADORES MÁS HABITUALES SoftICE USO ELEMENTAL DE SOFTICE Configuración del programa Mandatos, funciones y controles básicos Windows Gestión de los puntos de corte GESTIÓN ESTRUCTURADA DE EXCEPCIONES (SEH) Descripción y uso de la gestión estructurada de excepciones SEH en desarrollo Algoritmos comunes Algoritmos basados en la función API CreateFileA La interfaz BoundsChecker y el uso de INIT3 Empleo de INT1 Empleo de INT 68h Búsqueda en el registro de Windows Búsqueda en autoexec.bat PUNTOS DE CORTE Puntos de corte para software Puntos de corte en una interrupción (BPINT) Puntos de corte en una ejecución (BPX) Puntos de corte en un área de memoria (BPR) Puntos de corte hardware Descripción de un programa de ejemplo empleado para detectar puntos de corte hardware MÉTODOS AVANZADOS Privilegios de los anillos Maneras de saltar entre el anillo 3 y el anillo 0 Detección de SoftICE mediante VxDCall Desactivación de la tecla de atención de SoftICE OTROS USOS SENCILLOS DE SEH CAPÍTULO 3. PROTECCIÓN CONTRA LOS DESENSAMBLADORES DESENSAMBLADORES HABITUALES USO ELEMENTAL DE W32DASM ALGORITMOS COMUNES Protección contra las cadenas Protección contra las funciones importadas CÓDIGO AUTOMODIFICABLE (SMC) SMC pasivo SMC activo EDICIÓN DEL CÓDIGO DEL PROGRAMA EN TIEMPO DE EJECUCIÓN CAPÍTULO 4. PROTECCIÓN CONTRA FROGSICE USO ELEMENTAL DE FROGSICE Opciones básicas Opciones avanzadas ALGORITMOS COMUNES VxDCall de la función VMM_GetDDBList Uso de la función CreateFileA CAPÍTULO 5 PROTECCIÓN CONTRA PROCDUMP USO ELEMENTAL DE PROCDUMP DEFINICIÓN Y OBJETIVO DEL VOLCADO DE MEMORIA ALGORITMOS COMUNES CAPÍTULO 6. EDICIÓN DEL CÓDIGO DEL PROGRAMA MÉTODOS PARA EDITAR EL CÓDIGO DEL PROGRAMA USO ELEMENTAL DE HIEW Edición de un programa para detectar SoftICE ALGORITMOS COMUNES Comprobación de la integridad de los datos Comprobación de la integridad de los datos de un fichero Comprobación de la integridad de los datos en memoria Otros métodos CAPÍTULO 7. EL FORMATO PE Y SUS HERRAMIENTAS DESCRIPCIÓN DEL FORMATO DE FICHERO PE DESCRIPCIÓN Y FUNCIONAMIENTO DEL COMPRESOR-CODIFICADOR PE Creación de un codificador o compresor PE Desventajas de los compresores-codificadores PE Algunos compresores-codificadores PE ASPack CodeSafe NeoLite NFO PE-Compact PE-Crypt PE-Shield PETITE Shrinker UPX WWPack32 FORMATO DE FICHERO PE Comprobación del formato PE Cabecera PE Tabla de secciones Direcciones virtuales, materiales y virtuales relativas (RVA) Tabla de importaciones Tabla de exportaciones CONFIGURACIÓN DE UN CODIFICADOR PE Inclusión de una sección nueva en un fichero Redirección de los datos Inclusión de código en una sección nueva Bifurcaciones y variables Funciones importadas Creación de una tabla de importaciones Proceso de una tabla de importaciones original Uso de una función importada PROCESO TLS CODIFICACIÓN Elección del algoritmo de codificación Algoritmos de codificación comunes Violación del código Áreas codificadas y no codificadas Ejemplo de una codificación sencilla con un codificador PE DISEÑO FINAL DE UN CODIFICADOR PE PROTECCIONES ALTERNATIVAS Cargador de símbolos AntiSoftICE Comprobación del punto de entrada al programa RSA Ejemplo de aplicación con RSA CONCLUSIÓN SOBRE EL FORMATO PE Y COMPRESORES-CODIFICADORES PE CAPÍTULO 8. OTROS PROGRAMAS UTILIZADOS POR LOS CRACKERS REGISTRY MONITOR FILE MONITOR R!SC'S PROCESS PATCHER Ficheros de mandatos THE CUSTOMISER CAPÍTULO 9. CRACKING DE ENTRENAMIENTO CRUEHEAD - CRACKME V1.0 CRUEHEAD - CRACKME V2.0 CRUEHEAD - CRACKME V3.0 COSH - CRACKME1 MEXELITE - CRACKME 4.0 IMMORTAL DESCENDANTS - CRACKME 8 Easy Serial Harder Serial Name/Serial Matrix KeyFile NAG Cripple DUELIST - CRACKME #5 Descodificación manual de un fichero Modificaciones efectuadas directamente en memoria TC - CRACKME 9 Obtención manual del número de serie Conversión del programa en un generador de claves TC - CRACKME 10 TC - CRACKME 13 TC - CRACKME 20 ZEMOZ - MATRIX CRACKME307 ZEMOZ ? CRCME Edición hexadecimal del programa Utilización del cargador CAPÍTULO 10. INFORMACIÓN COMPLEMENTARIA SOBRE EL CRACKING ORIGEN Y DIFUSIÓN CRACKERS CRACKERS Y GRUPOS CONOCIDOS +HCU Immortal Descendants Messing in Bytes ? MiB Crackers in Action ? CIA Phrozen Crew United Cracking Force DEViANCE TC - CRACKME 13 TC - CRACKME 20 ZEMOZ - MATRIX CRACKME ZEMOZ ? CRCME Edición hexadecimal del programa Utilización del cargador CAPÍTULO 10. INFORMACIÓN COMPLEMENTARIA SOBRE EL CRACKING ORIGEN Y DIFUSIÓN CRACKERS CRACKERS Y GRUPOS CONOCIDOS +HCU Immortal Descendants Messing in Bytes ? MiB Crackers in Action ? CIA Phrozen Crew United Cracking Force DEViANCE Ebola Virus Crew Evidence Da Breaker Crew RECURSOS EN INTERNET Cracking e ingeniería inversa Programación Herramientas Referencias Grupos de cracking CONSEJOS BÁSICOS DE LOS CRACKERS Cracking (Lucifer48) Aplicación de instrucciones NOP (+ORC) Parchear (MisterE) Pensar como un cracker (rudeboy) Herramientas (rudeboy) CAPÍTULO 11. SECCIÓN DE REFERENCIA INSTRUCCIONES BÁSICAS EN ENSAMBLADOR MENSAJES DE WINDOWS ACCESO AL REGISTRO DE WINDOWS RESUMEN DE FUNCIONES DE SOFTICE Definición de puntos de corte Manejo de los puntos de corte Modificar y mostrar memoria Obtención de información sobre el sistema Mandatos para los puertos de entrada y salida (I/O) Mandatos para controlar el flujo Modo de control Mandatos de personalización Utilidades Uso de las teclas del editor de líneas Uso de las teclas de desplazamiento Mandatos de ventana Control de ventana Mandatos sobre símbolos y fuente
Cracking no es sinónimo de violación de la protección del software, sino que constituye un método para probar la resistencia del programa frente a los posibles ataques y su posterior difusión ilegal. Resulta prácticamente imposible crear una protección inviolable, lo que no significa que todas las protecciones estén condenadas al fracaso y que no puedan cumplir su misión. El criterio con el que se suele medir el éxito de una protección radica en la cantidad de tiempo que permanece inexpugnable, lo que, a su vez, repercute en los beneficios derivados de la venta de copias legales del software correspondiente. Este libro está dirigido tanto a los profesionales como a aquellos principiantes interesados en el campo de la protección de software. La obra introduce al lector en los fundamentos del cracking y del anticracking y en algunas de las técnicas más avanzadas, y su contenido representa una gran compilación de información de casi todas las áreas que comprende esta materia: desde las descripciones de sencillos algoritmos de protección hasta la programación de codificadores PE propios. Si bien es esencial un conocimiento básico de la programación en ensamblador, no resulta imprescindible ya que todo el código mostrado forma parte de otro código realizado con lenguajes de mayor nivel. De este modo, resultará accesible incluso para quienes no sepan nada de ensamblador. Incluye un apéndice de referencia donde se describen los mandatos en ensamblador más comunes. Con este libro, el lector conocerá: -Las técnicas actuales de protección y sus vulnerabilidades. -Los puntos débiles de las protecciones actuales. -Los programas y herramientas empleadas por los crackers. -Cómo depurar y defenderse de la depuración de un programa. -Cómo desensamblar y defenderse contra el desensamblaje de un programa. -Cómo usar y defenderse de los programas FrogsICE y ProcDump. -La edición del código del programa. -El formato de fichero PE y los compresores-codificadores PE como soluciones más actualizadas frente a la piratería. -El cracking como mejor método de prueba de las protecciones. -Información complementaria sobre el cracking. Se adjunta un CD-ROM que contiene todo el código de los programas incluidos en el libro y un completo paquete de software para crackers y anticrackers: codificadores-compresores PE y sus correspondientes descodificadores-descompresores (ProcDump y otros), volcadores, generadores de parches, cargadores, editores y escáneres PE, calculadoras de desplazamientos, desensambladores, depuradores, programas para ocultar los depuradores (como FrogsICE) y muchos otros programas y herramientas. También contiene materiales "crackme" para que el lector ponga en práctica los conocimientos adquiridos.