-[ 0x02 ]-------------------------------------------------------------------- -[ Crack de una Hyena ]----------------------------------------------------- -[ by madfran ]-------------------------------------------------------SET-26- COMO LOGRAR UNA HERRAMIENTA MULTITAREA INTRODUCCION A veces nos encontramos con el problema de querer saber cual es la direccion IP de una maquina de la cual solo sabemos o intuimos su nombre. A menudo queremos ver que servicios dispensa un servidor. De vez en cuando nos interesa saber que servidores se encuentran en nuestra red. Estamos suponiendo que nos encontramos dentro de una red muy grande y que en ella se inpone el dominio del todopoderoso Windows. Que mejor herramienta que una hyena!. No pretendemos hablar sobre un mamifero que habita en las lejanas (para nosotros) sabanas africanas. Nos estamos refiriendo a una magnifica herramienta llamada Hyena, que va por la version 4.2 'C' y que ha sido desarrollada por una empresa llamada SystemTools Software Inc. UN DESEO INCONTROLADO Es el que te corroe cuando te encuentras dentro de una red que por alguna razon intuyes es enorme pero que desconoces casi por completo. Cuales son las razones por las cuales te puedes encontrar ante semejante comezon?, pues,... infinitas como las situaciones que se encuentran en la vida real. Tal vez eres un consultor al que han dado un acceso a la red, pero el acceso es provisional y tremendamente recortado, bueno solo para hacer un trabajito miserable. A lo mejor eres un estudiante mal pagado y peor tratado, provisto de contrato para hacer un estudio de verano de esos que si son buenos, acostumbran a ser fagocitados por algun caza medallas de la empresa que te chupa la sangre. Como ya os hemos dicho puede ser variadas la situaciones y los motivos pero la consecuencia siempre es la misma, cuando te encuentras con la cabeza hecha un torbellino y necesitas descansar hay varias soluciones, ir al lavabo, buscar una maquina de cafe, molestar al vecino, intentar ligar con la persona del mismo u opuesto sexo que se encuentre en las proximidades o... rastrear a ver que basura encuentras en la red de marras. Es el momento de lanzar el programita Hyena!. No es que sea la panacea universal pero te da un vistazo de todo el entorno de tu ordenador. Y entonces, ahi vamos! nos lanzamos a ver que pasa. De repente,... la desilusion!. El problema es que en lugar de darte la informacion deseada, te larga un mensajito diciendo que han pasado los treinta dias de evaluacion y si no sabes el codigo correcto no hay nada que hacer. En este momento nos acordamos que el programita en cuestion hace una porrada de dias que lo habiamos usado y que la licencia de treinta dias, hacia tiempo que habia expirado. NO NOS DAMOS POR VENCIDOS Eso nunca! Se pueden tardar dias, meses o anyos pero lo principal es nunca darse por vencido! Es la base de cualquier estrategia para evitar quedarnos a las puertas de la fiesta... y a nosotros no nos gusta que nos den con la puerta en las narices (duele en las narices y en el amor propio). Hay que empezar por decidir cual es la mejor estrategia a seguir y hay varias a nuestra disposicion. La mas sencilla es intentar que otro haga el trabajo sucio por nuestro cuenta o sea buscar un cracker en la red. En teoria basta con utilizar www.google.com, buscar hyena y... comprobar que te aparecen algunas miles de refencias. Buf! Que aburrido! vamos a hacernos el trabajo nosotros mismos! Si no nos gusta que otro hago el trabajo que unicamente es de nuestra competencia, tenemos que seguir los tipicos pasos que cualquier buen cracker debe seguir: - Buscar un desensamblador (en los sitios acostumbrados) - Lanzarlo para desensamblar el programa objetivo (cuidando que no se escape) - Fijarnos en algunos detalles pertinentes (los impertinentes, podeis obviarlos) - Tomar nota de lo que hay que cambiar (en papel u objeto similar, no os fieis de vuestra, deplorable, memoria) - Buscar un editor hexadecimal (en el mismo sitio que antes) - Realizar con el, los cambios deseados (... ni uno mas ni uno menos) - Comprobar que todo marcha segun tus deseos (que no tienen que coincidir con los deseos del fabricate del software objetivo) EL DESEMSAMBLADOR El otro dia recibi una consulta de una persona perdida en internet, que me preguntaba para que servia un desensamblador (veridico y cierto, si no os lo creeis os puede ensenyar el e-mail), dado que desconozco el grado de conocimiento (o de desconocimiento) de mis atentos lectores (hay alguien despierto?), paso a hacer una breve descripcion... Un desensambblador, no es nada mas que un programita que convierte un galimaties de cifras y numeros, en codigo en assembler. Si el programita es lo suficientemente bueno, ademas del codigo puro y duro, os obsequiara tambien con algunas descripciones, y el texto de todos los menus y comentarios que el programa a crackear te vomita de vez en cuando. Perfecto! Ahora pasemos a la busqueda de un software de este estilo. Todo un clasico en la materia es el famosisimo W32Dasm. Hay diversas versiones, todas funcionan correctamente pero son de pago, o sea la version que podeis encontrar esta limitada en algunos sentidos, pero basta para nuestros deseos. El productor de esta maravilla es la empresa URSoftware Co. que se ganaba la vida haciendo diversas cosas pero parece que no le ha ido nada bien ya que ha desaparecido del mapa. Si no os gusta o no lo encontrais, una buena alternativa es el IDA, pero yo me desenvuelvo tranquilamente con la version 8.7 del W32Dasm aunque se que existen versiones posteriores hasta la 8.93. DESENSAMBLANDO En fin, una vez encontrais lo que os hace falta solo hay que lanzar el programa y a continuacion desensamblar el Hyena. En codigo ASCI genera un monstruo de mas de 18 Mb y buscar a pelo por ahi dentro no es tarea para realizar de buenas a primeras. Hay que actuar, sino con metodo, como minimo con un poco de inspiracion. Lancemos el Hyena y fijemonos en que nos dice. Ademas de comunicarnos el sistema de registro, nos dice los dias que quedan para disfrutar de la licencia provisional (exactamente cero dias) con el siguiente mensaje "Days remaining in trial period" Lo mas evidente es buscar en el codigo desemsamblado el texto en cuestion. No lo encontramos en el cuerpo del codigo, pero si encontramos este dialogo. Name: DialogID_0099, # of Controls=012, Caption:"Registration" 001 - ControlID:FFFF, Control Class:"" Control Text:"" 002 - ControlID:FFFF, Control Class:"" Control Text:"This is a fully functional copy of Hyena. Registration is required after the " 003 - ControlID:0638, Control Class:"" Control Text:"http://www.systemtools .com/hyena" 004 - ControlID:FFFF, Control Class:"" Control Text:"If you have your registration information for Hyena, enter it below, and then " 005 - ControlID:FFFF, Control Class:"" Control Text:"Days remaining in trial period" 006 - ControlID:0458, Control Class:"" Control Text:"" 007 - ControlID:FFFF, Control Class:"" Control Text:"Registration Key" 008 - ControlID:0459, Control Class:"" Control Text:"" 009 - ControlID:FFFF, Control Class:"" Control Text:"Company / Licensee Name" 010 - ControlID:0488, Control Class:"" Control Text:"" 011 - ControlID:0002, Control Class:"" Control Text:"&Registration Infomation" 012 - ControlID:5190001, Control Class:"" Control Text:"OK" Hacemos otro intento, buscando el DialogID-0099 pero encontramos demasiadas referencias sin ninguna que diga nada sobre Controls_ID=012...... parece que nos encontramos en un punto muerto ! BUSCANDO CON UN POCO MAS DE PACIENCIA Cuando ponemos el codigo equivocado de registro, el programa nos entretiene con un obsceno (cada cual tiene su propio concepto de la obscenidad) mensaje "The trial period has expired" Normalmente, cuando recibes un mensaje semejante, el danyo ya esta hecho y el programa no funciona, pero... y si este no es el caso? Ni cortos ni perezosos nos lanzamos a la busqueda del presunto tesoro y encontramos este pedazo de codigo. ***************************************************************************** ********* UN PEAZO DE CODIGO ************************************************ ***************************************************************************** :004332B9 E810820800 Call 004BB4CE :004332BE 8D4C241C lea ecx, [esp + 1C] :004332C2 C7842450070000FFFFFFFF mov dword ptr [esp + 00000750], FFFFFFFF * Reference To: MFC42u.MFC42u:NoName0122, Ord:0320h | :004332CD E8FC810800 Call 004BB4CE :004332D2 B801000000 mov eax, 00000001 :004332D7 E9EE040000 jmp 004337CA * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:00432E15(C), :00432E27(C), :00432E78(C), :00432EF4(C), :00432F06(C), |:00432F3C(C) | :004332DC 85FF test edi, edi :004332DE 0F858A020000 jne 0043356E :004332E4 6A10 push 00000010 * Reference To: USER32.MessageBeep, Ord:01C2h | :004332E6 FF15F86A4D00 Call dword ptr [004D6AF8] :004332EC 6AFF push FFFFFFFF :004332EE 6A10 push 00000010 * Possible Reference to String Resource ID=21343: "The trial period has expired. " | :004332F0 685F530000 push 0000535F * Reference To: MFC42u.MFC42u:NoName0187, Ord:04ACh | :004332F5 E848830800 Call 004BB642 ***************************************************************************** ********* OTRO PEAZO DE CODIGO ********************************************** ***************************************************************************** * Reference To: MFC42u.MFC42u:NoName0246, Ord:048Dh | :00433868 E8317F0800 Call 004BB79E :0043386D 8BBC2414020000 mov edi, [esp + 00000214] :00433874 8B7004 mov esi, [eax+04] :00433877 6A00 push 00000000 :00433879 57 push edi * Possible StringData Ref from Data Obj ->"C" | :0043387A 68A0515000 push 005051A0 :0043387F 8BCE mov ecx, esi * Reference To: MFC42u.MFC42u:NoName0249, Ord:0DBCh | :00433881 E82A7F0800 Call 004BB7B0 :00433886 85C0 test eax, eax :00433888 7423 je 004338AD :0043388A 6A10 push 00000010 * Reference To: USER32.MessageBeep, Ord:01C2h | :0043388C FF15F86A4D00 Call dword ptr [004D6AF8] :00433892 6AFF push FFFFFFFF :00433894 6A10 push 00000010 * Possible Reference to String Resource ID=21343: "The trial period has expired. " | :00433896 685F530000 push 0000535F * Reference To: MFC42u.MFC42u:NoName0187, Ord:04ACh | :0043389B E8A27D0800 Call 004BB642 :004338A0 5F pop edi :004338A1 33C0 xor eax, eax :004338A3 5E pop esi :004338A4 81C408020000 add esp, 00000208 :004338AA C20400 ret 0004 ****************************************************************************** ***************** FIN DE ROLLOS DE CODIGO *********************************** ****************************************************************************** Vosotros podeis hacer lo que querais, pero yo os aconsejo que no hagais caso del segundo trozo de codigo y os centreis en el primero. Para ser mas precisos en el codigo que pone, 85FF 0F858A020000 6A10 Y lo cambiais por un, 85FF 0F848A020000 6A10 (diablos! fijaros bien! he cambiado un 5 por un 4) Con esto un jne se reconvierte en un je (Para los que os hallais dormido esto quiere decir antes saltaba "si no es igual" y ahora solo salta "si es igual") y solo te sale el malefico mensaje si por casualidad aciertas el codigo de registro (que tambien seria mala suerte!) TRABAJANDO CON UN EDITOR HEXADECIMAL Hasta ahora solo hemos trabajado con la mente (que es cosa sabia, pero siempre se termina bajando de las nubes) pero un dia u otro hay que pisar tierra firme y empezar a ensuciarse las manos,.... o sea hay que realizar fisicamente el trabajo de la modificacion del codigo. Para ello se requiere un editor hexadecimal. Existen millones en la red y muchos con parafernalia de dibujitos e incluso musiquitas, pero yo prefiero un editor pelao de toda la vida que no ocupa casi nada y es viejo como la tos pero no da sorpresa ninguna. Me refiero al PSEDIT, venerable herramienta donde las haya (creo que data de 1994) que todavia reclama un registro de 24 dolares y que pagaria a gusto si su creador no hubiera desaparecido de toda referencia conocida en el mundo civilizado. Con dicho editor, y una vez pasado los reclamos de pagos atrasados, se abre el archivo hyena.exe Los que llegeis ahi solo vereis una lista de datos rarisimos os adjunto un poco para que os hagais una idea. 00000020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 00000030 00 00 00 00 00 00 00 00-00 00 00 00 18 01 00 00 ................ 00000040 0E 1F BA 0E 00 B4 09 CD-21 B8 01 4C CD 21 54 68 ........!..L.!Th 00000050 69 73 20 70 72 6F 67 72-61 6D 20 63 61 6E 6E 6F is program canno 00000060 74 20 62 65 20 72 75 6E-20 69 6E 20 44 4F 53 20 t be run in DOS 00000070 6D 6F 64 65 2E 0D 0D 0A-24 00 00 00 00 00 00 00 mode....$....... 00000080 AB 7E 0F 59 EF 1F 61 0A-EF 1F 61 0A EF 1F 61 0A .~.Y..a...a...a. 00000090 07 00 65 0A ED 1F 61 0A-B9 00 72 0A E7 1F 61 0A ..e...a...r...a. 000000A0 B2 3D 6A 0A EC 1F 61 0A-6C 03 6F 0A EA 1F 61 0A .=j...a.l.o...a. 000000B0 B2 3D 6B 0A E4 1F 61 0A-B2 3D 65 0A ED 1F 61 0A .=k...a..=e...a. 000000C0 96 3E 6A 0A EC 1F 61 0A-96 3E 65 0A ED 1F 61 0A .>j...a..>e...a. 000000D0 07 00 6A 0A EC 1F 61 0A-EF 1F 61 0A E3 1F 61 0A ..j...a...a...a. 000000E0 B6 3C 72 0A FC 1F 61 0A-EF 1F 60 0A B1 1C 61 0A .