| ESTUDIO COLECTIVO DE DESPROTECCIONES Última Actualizacion: 25/10/2001 |
Programa | MemTurbo V1.5 | W95 / W98 / NT
Descripción | Utilidad para desfragmentar y recuperar la memoria RAM consumida por Windows
Tipo | Trial de 30 dias
Tipo de Tutorial | [X]Original, []Adaptación, []Aplicación, []Traducción
Url | http://www.memturbo.com
Protección | Time Limit 30 Dias
Dificultad | 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista
Herramientas | FileMon V4.x, TechFacts 95/98, Apis32 V2.4, W32dasm8.93, Editor Hexadecimal (el que mas os guste)
Objetivo | Evitar que el programa Expire
Cracker | Karpoff
Grupo | TnT!
Fecha | 1 de Diciembre de 1999
INTRODUCCION
Hola Newbies, Crackers, y todos en general!! Bueno otro mas, en este manual vamos a cambiar la forma tipica de crackeo que se muestra generalmente en los manuales. osea, no vamos a buscar el mensaje de expiracion, o el de serial number incorrect etc. y a partir de los mensajes buscar un salto y modificarlo. Hoy utilizaremos una herramienta que ya conocemos que es genial y que parece que se usa muy poco ya que no se ve en ningun manual, se trata de APIS32 V2.4, la ultima vez que utilizamos esta herramienta ( en mis manuales ) fue para que nos mostrase la funcion que debiamos utilizar como break point o punto de ruptura en el SofIce, hoy esta herramienta nos evitara un costoso trabajo, ya que vamos a crackear este programa mediante las Apis de Windows es decir evitaremos que el programa lea los datos que guarda en el registro de Windows y que le informan del tiempo que queda de evaluacion. Las APIS mas utilizadas para este tipo de procedimientos son las siguientes. RegCloseKey /a /exa - Cierra una clave en el registro de windows RegCreateKey /A /Exa - Crea una clave en el registro de Windows RegDeleteKey /A /Exa - Borra una clave en el registro de Windows RegOpenKey /A /Exa - Abre una clave en el registro de Windows RegQueryValueA /Exa - Lee una clave en el registro de Windows Evidentemente hay algunas mas.
AL ATAQUE
PRIMERA PARTE La victima es MemTurbo V1.5 la ultima y recien salida version de esta gran utilidad, que desfragmenta la memoria Ram liberandola, ya que Windows nos agota la memoria enseguida utiliza toda la que tenemos da igual 64 MB que 128 si poneis un medidor vereis que siempre esta bajo minimos, esta utilidad nos soluciona el problemilla. El programa lo podeis coger de: http://www.memturbo.com/downloads/memturbo.exe HERRAMIENTAS FileMon V4x ( he no tiene nada que ver con Mortadelo, que quede claro) TechFacts 98 o 95 APIS32 V2.4 W32Dasm 8.93 Editor Hex (el que mas os guste) COMPORTAMIENTO DEL PROGRAMA Tenemos 30 dias de evaluacion, pasados los 30 dias el programa deja de funcionar mostrandonos una pantalla con un texto para la ocasión, no tenemos opcion de registrar el programa mediante los tipicos procedimientos. ATAKE Lo primero averiguar como y por que sabe el programa que han pasado 30 dias, una vez averiguado evitar que lea los datos que le indican la evaluacion o si lee los datos modificaremos el codigo para que se comporte siempre como si estariamos evaluando el programa. Este atake es muy util en programas que se ejecutan sin ningun tipo de limitacion, como nag, funciones desvilitadas etc. durante la evaluacion, es logico pensar que si durante 30 dias el programa funciono perfectamente hay algo que le esta indicando los dias que van pasando, puede ser un archivo .ini, o cualquier otro tipo de archivos o lo mas logico una claves o keys en el reg de Windows. SEGUNDA PARTE A TRABAJAR Como siempre lo primero prepararnos todo para trabajar comodamente, hacemos una copia del ejecutable MemTurbo.exe y le ponemos el nombre Turbo.exe y dejamos los dos ejecutables en el mismo directorio. Como podemos averiguar que es lo que le indica a MemTurbo.exe los dias de evaluacion que nos quedan?? Lo primero tenemos que averiguar si MemTurbo.exe lee el tiempo de evaluacion de un archivo o de el registro de Windows, descartemos posibilidades vamos a ejecutar el FileMon, os recomiendo que cerreis todos los programas que teneis en memoria, como puede ser un antivirus, o cualquier otro asi el filemon nos mostrara informacion solo sobre MemTurbo.exe pos eso, ejecutamos el Filemon y seguidamente MemTurbo.exe justo cuando se termine de ejecutar MemTurbo.exe vamos al filemon y pulsamos capture (el boton de la lupa), y analizamos el mogollon de eventos, pero todo son lecturas de ficheros de sistema, no hay nada que nos indique que tenemos un archivo que le informa del tiempo de evaluacion. ( este proceso podia saltarmelo, pero en los manuales siempre indicamos el camino final nunca se dice por todo lo que se paso y todo lo que se probo hasta llegar a la solucion, haciendo que parezca que se acierta a la primera, y no es asi.) Dicho lo dicho traceemos el registro de Windows, para ello tenemos el RegMon pero no lo vamos a utilizar por que es tanta la informacion que nos da que complica muchisimo el localizar lo que queremos como sustituto tenemos el fabuloso TechFacts 95/98, ciertamente esta utilidad tambien nos sustituye al filemon, nos va ha mostrar solo los cambios que realice MemTurbo.exe tanto en el disco duro, archivos.ini, registro de Windows etc.( si no teneis esta herramienta la podeis bajar de mi web y teneis un manual sobre como crackearla) Para realizar este proceso ejecutamos TechFacts vamos a Tools pulsamos Watach System, activamos la casilla Run This Program y seleccionamos MemTurbo.exe, como muestra la imagen. Bien una vez que tenemos seleccionado Menturbo.exe pulsamos el boton GO que no se muestra en la imagen pero esta abajo, TechFacts empezara a comprobar como esta nuestro sistema y cuando termine empezara la ejecucion de MemTurbo.exe, hará otra comprobacion y nos mostrara los cambios. En mi caso esto fue lo que me mostro. No changes made to INI file: C:\WINDOWS\WIN.INI No changes made to INI file: C:\WINDOWS\SYSTEM.INI Registry key values changed: (4) HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\DataViewStream-MT15 Value "Settings-MT15": from "A0,E4,15,90,DD,6C,C0,01" to "80,FF,EB,DC,DD,6C,C0,01" HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\DataViewStream-MT15 Value "Settings-MT15": from "A0,E4,15,90,DD,6C,C0,01" to "80,FF,EB,DC,DD,6C,C0,01" Esta clarisima la importancia que tienen que tener estas claves, pensemos como podemos comprobar que son estas las claves que verifican la evaluacion, lo que se me ocurre es adelantar la fecha para caducar el programa y comprobarlo , es muy importante que salvemos esas claves del registro antes de adelantar la fecha, y creo que no hara falta que diga que no toquiteeis nada mas de lo que os diga en el registro de Windows, pues el resultado puede ser caotico. Bueno ejecutamos RegEdit si alguien no sabe que es, Regedit es el editor del registro de Windows por lo general no tenemos ningun icono para poder acceder, pero podemos ejecutarlo desde el directorio de Windows donde vereis un archivo con un iconito azul llamado Regedit.exe, o desde el menu de inicio pulsamos ejecutar e insertamos la palabra regedit.exe pulsamos Return y se habre el editor, Buscamos las cadenas y las exportamos completas, para exportarlas seleccionais la carpeta que contiene la clave y pulsais en el menu, en registro, exportar archivo de registro, y guardais cada exportacion con el nombre que mas os guste, hacemos lo mismo con las 2 claves. ( esto que se muestra abajo son las carpetas del registro donde se encuentran las claves a exportar, teneis que exportar las carpetas completas, y dentro de ellas iran los valores que tienen.) HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\DataViewStream-MT15 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\DataViewStream-MT15 Una vez exportadas la 2 claves adelantamos la fecha de Windows 2 meses, aseguraros de no tener ningun programa abierto que pueda sufrir algun tipo de modificacion al adelantar la fecha, dicho esto y con la fecha adelantada ejecutamos MemTurbo.exe y... claro toma!! el pantallon que nos dice que se paso el tiempo de evaluacion, como veis no hay opcion de que siga funcionando, a no ser que nos registremos J , osea que cerramos la ventana y ya no hay manera de que funcione MemTurbo. Bien ahora restauramos la fecha de Windows ejecutamos nuevamente MemTurbo.exe y sigue sin funcionar jejeje que putada no? Hagamos lo siguiente, de momento no vamos a restaurar las claves que hemos salvado, primero recomiendo que eliminemos las claves del registro de Windows, asi que las localizamos y las eliminamos completas, osea lo que marco en rojo tambien que son las carpetas que contienen las claves. HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\DataViewStream-MT15 Value "Settings-MT15": from "A0,E4,15,90,DD,6C,C0,01" to "80,FF,EB,DC,DD,6C,C0,01" HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\DataViewStream-MT15 Value "Settings-MT15": from "A0,E4,15,90,DD,6C,C0,01" to "80,FF,EB,DC,DD,6C,C0,01" Y ejecutamos nuevamente MemTurbo.exe y vemos que funciona perfectamente si traceamos con TechFacts veremos que se han creado unas claves nuevas por lo tanto no hace falta restaurar las anteriores, ( si a alguien no le funcionase que restaure las claves que tenemos exportadas pero estoy seguro de que no tendreis problemas ). Bueno ya hemos averiguado que estas claves son las que le informan a MemTurbo de la evaluacion, si probais a tracear dos o tres ejecuciones seguidas vereis que siempre las modifica, que podemos hacer ahora?? Pos muy sencillo buscar en MemTurbo.exe la Api encargada de hacer esta comprobacion, yo pienso que la comprobacion se hara mas o menos asi. Mediante RegOpenKey /A /exa Habrira las claves con RegQueryValue /A /exa comprueba el valor de la clave y se calculan los dias de evaluacion y con RegCloseKey /a /exa cierra la la parte encargada de esta comprobacion, si evitamos o intentamos modificar la funcion que hace RegOpenKey /A /exa podemos evitar que expire el programa, pero como localizamos la api exacta que realiza este trabajo, ya que en un programa a parte de estas claves seguro que se comprueban muchisimas otras, podiamos utilizar el SoftIce y despues de algunas traceadas localizariamos sin duda la que nos interesa, pero nos vamos a ahorrar mucho trabajo si utilizamos APIS32 V2.4 que insisto en que es una herramienta mucho mas util de lo que os pensais. Ale Pues manos a la obra Ejecutamos Apis32 y veremos esta imagen. Expliquemos algo sobre esta herramienta. Es imprescindible que tengais bien configurada APIS32, por lo menos que se encuentren la lista de APIs que utiliza el programa en cuestion, para incluir APIs en la lista tenemos la Opcion add que vemos en la imagen, si pulsais sobre ese boton os mostrara una lista con los archivos habituales que utiliza Windows y al seleccionar uno de los archivos os mostrara toda la lista de Apis que pueden ser importadas de cada uno de los archivos, o tambien una vez que hemos seleccionado el programa que vamos a tracear podemos pulsar sobre imports y nos mostrara todas las funciones(APIs) que utiliza ese programa en este caso el MemTurbo, y a partir de hay podemos introducir las que queramos, para introducirlas en Apis32 podeis seleccionarlas 1 a 1 solo las que os interese o todas de golpe con la opcion add all, no recomiendo introducir todas ya que el informe que nos muestra cuando utilicemos Apis32 puede ser demasiado lioso, en este caso con que esten las Apis que manejan el registro de Windows es suficiente. Solo nos queda pulsar sobre Run y ver que ocurre, osea que pulsamos y MemTurbo empieza a ejecutarse vemos como se va creando un listado de informacion en la ventana de Apis32, como es de suponer una vez que MemTurbo ya se ha ejecutado este habra realizado todas las comprobaciones en el registro de Windows no?, bueno pues tendreis en pantalla una ventana como esta, que variara su contenido dependiendo de las Apis con que tengais configurado APIS32. En este momento pulsamos sobre Save LOG y cerramos tanto APIS32 como MemTurbo, y en el directorio donde tengais instalado MenTurbo V1.5 se ha creado un archivo llamado MemTurbo.log, donde se encuentran todos los datos del proceso de ejecucion, ale vamos a editarlo y ver su contenido,...... Como veis hay mucha información sobre todas las funciones que importa MemTurbo, pero Nosotros de momento solo necesitamos las funciones del registro de Windows y en mi .log veo esto. 004082C5:RegOpenKeyExA(HANDLE:80000001,LPSTR:004719F4: "Software\Microsoft\Windows\CurrentVersion\Explorer\ DataViewStream-MT15.., DWORD:00000000,DWORD:00000003,LPDATA:006DF5F8) 004082CB: RegOpenKeyExA = 0 00408357:RegCreateKeyExA(HANDLE:80000001,LPSTR:004719F4: "Software\Microsoft\Windows\CurrentVersion\Explorer\DataViewStream-MT15.., DWORD:00000000,LPSTR:0046E820:"REG_BINARY",DWORD:00000000,DWORD :000F003F,LPDATA:00000000,LPDATA:006DF5F4,LPDATA:006DF5F0) 0040835D: RegCreateKeyExA = 0 004083A6: RegSetValueExA(HANDLE:C29AFAC0,LPSTR:004719E4: "Settings-MT15", DWORD:00000000,DWORD:00000003,LPDATA:006DF5DC,DWORD:00000008) 004083AC: RegSetValueExA = 0 004083D2: RegCloseKey(HANDLE:C29AFAC0) 004083D8: RegCloseKey = 0 00408439:RegCreateKeyExA(HANDLE:80000001,LPSTR:00471A3C: "Software\Microsoft\Windows\CurrentVersion\Explorer\DataViewSettings-MT..,DWORD:00000000, LPSTR: 0046E820:"REG_BINARY",DWORD:00000000,DWORD:000F003F,LPDATA:00000000, LPDATA:006DF5F4,LPDATA:006DF5F0) 0040843F: RegCreateKeyExA = 0 Bueno como digo entre muchisimos otros datos estos son los registros que me parecen muy interesantes, si os fijais en rojo tenemos las claves que habiamos localizado con TechFacts98 , vemos que Api las manipula e incluso nos muestra la direccion de memoria de la Api que realiza las comprobaciones, seguramente para localizar esto con el SoftIce hubiesemos dado muchas vueltas, ahora vamos a pasar a la parte del desensamblado. Teniamos MemTurbo.exe y una copia de este con el nombre Turbo.exe bueno pues desensamblamos MemTurbo.exe y con el editor Hex editamos Turbo.exe La direccion de memoria donde se habre por primera vez la clave que nos interesa es 004082C5 004082C5:RegOpenKeyExA(HANDLE:80000001,LPSTR:004719F4:"Software\Microsoft\Windows \CurrentVersion\ Explorer\DataViewStream-MT15..,DWORD:00000000,DWORD:00000003,LPDATA:006DF5F8) veamos que hay en esa direccion de memoria, asi que en W32dasm con la opcion find (la linternita) buscamos la direccion 004082C5 y nos lleva a: * Reference To: ADVAPI32.RegOpenKeyExA, Ord:0172h :004082C5 FF150C704500 Call dword ptr [0045700C]--- AQUI :004082CB 6A48 push 00000048 :004082CD 6A00 push 00000000 :004082CF 57 push edi :004082D0 8945F0 mov dword ptr [ebp-10], eax : 004082D3 E8180E0100 call 004190F0 :004082D8 83C40C add esp, 0000000C :004082DB 837DF000 cmp dword ptr [ebp-10], 00000000 :004082DF 0F84E2010000 je 004084C7 ----- Que Interesante :004082E5 8D45C8 lea eax, dword ptr [ebp-38] :004082E8 50 push eax Concretamente a la api que abre la clave del registro, lo que aquí parece que ocurre es: RegOpenKeyExa abre la clave que utiliza memturbo para controlar la evaluacion, y mediante una serie de comprobaciones a traves de 004082D3 call 004190F0 se decide si se ejecuta o no el salto condicional que hay en 004082DF estas comprobaciones se lian mogollon, podeis tracearlo con el SoftICE, yo no lo hice cuando crackee este programa, pero posterior si lo tracee y si quereis aprender mas os recomiendo que pilleis el SoftIce poneis un Break Point a 004082d3 y empezais a tracear a partir de esa Call. Vereis la de vueltas que damos para arriba y abajo hasta llegar a el salto 004082df. Bueno pues probemos a invertir el salto convirtiendolo en un jne y veamos los resultados, localizamos el offset de 004082DF je 004084C7 Que se muestra en la parte inferior de W32dasm, en la barra de estado, y es 000082DFh los ceros no se ponen y la "h" tampoco, asi que vamos al editor Hex y el cambio que tenemos que hacer es cambiamos 004082DF 0F84E2010000 je 004084C7 por 004082DF 0F 85 E2010000 jne 004084C7 para hacer el cambio metemos el offset 82DF en el editor Hex, con la opcion GOTO (dependiendo del Editor) y veremos esto (dependiendo del editor que se use en unos estan los numeros juntos, en otros en pares etc. Pero siempre seran los mismos.) 0F 84 E201 0000 y cambiamos por 0F 85 E201 0000 salvamos los cambios y ya solo nos queda probar, para ver si hemos acertado tenemos que adelantar otra vez la fecha, osea que cerramos los programas que puedan sufrir alteracion por el cambio de fecha (versiones triales etc.) adelantamos 2 meses la fecha de Windows y ejecutamos el archivo Turbo.exe que es el que hemos modificado y Voooila ¡! parece funcionar probamos a ver si desfragmenta la memoria y asi es bien, cerremos Turbo.exe y restauremos la fecha, ahora probamos otra vez y sigue funcionando miramos otra vez si desfragmenta la memoria y efectiviwonder, el funcionamiento es perfecto. Pues como siempre espero que os sirva para adquirir conocimiento, para entender un poco mas esto del crackeo y principalmente para divertiros :-) . Ya sabeis que para cualquier duda podeis contar conmigo, atiendo todos los email con preguntas, sugerencias, criticas etc. Pero no atiendo pedidos de Cracks. Un saludo a tod@s Karpoff /TNT!Cracker EMAIL: Kf_karpoff@hotmail.com URL: http://welcome.to/karpoff http://members.xoom.com/kf_karpoff
[ Entrada | Documentos Genéricos | WkT! Web Site ]
[ Todo el ECD | x Tipo de Protección | x Fecha de Publicación | x Orden Alfabético ]
(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