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 0F85E2010000 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.)
0F84 E201 0000 y cambiamos por 0F85 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
|