Ver Mensaje Individual
  #13  
Antiguo 23-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Vamos a intentar hacer algo elegante, todo sea por que no pelees con tu hermano, que eso esta muy feo

Podríamos hacer un programa que en un bucle buscara a intervalos regulares la ventana, y cambiara el texto. Esta solución es poco elegante, y además durante una fracción de segundo se podría mostrar el texto real. Además no tengo ganas de ponerme a buscar la ventana.

Así que ya puestos, vamos a matar moscas a cañonazos, que es mas divertido. Utilizando un Hook global, vamos a inyectar un dll en todos los procesos. Cuando nuestra dll detecte que ha sido inyectada en el proceso "rundll32.exe", que es el responsable de mostrar esa ventana, hará un subclassing de todas las ventanas de la clase "Link Window". Y ahora es donde damos el toque final, cada vez que una de estas ventanas reciba un mensaje del tipo WM_SETTEXT reemplazaremos el texto por el que a nosotros nos convenga.

Caramba ahora mismo me siento un hacker Y tu te preguntaras como funciona todo esto ... Pues bien en el zip que te mando te envió el código y el ejecutable de la dll (injection.dll) y el código del inyector (Namaris.exe). Descomprimelos en la misma carpeta y ejecuta el programa, ahora prueba a abrir las "Propiedades del sistema" y el valor ya debería de aparecer cambiado.

Ahora unos toques finales. Primero en el código de la dll encontraras una sentencia como la siguiente, comprueba que el valor a buscar y el nuevo son los correctos, y recompila:
Código Delphi [-]
  Str:= StringReplace(Str,'1,00 GB','2,00 GB',[rfReplaceAll,rfIgnoreCase]);

Ahora, como te habrás dado cuenta, el programa se ve Esto tiene solución vete al código del ejecutable y busca una instrucción como la siguiente, borrala y recompila:
Código Delphi [-]
  {$APPTYPE CONSOLE}

Y ahora solo queda que copies tanto el ejecutable como la dll a una carpeta como la de windows (c:\windows) y configures el equipo para que ejecute el programa cada vez que se inicie. Por ejemplo agregando una entrada a la clave de registro:
Código:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Si todo sale bien, mientras el programa este en ejecución, el valor se cambiara como por arte de magia.

PD: Solo espero que no utilices esto para engañar a un incauto y vender un ordenador, como si tuviera mas memoria de la que tiene o algo así. Eso me enfadaría muchísimo

El enlace (fuera del ClubDelphi) -> http://rapidshare.com/files/8594371/Namaris.zip.html
Responder Con Cita