Resultados 1 al 4 de 4

faq´s gerza

  1. #1 faq´s gerza 
    Avanzado
    Fecha de ingreso
    Jan 2008
    Mensajes
    170
    Descargas
    8
    Uploads
    0
    1 Primeras recomendaciónes :
    2 ¿En que consiste la ingeniería inversa ?
    3 ¿Cuanto se tarda en crackear ?
    4 Estoy buscando un crack. ¿Donde lo puedo encontrar ?
    5 ¿Y si no lo encuentro?
    6 Quisiera desproteger un programa...
    7 Quiero empezar. ¿Que es lo que necesito ?
    8 ¿Donde puedo conseguir todo eso que dices ?
    9 ¿Qué es un debugger?
    10 ¿Qué es un desensamblador?
    11 ¿Qué es un editor hexadecimal?
    12 ¿Todos los programas se desprotegen de la misma forma?
    13 ¿Qué es una DLL?
    14 He hecho algún crack. ¿Que herramientas me podrían ayudar ?
    15 ¿Como se codifican las instrucciones asm ?
    16 ¿Que me puedes decir del soft-ice ?
    17 No quiero leerme todo el tutor del soft-ice. Quiero una referencia rápida para empezar
    18 No puedo encontrar la cadena que he visto en soft-ice con mi hex-editor.
    19 ¿Como encuentro las direcciones que veo en el soft-ice en mi editor hexadecimal ?
    20 El soft-ice no me deja colocar los típicos bpx.¿Por qué ?
    21 Pongo un break point en Winice y nunca para el programa
    22 Cuando detengo un programa con Winice aparezco en una zona llamada KERNEL32
    23 ¿Cuales son los breakpoints mas usados en cracking ? :
    24 ¿Como puedo conocer el lenguaje en que ha sido escrito el programa ?
    25 Hay una estructura que se repite hasta la saciedad. ¿Me puedes decir que hace ?
    26 Necesito información de las APIS para cracking.
    27 Tengo problemas para interpretar los códigos hex-ascii.
    28 ¿Que uso tiene el smartcheck para programas en vb ?
    29 ¿Como puedo saber si un programa está hecho en vb ?
    30 ¿Existen descompiladores para visual basic ?
    31 ¿Donde guardan los programas la fecha de caducidad ?
    32 ¿Qué es un loader ?
    33 Tengo menus o botones desactivados
    34 Que me puedes decir acerca de las mochilas
    35 Tablas de conversión
    36 Nota del autor 1 Primeras recomendaciónes:
    Up
    1- Si deseas obtener respuesta a tus preguntas, haz preguntas que puedan tener respuesta.
    2- Ajusta la pregunta a tu interlocutor. Si tienes pequeñas dudas no molestes al maestro. Pregúntalas al aficionado. Si tus dudas tienen cierta entidad no molestes al aficionado. Pregunta al maestro.
    ...Pero si no sabes nada acerca de la ingeniería inversa, no preguntes y LEE.:-)
    3- Las web de crk suelen tener una vida corta y dinámica ( a excepción de fravia). Lo cual quiere decir que los enlaces aparecen y desaparecen, y los contenidos varían con cierta asiduidad. Se paciente y aprende a buscar las cosas por ti mismo. En esta página encontrarás las direcciones alternativas a muchos grupos de crk. Utilízala en caso de tener algún problema. Sus enlaces te llevarán a cientos de sitios.
    http://www.angen.net/~nitagoddess/groups.html
    4- Igualmente, los programas citados en el presente tutorial corresponden a versiones actualizadas a septiembre del 99. Lógicamente intenta conseguir la última versión disponible.

    2 ¿En que consiste el cracking ?
    Up
    Un poco de teoría :-)
    Los programas pueden estar escritos en muchos lenguajes de programación (pascal, c, delphi, visual basic...). Cuando los compilamos y los hacemos ejecutables para poder usarlos, el compilador de turno interpreta las instrucciones que hemos escrito y las pasa a un lenguaje mas universal : el lenguaje ensamblador (ASM).
    Este lenguaje binario esta compuesto únicamente por unos y ceros, es decir por números, y como tales pueden ser expresados de distintas formas (decimal, hexadecimal, binario octal etc.). Dada la constitución interna de las computadoras, el formato mas cómodo es el hexadecimal (aunque internamente los datos/cálculos los guarda/ejecuta en binario)
    Cuando abrimos un ejecutable con un editor de texto solo vemos caracteres extraños, pero si abrimos ese mismo ejecutable con un editor hexadecimal, lo que vemos son números hex. Cada uno de esos números es un byte, por ejemplo la cadena ascii GERZA contiene 5 bytes, que expresados en hexadecimal serían 47 45 52 5A 41 :
    Hexadecimal : 47 45 52 5A 41
    ascii G E R Z A
    Binario : 1000111 1000101 1010010 1011010 1000001
    El ASM como cualquier otro lenguaje tiene sus propias instrucciones y estas instrucciones están relacionadas con los bytes que ves en el editor hex. Por ejemplo :
    Instrucción ASM Nº Hexa Nº Bin Significado
    NOP = 90 = 10010000 = no hace nada
    RET = C3 = 11000011 = retorna de una llamada
    PUSH EAX = 50 = 10100000 = coloca eax en la pila
    Pues bien, el arte de crackear consiste en modificar ciertos bytes (y lógicamente las instrucciones asociadas a ellos) para que el programa haga lo que nosotros queramos, y no aquello para lo que originalmente fue diseñado.
    Si por ejemplo nos encontramos un RET (C3) y cambiamos el byte C3 por 90 (NOP) en nuestro editor hex...¿que pasara ?
    Pues sencillamente que no retornará la llamada... y tenemos todos los boletos para que el programa casque :-)
    Es importante entender que los ejecutables contienen una parte de código (instrucciones asm) y otra parte de datos (a los cuales accede dicho código) Todos ellos son números pero solo los primeros son ejecutados como instrucciones asm.
    Esta información y mucha mas, nos la proporciona la cabecera del programa, una zona que le explica al S.O como debe proceder para que se ejecute correctamente.
    Para encontrar la rutina correcta que debes modificar, están los breakpoints de los debugger. Lo que hacen básicamente es romper el programa (pararlo) en el punto que tu le digas. Típicamente en aparición de ventanas, apertura de ficheros, lectura de cajas de dialogo, acceso a puertos, lecturas de cd-rom....Echa un vistazo al apartado 23 y aprende cuales son los mas usuales.
    Una vez hecho esto deberás volver al código de tu programa ( con soft-ice pulsa F12 ) y empezar a buscar (F8 y F10). Leete los manuales, las FAQ y las referencias rápidas.
    Si quieres examinar tu programa con mas tranquilidad deberás desensamblarlo (por ejemplo con w32dasm).


    3 ¿Cuanto se tarda en crackear ?
    Up
    Puedes tardar 1 minuto, una hora, un día, un mes.... :-)
    Depende de quien lo haga, la habilidad que tenga y por supuesto del tipo de protección. Teóricamente entiendo que todo es crackeable. Básicamente se trata de cambiar unos bytes por otros y eso siempre va a ser posible. El problema consiste en saber...¿ Que bytes ? :-)

    4 Estoy buscando un crack. ¿Donde lo puedo encontrar ?
    Up
    Hay cientos de páginas con crk pero lo mejor es ir directamente a buscadores especializados como:
    http://astalavista.box.sk/
    http://www.multimania.com/keygen/search.html
    http://www.salteador.com/buscador.html (en castellano )

    Para juegos empieza por :
    http://www.megagames.com/gcracks.html
    En caso de no dar resultado busca en las news "crack programabuscado". Con un poco de suerte encontrarás algún enlace que te lleve al crk.
    Si el programa en cuestión es español conviene que te pases por WKT http://wkt.mypage.org/
    La lista empieza a ser respetable.
    Pásate por algún metabuscador de la red y haz bien la búsqueda
    Si estas convencido que no existe. Puedes intentar poner un post en algún newsgroup de cracking poniendo en el subjet " req : programabuscado"
    Según parece en efnet hay gente que acepta solicitudes.
    Busca algún foro inglés que permitan solicitudes de este tipo, por ejemplo http://202.96.215.252/core/Request.html
    Navega por irc. Tal vez encuentres algún canal adecuado para ello.
    Busca en los inmensos servidores como yahoo-geocities, fortunatecity, xoom.... De vez en cuando encuentras lo que buscas.

    5 ¿Y si no lo encuentro?
    Up
    Asegúrate de haber buscado bien según el apartado anterior. En http://www.dupecheck.de/ podrás saber si el crk existe. No te dará ninguna dirección, tan solo en nombre del fichero en caso de que exista. Despues tendrás que buscarlo en algun ftpserch o alguna buena searchengine.
    Si se trata de la típica demo de 30 días, no existe crack, no sabes nada de cracking, tampoco quieres aprender y es cuestión de vida o muerte que lo sigas usando...
    *A-Existen algunos programas como Date Cracker 1.0 . Esta utilidad lo que hace es crear un ejecutable que se encarga de modificar la fecha de tu ordenador y después cargar tu programa. Es importante que realices la operación antes de que caduque y que a partir de entonces arranques siempre con él.
    *B- Utiliza el eru. ( lo encontrarás en tu cd de w95 en el directorio w95/other/misc), antes de instalar tu programa-juego. Lo que hace básicamente es una copia del registro que lo podrás restaurar cuando hallan pasado los típicos 30 días de prueba.
    Cuando te deje de funcionar, desistalalo, borra todos los .ini del programa, sus directorios y restaura tu copia de seguridad con eru-erd bajo Dos. Cuando lo hallas hecho, ejecuta una nueva instalación.
    *C-Busca algún crk de versiones anteriores y contacta con su autor. Tal vez halla publicado en internet el crk de la versión que necesitas en alguna dirección no indexeada en los máquinas..
    Si es lo suficientemente importante para que hayas llegado a este extremo, registra el programa.
    En cualquier caso los foros de wkt, NO SON LOS APROPIADOS. Por favor no contribuyas a llenarlos con estas peticiones. Comprenderás que no hay nadie interesado en que estos foros (los únicos en español) se conviertan en una auténtica locura y desaparezcan, ni siquiera tú.

    6 Quisiera desproteger un programa...
    Up
    Antes de preguntar asegúrate que tienes unas mínimas nociones de cracking. Si no es así en esta FAQ tienes información y direcciones mas que suficientes para empezar.
    Pásate por ECD en http://ecd.tsx.org/ y selecciona el tipo de protección que te interesa. Allí encontrarás ejemplos resueltos a problemas similares al tuyo.

    7 Quiero empezar. ¿Que es lo que necesito ?
    Up
    Conocimientos asm :Conviene tener unos conocimientos básicos de asm. Contra mas sepas mas rápido crakearás. Inicialmente con que entiendas los registros, la pila, y las instrucciones básicas (call-ret, saltos, mov, test, cmp, push, pop) es suficiente.
    Herramientas : Inicialmente necesitarás un desensamblador (w32dam 8.93) un debuger (soft-ice 4.01) un editor hexadecimal (p.e. hexworkshop 2.54) y si quieres distribuir tus cracks, un parcheador (p.e. Ptasiek's CrackMaker 1.3)
    Tutoriales : Tendrás que leer todos los tutoriales que puedas :-). Para niveles bajos ya existe suficiente material en castellano. Si estás algo mas avanzado no te quedará mas remedio que leer en ingles. Caso que tu nivel de inglés sea flojito instala babylon translator en tu ordenador.

    8 ¿Donde puedo conseguir todo eso que dices ?
    Up
    Conocimientos asm: Existe varios tutoriales de asm en castellano en la red. Por ejemplo el de Aesoft es bastante completo. También existe otro escrito por Pablo Barron Ballesteros mas resumido. Por último hay otro algo ligerito hecho en la universidad de Guadalajara (Méjico). Tendrás que buscarlos. Empieza con algún ftpsearch como http://ftpsearch.ntnu.no/ftpsearch y busca ficheros como asm.zip, asm2.zip cursoasm.zip, aesoft.zip, ensam.zip...
    En http://www.casarramona.com/mt/programador/index.htm hay algunos, entre ellos el de Aesoft. Si tienes problemas busca en las web de cracking en castellano.
    En http://kut.tsx.org/ podrás encontrar todos juntos, incluido una referencia rápida de Antikton bastante interesante.

    Herramientas : Puedes encontrarlas en cualquier web de tools..
    http://protools.cjb.net// (Imprescindible y actualizado)
    http://surf.to/HarvestR
    http://hambo.163.net/
    http://mercury.spaceports.com/~quel/protools
    http://www.idca.com/~thesandman/Toolz.html
    http://www.eccentrica.org/Mammon/index.html
    http://www.corleone.net/body_t_o_o_l_s.html
    http://hackersclub.com/km/files/cfiles/index.html
    http://win32asm.ownz.com/
    http://www.suddendischarge.com/
    http://134.155.63.117/~quantico/tools/
    Si no encuentras lo que buscas pásate por la web del desarrollador y luego bájate el crack correspondiente.
    Tutoriales y foros: en castellano puedes encontrar material en :
    http://wkt.mypage.org/ (LA referencia)
    http://kut.tsx.org/
    http://ecd.tsx.org/
    http://tntcrack.tsx.org/
    http://welcome.to/karpoff
    http://www.lanzadera.com/proyektonakarko/
    http://disc.server.com/Indices/23018.html
    http://www.wco.com/~micuan/
    En ingles hay un montón. Te doy algunos ejemplos
    http://129.105.116.5/fravia/entran.htm (Imprescindible)
    http://www.corleone.net/body_t_u_t_o_r_i_a_l_s.html
    http://www.idca.com/~thesandman/Forums.html
    http://disc.server.com/Indices/42877.html
    http://www.immortaldescendants.com/tornado/tutorials.html

    9 ¿Que es un debugger?
    Up
    Es una utilidad que 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.
    Nos servirá para ver como se comportan las rutinas de protección ya que son parte del programa. Con su ayuda podremos ver lo que van haciendo las instrucciones paso a paso, comprenderlas y eventualmente cambiarlas. Estos cambios no son permanentes, tan solo los realizas en la memoria. Si los deseas hacer permanentes has de modificar el fichero ejecutable con un editor hexadecimal.
    Sin duda alguna, el mejor debugger es WinIce (Softice para W95) http://www.numega.com/
    Para MSDOS existen varias versiones de Softice y otros programas poco potentes llamadas DEBUG y SymDebug y Turbo Debug.

    10 ¿Qué es un desensamblador?
    Up
    Un desensamblador toma un fichero de bytes en hexa y los transforma a sus correspondientes instrucciones asm. El lenguaje ensamblador, es solo el conjunto de sentencias que entiende el microprocesador
    Por ejemplo un 43 en hexa se transforma en inc eax.
    W32dasm es un desensamblador completo, facil de utilizar y ademas incorpora un debugger (bastante limitado). Es lo mas indicado para proyectos de poca envergadura.
    Ida pro es "EL" desensamblador que funciona bajo ms-dos y a partir de la 4.0 también para w95. Es el mas potente que existe en la actualidad y muy recomendable. Localiza estructuras y cadenas que no son detectadas como tales por W32dasm.

    11 ¿Qué es un editor hexadecimal?
    Up
    Un editor hexadecimal, no es más que una utilidad, que permite "editar" los bytes que componen un fichero.
    Modificando dichos bytes, tambien modificaremos las instrucciones asociadas a ellos. De esta forma podemos variar el comportamiento de los programas para que se ajusten a nuestras necesidades.

    12 ¿Todos los programas se desprotegen de la misma forma?
    Up
    No!...
    Un programa aún haciendo lo mismo puede programarse de mil formas, en muchos lenguajes y bajo distintos compiladores...
    No obstante es habitual que versiones diferentes del mismo programa utilicen protecciones similares.

    13 ¿Qué es una DLL?
    Up
    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, menús, 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 automática...

    14 He hecho algún crack. ¿Que herramientas me podrían ayudar ?
    Up
    -Frogs-ice 0.31- Elimina algunas detecciones típicas del soft-ice.
    -Ida pro 3.85- Desensamblador. Es complicado, Es para ms-dos pero es el mejor.
    -Exescope 4.4- Edita recursos, cambiar pantallas, activa botones...
    -Procdump 1.5- Excelente descompresor. Soporta muchos formatos.
    -hacker view’s(HIEW) 6.16-Excelente editor hex para dos. Es el único que permite cambiar el código asm de forma interactiva. Bueno para todos, imprescindible para quien empieza.
    -Spy32 2.7- Identifica handles, tamaños de ventanas, colores, captura pantallas...Muy completo.
    -Basecalculator 1.3- Pasar valores desde/hacia decimal-hexa-octal-binario.
    -Customiser 1.5- Entre otras cosas activa botones en tiempo real.
    -Filemonitor/regmonitor- Espía los ficheros/registros que esta manipulando el programa.
    -Win-eXpose-registry/Win-eXpose-i/o : Para lo mismo que el anterior pero mas completo.
    -Ultrazip password cracker 3.6- Para descubrir contraseñas en los .zip. Bastante rápido.
    -Techfacts98 2.33- Imprescindible. Examina que ficheros/registros han sido modificados por un programa.
    -Sruler : Mide distancias en pantallas expresadas en pixels.
    -Smartcheck 6.03 : Permite investigar lo que hace un programa en vb. Por ejemplo descubrir un número de serie valido.
    -Gettyp 1.1 : Proporciona información detallada del ejecutable.
    -Peek 1.1 : Una pequeña utilidad que extrae las cadenas de texto del ejecutable.

    15 ¿Como se codifican las instrucciones asm ?
    Up
    Menuda pregunta :-)
    En el manual de aesoft lo explica razonablemente bien.
    Hay que tener en cuenta que una misma instrucción asm (p.e. jz xxxx)puede codificarse de distinta forma (0F84xxxxxxxx ó 74xx), y viceversa una codificación puede tener dos instrucciones equivalentes (74xx pueden ser un je ó un jz)
    De igual manera un mismo código puede decodificarse en distintas instrucciones dependiendo si lo hacemos para 16 o 32 bits. Para 16 bits veremos mas cantidad de instrucciones. En este caso no veremos los típicos registros de 32 bits (eax, eax, esi, edi...) sino sus equivalentes en 16 (ax, dx, si, di...).
    Si quieres comprenderlo mejor coge el Hacker View y pulsa CTR-F1. Verás el mismo programa descodificado para 16 o 32 bits. También sacarás algunas conclusiones interesantes respecto a la velocidad de ejecución :-)
    Aquí van las codificaciones típicas:
    90 nop no operation
    EB jmp jump directly to
    70 jo jump if overflow
    71 jno jump if not overflow
    0F82 or 72 jnae jump if not above or equal
    0F82 or 72 jb jump if below
    0F83 or 73 jae jump if above or equal
    0F83 or 73 jnb jump if not below
    0F84 or 74 je jump if equal
    0F84 or 74 jz jump if zero
    0F85 or 75 jne jump if not equal
    0F85 or 75 jnz jump if not zero
    0F86 or 76 jna jump if not above
    0F86 or 76 jbe jump if below or equal
    0F87 or 77 ja jump if above
    0F87 or 77 jnbe jump if not below or equal
    78 js jump if
    79 jns jump if not
    0F8C or 7C jnge jump if not greater or equal
    0F8C or 7C jl jump if less
    0F8D or 7D jge jump if greater or equal
    0F8D or 7D jnl jump if not less
    0F8E or 7E jng jump if not greater
    0F8E or 7E jle jump if less or equal
    0F8F or 7F jg jump if greater
    0F8F or 7F jnle jump if not less or equal
    XOR eax,eax 33 C0
    INC EAX 66 40
    PUSH 00000001 6A 01
    POP EAX 66 58
    RET C3
    INT 3 CC
    PUSH EAX 50
    POP EAX 58
    TEST EAX,EAX 85 C0
    MOV EAX,01CC02BB B8 BB 02 CC 01
    (Como puedes ver los bytes se codifican al revés)
    RETF CB
    POPF 66 9D

    16 ¿Que me puedes decir del soft-ice ?
    Up
    Simplemente que es el mejor debuger que existe. Es muy completo pero cuesta entenderlo. Si quieres hacer algo mínimamente serio es imprescindible. Léete un buen manual para configurarlo y usarlo:
    http://www.idca.com/~thesandman/SoftPage.html (ingles)
    Antes de nada edita el fichero winice.dat y quita las ";" delante de las librerías. De no hacerlo así, cuando quieras poner el típico bpx recibiras el error de librería no definida. igualmente para programas escritos en visual basic deberás añadir las librerias que use. Típicamente:
    EXP=c:\windows\system\msvbvm60.dll
    EXP=c:\windows\system\msvbvm50.dll
    EXP=c:\windows\system\vb40032.dll

    17 No quiero leerme todo el tutor del soft-ice. Quiero una referencia rápida para empezar.
    Up
    Aquí podrás encontrar la intro y una FAQ... además del manual completo :
    http://www.idca.com/~thesandman/SoftPage.html

    18 No puedo encontrar la cadena que he visto en soft-ice con mi hex-editor.
    Up
    Primero asegúrate que estas buscando en el fichero correcto. (En el soft-ice verás el proceso que se esté ejecutando debajo de la ventana de código)
    Si es así, probablemente estés ante un ejecutable comprimido y/o encriptado. Utiliza Gettyp v1.1 para obtener información del mismo y eventualmente procdump 1.5. Si tienes problemas deberás abandonar las cajas negras y aprender a hacer las cosas de forma manual. Para eso están los tutoriales.
    Si el tema es complicado deberás realizar el parche no en el fichero sino directamente en memoria. Para ello has de crear un loader (cargador). Existen aplicaciones como Process Patcher 3.1 que te lo crearan automáticamente. Sabiendo los bytes que quieres cambiar y su dirección de memoria, la cosa esta hecha.

    19 ¿Como encuentro las direcciones que veo en el soft-ice en mi editor hexadecimal ?
    Up
    Tienes varias maneras de hacerlo. En caso de que no las encuentres leete el apartado anterior.
    *** A ***
    Desensamblas con w32dasm y buscas la dirección que viste en el s-ice (solo la parte del offside)con "goto code location", señálala con el ratón y fíjate en la barra inferior. Allí verás tanto la direccion que viste en el ice como la direccion dentro de tu ejecutable.
    Recuerda que si el fichero está comprimido o encriptado no la encontrarás. Necesitarás descomprimirlo o realizar un parche en memoria.
    *** B ***
    Si no quieres desensamblarlo, en el soft-ice teclea "code on" para que
    puedas ver el código hexa. Después apuntate la cadena
    (lo suficientemente larga) a partir de la direccion que desees y búscala directamente en tu editor hex.
    *** C ***
    Si usas el editor hiew: ( http://sen.kmr.ru/ )
    1 - Decodifica el fichero para verlo igual que en el wice (dos veces enter)
    2 - Dale a goto (F5) para buscar la direccion que desees
    3 - Teclea la direccion que te da el soft-ice pero con el punto delante (.0041192d). Así consigues ir a las direcciones locales (las que ves en ice) en vez de las globales (las que ves en cualquier editor hex).
    4 - Cambia los bytes que quieras (F3)
    5 - Guarda los cambios (F9)
    Para bascular entre las variables globales-locales pulsa alt-F1.
    Recuerda que solo debes introducir el offsite (sin el segmento)
    *** D ***
    También puedes hacerlo con un programa escrito por Mr.Crimsom recientemente. Lo puedes encontrar en su web:
    http://www.multimania.com/mrcrimson/offcal.zip

    El fichero que lo contiene es offcal.zip

    20 El soft-ice no me deja colocar los típicos bpx.¿Por qué ?
    Up
    Probablementte no tienes cargadas las librerías a las que pertenecen las apis. Edita el fichero winice.dat y quita todos los ; que verás delante de ellas, por ejemplo:
    ;LOAD=c:\windows\system\user.exe
    ;LOAD=c:\windows\system\gdi.exe
    Si estas tratando un programa hecho en visual basic tendrás que añadir las librerías correspondientes.
    Si utilizas Windows NT recuerda que hay funciones que solo corren en w95/98, en las NT no existen.

    21 Pongo un break point en Winice y nunca para el programa
    Up
    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.
    22 Cuando detengo un programa con Winice aparezco en una zona llamada KERNEL32
    Up
    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 mínimo de código que necesita Windows95 para arrancar el sistema.
    También la mayoría 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.
    Para nosotros el listado interno de estas librerias no interesa. Usaremos estas funciones como cajas negras (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), sólo nos interesará el nombre que la computadora, no como lo obtiene internamente.

    23 ¿Cuales son los breakpoints mas usados en cracking ? :
    Up

    Esto esta bastante extendido en la red.
    Recuerda que los bpx pueden tener terminaciones distintas en: A y EXA. Para saberlo, desensambla y mira las funciones importadas, o si lo prefieres utiliza algún programa que te lo diga. Hay muchos, echa un vistazo a los que he puesto en el apartado 14, por ejemplo api spy 32 v2.4.
    Aquí van:
    ************************************************** ********
    The Cracker's Guide of Common Win32 API Calls
    ---------------------------------------------

    Reading & Writing Files
    -----------------------
    These are generic calls to read/write to a file, usually binary in nature:
    ReadFile
    WriteFile
    more on locating file accesses:
    SetFilePointer
    GetSystemDirectory
    GetSystemDirectoryA
    These are the most common calls to read/write from/to a *.ini file
    or a file of similar format.
    for 16-bit win apps:
    GetPrivateProfileString
    GetPrivateProfileInt
    WritePrivateProfileString
    WritePrivateProfileInt
    for 32-bit win apps:
    GetPrivateProfileStringA
    GetPrivateProfileIntA
    WritePrivateProfileStringA
    WritePrivateProfileIntA
    Interrupt info:
    _____________
    file accesses (A couple by YOSHi)
    bpint 21 if (ah==3d)
    bpint 2f if (ah==01)
    The Registry
    ------------
    Create or delete a new key in the registry:
    RegCreateKey
    RegDeleteKey
    RegCreateKeyA
    RegDeleteKeyA
    Read a value from the currently open registry key:
    RegQueryValue
    RegQueryValueA
    Open or close a registry key:
    RegCloseKey
    RegOpenKey
    RegCloseKeyA
    RegOpenKeyA
    Dialog Boxes
    ------------
    Get text or integer from a dialog box edit:
    GetWindowText
    GetDlgItemText
    GetWindowTextA
    GetDlgItemTextA
    GetDlgItemInt
    Open a message box, usually one that says "invalid registration":
    MessageBox
    MessageBoxA
    MessageBoxExA
    MessageBeep
    and other ways to display text...
    SENDMESSAGE
    WSPRINTF
    Time & Date
    -----------
    These get the time and date
    GetSystemTime
    GetLocalTime
    SystemTimeToFileTime
    Generating a Window
    ---------------------
    createwindow
    createwindowexa
    showwindow
    bitblt (a type of memory move, similar to hmemcpy)
    CD-ROM Calls (Donated by: +-=Riddler=-+)
    ----------------
    GetDriveType (if eax=5 then it is a cdrom check)
    GetDriveTypeA
    GetDriveType Return Function codes:
    Value Meaning
    0 Drive Cannot Be determined
    1 Root Dir Does not exist
    2 DriveRemoveable
    3 A Fixed Disk (HardDrive)
    4 Remote Drive(Network)
    5 Cd-Rom Drive
    6 RamDisk
    GetLogicalDrives
    GetLogicalDrivesA
    GetLogicalDriveStrings
    GetLogicalDriveStringsA
    OTHER CDROM INFORMATION
    -----------------------
    interrupt 2f is the mscdex interrupt
    bpint 2f, al=0 ah=15 checks if mscdex installed
    try breaking on file accesses as well
    Window Numerical Inputs
    ----------------------------
    GETWINDOWWORD
    GETWINDOWLONG
    Some other nice breakpoints from the ORC
    -----------------------------------------------
    BOZOSLIVEHERE
    HMEMCPY
    GLOBALGETATOMNAME
    message breaks, not quite the same but completely useful
    -----------------------------------------------------------
    BMSG xxxx WM_GETTEXT (good for passwords)
    BMSG xxxx WM_COMMAND (good fro OK buttons)
    the xxxx is of course the hwnd value, but important info:
    assuming you are using wm_command to try to locate the button push,
    you hwnd the result and see the hwnd of the button is 0324 and the
    hwnd of the window is 0129
    to find the button, use the window value, not the button value to bmsg on
    (the other just won't work)
    so for the example here, to find our button push we would
    BMSG 0129 WM_COMMAND
    Note *from the original author*
    ------------------------------
    These aren't the only win32 api calls you need to know in order to crack windows.There are many many more that programs will use, many are derivatives of these calls.
    Try substituting a W for the A at the end of some calls, or placingan Ex right before the A. Also, in SoftIce, typing 'EXP GETPRIVATEPROFILE'will give you a list of all of the procs to read from .ini files, and thereare more than the ones i have listed.
    ************************************************** ****************

    24 ¿Como puedo conocer el lenguaje en que ha sido escrito el programa ?
    Up
    Busca en las librerías importadas alguna que te pueda orientar, en caso contrario usa programas como gettyp.

    25 Hay una estructura que se repite hasta la saciedad. ¿Me puedes decir que hace ?
    Up
    Un ejemplo podría ser :
    PUSH XXX (introduce la dirección del serial correcto)
    PUSH XXX (introduce la dirección de nuestro serial)
    CALL XXX (los compara. Si son iguales pone eax=0 si no, eax=1)
    TEST EAX,EAX (testea si el valor devuelto es 0(activa el flag Z) ó distinto de 0)
    JZ XXX (salta si es correcto, es decir si el flag Z está activado)
    Bien. A menudo los datos necesarios para la ejecución de las llamadas se realizan a través de la pila. Push suministra dichos datos. Cuando la llamada encuentra un RET vuelve a donde se le llamo, conteniendo :
    eax=0 si nuestro serial y el correcto con iguales
    eax=1 en caso de que nos hallamos equivocado.
    Cuando se vuelve de la llamada se mira si el valor devuelto en eax es 0 (salta a ventana de registrado) o distinto de 0 (salta a ventana error)
    Puedes encontrar infinitas variantes pero la filosofía es casi universal.
    26 Necesito información de las APIS para cracking.
    Up
    Una referencia rápida para las apis mas interesantes para crackear están en las cracker notes :
    http://www.proweb.co.uk/~greenway/Notes/crknotes.html
    Si quieres tener una referencia mas completa la puedes encontrar en :
    http://www.corleone.net/r_e_f_e_r_e_n_c_e.html
    http://www.idca.com/~thesandman/Toolz.html
    http://hackersclub.com/km/files/cfiles/index.html
    http://www.crackstore.com/tools.htm

    27 Tengo problemas para interpretar los códigos hex-ascii.
    Up
    Bájate el winhex y en Extra-tables puedes encontrar las tablas.
    Seleccionas la ventana, la copias con alt-print-screen y la pegas en msword o similar. Luego la imprimes y listo.
    Si te quieres ahorrar este trabajo, las he puesto al final de la página.

    28 ¿Que uso tiene el smartcheck para programas en vb ?
    Up
    Muchos. Puede ayudar a encontrar el código correcto en aplicaciones hechas en visual basic. Antes de empezar has de configurarlo bien para que genere buenos resultados. En esta FAQ hay páginas con algún tutorial en castellano.

    29 ¿Como puedo saber si un programa está hecho en vb ?
    Up
    Simplemente lo desensamblas y buscas las librerías. En caso de que encuentres librerías como:
    msvbvm60.dll
    msvbvm50.dll
    vb40032.dll
    vb40016.dll
    vbrun300.dll
    vbrun200.dll
    vbrun100.dll
    ... sabrás que está hecho en visual basic, en sus diferentes versiones. Si no quieres desensamblarlo utiliza alguna utilidad que te informe de las importaciones, por ejemplo api spy 2.4.

    30 ¿Existen descompiladores para visual basic ?
    Up
    Sí, pero a fecha de hoy (septiembre del 99) solo para las versiones 3 y 4. A estas alturas supongo que ya sabrás donde buscar :-)
    Para la 5 y la 6 por ahora no hay nada pero es previsible que esto cambie.
    31 ¿Donde guardan los programas la fecha de caducidad ?
    Up
    Habitualmente la fecha de instalación o de caducidad suele ser guardada en alguno de estos sitios :
    1.- Registro.
    2.- Algún fichero perteneciente al directorio de la aplicación.
    3.- Ficheros .ini de la aplicación (en su directorio o en c :\windows).
    4 - Alguna combinación de ellos.
    Existe una maravilla llamada Techfacts98 v2.33 que permite detectar variaciones tanto de ficheros como del registro.
    32 ¿Qué es un loader ?
    Up
    Como ya he explicado antes, es un parcheador que cambia los bytes directamente en memoria, no en el fichero. Es útil cuando los ejecutables están encriptados o comprimidos.
    Básicamente lo que hacen es ejecutar el programa, esperar a que se descomprima o desencripte, y cambiar los bytes que le hemos especificado en las direcciones que le hemos indicado. Suelen ser un poco mas lentos a la hora de cargar pero las diferencias son inapreciables. Existen varios programas que los crean automáticamente:
    Process Patcher 3.1
    R!SC's Process Patcher v1.2i
    Launcher Generator V 1.03...

    33 Tengo menús o botones desactivados
    Up
    Tienes varias soluciones posibles. Puedes coger un programa editor de recursos como exescope 4.40 y localizar ese boton que te trae por la calle de la amargura. Una vez lo hallas localizado lo podrás activar sin dificultad de forma permanente. Ten en cuenta que para que puedas hacer ésto necesitarás que el ejecutable este descomprimido y/o desencriptado.
    Existen otros programas como customiser 1.5 que te permitirán activarlos "al vuelo" de forma no permanente. En ocasiones no funciona correctamente.
    Pero si lo que realmente deseas es conocer su código, lo mas recomendable es coger el soft-ice y poner un breakpoint en la función enablemenuitem y mirar los parámetros previos. Esta función es usada tanto para activar como para desactivar.

    Todo esto sirve únicamente para activarlos y no garantiza que las funciones asociadas a ellos esten implementadas en el ejecutable. De igual modo, tampoco garantiza que su pulsación derive a la rutina correcta.

    34 Que me puedes decir acerca de las mochilas
    Up
    En primer lugar que apenas hay información disponible en castellano. Tan solo un pequeño artículo de +Aitor disponible en la web de WKT. En inglés, en fravia tienes un monton. Buscalo en
    http://129.105.116.5/fravia/entran.htm en "+HCU Database Navigation" en el proyecto nº 3 (Dongles cracking). Si quieres ir directamante: project3
    Si quieres tratar este tipo de protecciones prueba con ésto en el soft-ice :
    Bpio -h 378 r
    Bpio -h 278 r
    En general, aunque lo código pueda ser enrevesado, tal vez encuentres un flag que permita saltar toda la proteccion de golpe. Obviamente, de esto no hay ninguna garantía.






    Up
    36 Nota del autor original:
    Up
    La ingeniería inversa o cracking, a mi juicio, tiene la finalidad de tener una visión mas amplia acerca del funcionamiento de unas máquinas que, directa o indirectamente, ejercen una gran influencia en tu vida, tus gustos, tus opiniones... Desgraciadamente no siempre tomamos consciencia de ello.
    Espero que esto contribuya a a tu conocimiento y crecimiento personal, unas cualidades que puede manifestarse y brillar en las facetas mas variadas de tu vida.

    "La información es poder "
    Citar  
     

  2. #2  
    Colaborador HH
    Fecha de ingreso
    Jun 2006
    Ubicación
    Uruguay
    Mensajes
    1.451
    Descargas
    11
    Uploads
    0
    Dudo que mucha gente tenga la ruta: file:///H:/CPH/INFORMATICA/faq%20ingenieria%20inversa.htm#1

    en su disco :-/

    tenés que linkearlo a un sitio online, o poner los archivos en algun host.. sino se van a poder ver los links.

    Saludos
    Louis Armstrong le dice a Ella Fitzgerald
    "take another drink of wine, and maybe you change your mind"
    Citar  
     

  3. #3  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    No son links hacia otras páginas, sino referencias hacia un punto o apartado dentro de la misma página... observa los #1, #2... al final de dichos enlaces.

    34 Que me puedes decir acerca de las mochilas
    Preguntale a Pocholo... xD


    Buen aporte, aunque el copy&paste debería ir acompañado de alguna aportación personal.

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  4. #4 lo siento 
    Avanzado
    Fecha de ingreso
    Jan 2008
    Mensajes
    170
    Descargas
    8
    Uploads
    0
    siento lo de los links pero como dice hystd son referencias a la misma página , subí varios posts y la verdad es que como venian en tablas pues converti la tabla en texto he hice algunos ajustes pero por no corregir todos las referencias .. jeje toca abusar de la barra de desplazamiento un poquito jeje

    Mi opinión personal :

    Me pareció un buen artículo ya que hay muchos links sobre páginas y herramientas para el manejo o la creación de aplicaciones, y bueno para los newbies y para empezar en esto viene bien . Algunas herramientas estarán desfasadas pero otras se siguen usando . Salud2
    "La información es poder "
    Citar  
     

Marcadores

Marcadores