Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Como cambiar valores en la ventana "General" propiedades del sistema (https://www.clubdelphi.com/foros/showthread.php?t=38132)

JuanErasmo 04-12-2006 17:54:54

Como cambiar valores en la ventana "General" propiedades del sistema
 
HOla amigos...
es algo enredada la pregunta pero quiero saber si puedo cambiar o acceder a la informacion por ejemplo Equipo .
Ram , etc. ...que cuando abra esta ventana , pueda ver los valores que yo le ponga al sistema....asi no los tenga...
Gracias!

luisgutierrezb 04-12-2006 18:56:47

pues que yo sepa, esos valores los lee del registro, pero tambien tengo entendido que sobreescribe esos valores cada vez que arranca el windows

JuanErasmo 04-12-2006 19:01:18

Gracias pOr responderme.
Sabes en que ruta estan ubicados???
Gracias. especialmente nombre del equipo, procesador, ram-....etc??
Gracias otra vez

Ñuño Martínez 04-12-2006 19:46:35

Aunque te lo digamos, probablemente no sirva de nada. Apuesto a que están protegidos de forma que no se puedan cambiar. Al menos, si yo fuera el diseñador de Windows, no permitiría que nadie los cambiara.

Y, ya que estamos, ¿para qué los quieres cambiar? No estarás programando un virus, ¿hein? (¬.¬)

JuanErasmo 04-12-2006 20:25:30

No, no es un virus.
 
no, no es un virus , para nada.
Soy un curioso de la programacion, no soy un Hacker maligno...solo es por curiosidad.
Gracias, si alguien sabe donde es no lo utilizare para mal.

seoane 04-12-2006 23:02:28

Vamos a ver, aquí te van algunas claves que te pueden resultar interesantes:

Código:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOwner
HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization
HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProductId
HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0\ProcessorNameString
HKLM\HARDWARE\DESCRIPTION\System\Identifier

El resto de información (Memoria, Versión, etc) lo obtiene con las correspondientes funciones de la API.

JuanErasmo 04-12-2006 23:17:21

tienes algun ejemplo de manejo del API que maneje esto??
 
Hola seaone.
Tienes algun ejemplo de este manejo?
cambiarle por ejemplo el nombre del equipo(solo en los Label) , o la velocidad del procesador (solamente en los Label)
Gracias.

seoane 05-12-2006 00:15:28

:confused: ¿Que quieres hacer exactamente? Si lo que quieres es obtener los datos para utilizarlos en tu aplicación, puedes leer esas entradas del registro y/o utilizar las funciones de la API correspondientes, si es eso dilo y te paso las apis que tienes que utilizar. Si por el contrario quieres cambiar los valores que allí aparecen, puedes cambiar los valores del registro, pero las que se obtienen directamente con la API son mas difícil de modificar.

Podríamos inyectarnos dentro del proceso y modificar lo que consideremos oportuno, pero eso seria un trabajo inmenso solo para jugar, así que ahora seria un buen momento para que explicaras un motivo legitimo por el que alguien querría hacer eso.

JuanErasmo 05-12-2006 17:02:39

hola.
Lo que necesito es que cada vez que aparezca la ventana propiedades del sistema . pestaña General , con mi aplicacion con un boton, pueda cambiar los valores que aparecen en NOmbre del Equipo, procesador y Ram.
Ya se usar el WinExplorer, y desde ahi lo puedo cambiar....pero en Builder no es tan sencillo...
Gracias!

Namaris 22-12-2006 19:46:06

Hola,

Yo llevo buscando lo mismo desde hace 4 dias y durante estos 4 dias no he echo otra cosa cn el pc que buscar por google y por ahi la manera de cambiar estos parametros...

¿Ami no lo unico que me interesa es cambiar el parametro de la RAM, dnd dice 1,00GB me gustaria ponerle 2,00GB?

Alguien me dice como hacerlo desde el registro?? Pk solo he conseguido cambiar lo del microprocesador que me no me interesaba mucho, ¿Lo de la RAM como va? :(


P.D: Por cierto, soy recien registrao y este es mi 1º post en eeste foro, asi que un enorme saludo a todos :D

seoane 22-12-2006 21:32:49

Hola Namaris, antes de nada bienvenido al foro :)

Volviendo a tu pregunta, ese dato no lo obtiene del registro, por lo que no conseguiremos nada por ese camino. Lo consigue utilizando funciones de la API así que es difícil que puedas cambiar ese valor.

Podríamos intentar cambiar el texto que aparece en esa ventana en particular, pero cualquier otro programa podría revelar el valor real de la memoria. No entiendo para que te podría resultar eso de utilidad :confused:

Namaris 23-12-2006 01:10:04

Gracias por la bienvenida seoane ;)

Entiendo que te maree el tema de que preguntemos curiosidades tan abstractas que no explican logicamente el fin xDD

El caso esque lo kiero porke instale un modulo de RAM en el pc de mi hermano pekeño y se lo he sacao hace unos dias pk me hace falta durante un mes en otro lao y seriamente me importa que se de cuenta xDD

Asi que con que se vea en propiedades del sistema me basta, el no va a mirar en otro sitio si ve q va lento windows xD, sera cuestion de unos dias pero enserio, quiero saber, pk cn el winexplorer lo cambias pero en cuanto reinicias el cuadro vuelve a lo normal pk como bien dices es un API...el caso es...

¿Tu me puedes echar un cable para trucar el API o decirme como para sacarlo?

Enserio...te lo agradeceria en el alma que el chinigo este me monta un follon como se entere y mis padre me van a echar la bronca xD


Enga un abrazao y Saludos a todo2 :)

seoane 23-12-2006 02:16:19

Vamos a intentar hacer algo elegante, todo sea por que no pelees con tu hermano, que eso esta muy feo :p :D

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 :D 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 :eek: 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. :D

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 :mad:

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

Namaris 23-12-2006 18:17:38

Hola Seoane ;),

darte gracias seria un insulto, seriamente creo que de debo una gorda :)

Y como no olvido los favores....ahora te hago una invitacion formal para que cobres tu deuda, mi msn te lo mando por msj privado ;).

Y ahora volviendo al tema, entiendo lo que has puesto y dicho acerca de los ultimos retoques pero el problema que tng ahora mismo es el siguiente:

-No puedo editar el .dll pk no dispongo de ningun editor aparte del bloc de notas y ahi abriendolo me aparcen miles de caracteres raros xD

entre linea y caracter linea he conseguido leer un apartado (512 MB; 1,00 GB; 2,00 GB) y la duda mia es: ¿Lo que hace el ejecutable es mostrarte el doble, por ejemplo si tienes 512MB pues 1GB y si tienes 1 GB, 2GB??? :confused:

Pk si es asi perfecto y no tng que tocar nada porque dnd lo probe es en mi pc que tengo 1 GB pero en el de mi hermano son 512 MB actualmente que hay que doblar antes de que venga. xDD

-Que me aconsejas para poder editarlo ya que el bloc de notas me dice que no??



P.D:Aproveche ahora que no estaba mi hermano para probar el programa en su PC y veo que ahi sigue en sus 504 MB (aunque el modulo es de 512MB), no va volver hasta 2 horas, ¿que hago? xDD
------------------------------x----------------------------

Un enorme abrazo y saludo campeón :cool:

seoane 23-12-2006 18:48:46

:eek: Caramba, como estamos en un club de delphi, supuse que contabas con el delphi instalado en tu ordenador. Estas en lo cierto, si tienes 512 MB, te poner 1,00 Gb y si tienes un 1,00 Gb te pone 2,00 Gb. Por esa parte no tendrías que modificar nada entonces. El problema lo tendrías para volver oculta la aplicación Namaris.exe. Te mando por correo una versión ya compilada, porque no veo necesidad de utilizar espacio del Club para eso.

De todas formas, no se si estas interesado en la programación, pero ahora es un buen momento para iniciarse en Delphi. Ya que te puedes descargar TurboDelphi completamente gratis de internet.

http://www.turboexplorer.com/

seoane 23-12-2006 18:57:24

Vaya, parece que tengo problemas para enviártelo a tu correo. Pues aquí te dejo un enlace en RapidShare, para que lo descargues. Tienes una versión del ejecutable que no se muestra, y un dll que cambia 504 MB por 1,00 GB. Espero que te sirva

http://rapidshare.com/files/8672820/Namaris2.zip.html

Namaris 23-12-2006 19:00:53

Hombre interesado estoy desde hace casi un año xDD

Pero como dicen que es tan complicada y hay que estudiar mucho y yo no tengo ni la mas minima idea las pocas veces que lo he intentado he acabado rindiendome ante las primeras dificultades :(


Lo de no tener el delphi es porque el encontre el post y foro atraves de google porque iba buscando una solucion a mi caso.

Y respecto a lo del link que me has dejago es de turboexpress que es para bajarme el editor gratis de delphi?? poruqe taba intentando bajar y como hay que registrasse es todo aleman y aparte la web va bastante lenta en respuesta :confused:


Y ya rula eso en el de mi hermano gracias al ultimo que me has pasado :D, muuuchas gracias

Héctor Randolph 23-12-2006 20:46:30

Hola!

Solamente intervengo para comentar que me ha sorprendido la actuación de Domingo Seoane en este hilo :eek: :eek:. Me he permitido calificar este tema con cinco estrellas porque me parece muy bueno el truco, independientemente del uso que alguien pueda hacer de él.

Moraleja: "No hay que confiarnos de la memoria que reporta Windows"

La pregunta es ¿puedo confiar en lo que reporta el BIOS al arrancar? :D

Namaris 23-12-2006 23:34:09

Sr. Hector Randolph, en este mundo de informatica lo que he aprendido es..."Nada es perfecto" y todo es manipulable :D

Y sí, "seoane ha estado magnifico :)

Saludos.

rcarrillom 25-12-2006 01:31:22

Cita:

Empezado por Héctor Randolph
Hola!
Moraleja: "No hay que confiarnos de la memoria que reporta Windows"

Que no sería más correcto "No hay que confiarnos de [...] Windows"? :D

hirving 15-02-2007 21:51:05

Necesito Ayuda
 
Hola, necesito ayuda, tengo una ram de 256mb pero quiero que diga que tengo 1,024mb, abrí mi computadora para limpiarla y mi perro masticó dos memorias que tenía a un lado de mi, si mi papa se da cuenta me va a ragañar, ya estoy ahorrando para reponer las memorias, la verdad no se mucho de programacion y esas cosas y mi conexion es muy lenta como para bajar el turbodelphi y hacer lo que aquí decía. Por favor ayúdenme.

Oscar_Net 17-09-2007 04:11:41

Puedes Mandarme ese archivo
 
Hola podrian ayudarme en lo que estoy haciendo.He estado viendo el foro y ante todo soy nuevo y he hecho algunas modificaciones a mi sistema para que se pareciera mas a Windows Vista, y solo me faltaria cambiar el valor del sistema operativo para hacerlo.

http://photos1.hi5.com/0006/246/248/63TnW9246248-02.jpg

Haci como se muestra en el enlace queda mi sistema,pero lo malo es que no puedo cambiar el nombre de sistema operativo:o

Oscar_Net 17-09-2007 04:14:17

Puedes Mandarme ese archivo
 
Cita:

Empezado por seoane (Mensaje 174186)
Vamos a intentar hacer algo elegante, todo sea por que no pelees con tu hermano, que eso esta muy feo :p :D

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 :D 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 :eek: 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. :D

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 :mad:

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

Ya que solo me faltaria esa parte para terminar, te mando un link para que veas lo que estoy haciendo
http://photos1.hi5.com/0006/246/248/63TnW9246248-02.jpg
Espero que me puedas ayudar:)

Percha 23-10-2007 13:00:24

Hola, podriais subir de nuevo el Namaris.ZIP? ha caducado el archivo.

Muchas gracias hamijos!

aeff 23-10-2007 15:48:51

y donde estan los codigos de la DLL y el programa?

Percha 24-10-2007 01:46:20

Cita:

Empezado por aeff (Mensaje 240529)
y donde estan los codigos de la DLL y el programa?

Los links invalidos en la pagina anterior.

darknees92 11-02-2008 22:14:51

Cita:

Empezado por seoane (Mensaje 174186)
Vamos a intentar hacer algo elegante, todo sea por que no pelees con tu hermano, que eso esta muy feo :p :D

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 :D 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 :eek: 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. :D

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 :mad:

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

que tal una pregunta podrias mandarme otra vez el link del ejecutable injection.exe y el de namariz.exe para que los utilize, es que tus links estan caducados y no sirven espero se pueda de antemano gracias

Saindoft 31-10-2008 05:38:18

Cita:

Empezado por seoane (Mensaje 174226)
Vaya, parece que tengo problemas para enviártelo a tu correo. Pues aquí te dejo un enlace en RapidShare, para que lo descargues. Tienes una versión del ejecutable que no se muestra, y un dll que cambia 504 MB por 1,00 GB. Espero que te sirva

http://rapidshare.com/files/8672820/Namaris2.zip.html


Hola seoane soy saindoft uno de tus
colegas y fanatico del foro, he encontrado muy interesante:eek::eek: este truco
y quisiera probarlo pero del link.. que pusiste no puedo bajarlo, quisiera
si es posible que pusieras un link con el archivo .zip adjunto. gracias de antemano:confused:

seoane 31-10-2008 15:26:27

Bien, el código de la dll es el siguiente:
Código Delphi [-]
library Injection;

uses
  Windows, Sysutils, Messages, Psapi, CommCtrl;

type
  TShared = record
    Hook: HHooK;
    AttachCount: Integer;
  end;
  PShared = ^TShared;

  PItem = ^TItem;
  TItem = record
    hWnd: HWND;
    WndProc: Pointer;
    Next: PItem;
  end;

var
  Mutex, Mem: THandle;
  Shared: PShared;
  Injected: Boolean;
  HandleList: PItem;

function FindWindowProc(hWnd: HWND; Item: PItem): Pointer;
begin
  if Item <> nil then
  begin
    if Item.hWnd = hWnd then
      Result:= Item.WndProc
    else
      Result:= FindWindowProc(hWnd,Item.Next);
  end else
    Result:= nil;
end;

function WindowProc(hWnd: HWND; Msg: UINT; WParam: WPARAM; LParam: LPARAM):
  LRESULT; stdcall;
var
  Str: String;
begin
  if (Msg = WM_SETTEXT) then
  begin
    Str:= String(PChar(LParam));
    Str:= StringReplace(Str,'1,00 GB','2,00 GB',[rfReplaceAll,rfIgnoreCase]);
    Str:= StringReplace(Str,'512 MB','1,00 GB',[rfReplaceAll,rfIgnoreCase]);
    LParam:= Longint(PChar(Str));
  end;
  Result:= CallWindowProc(FindWindowProc(hWnd,HandleList),hWnd,Msg,WParam,lParam);
end;

procedure HookWindow(hWnd: HWND);
var
  Item: PItem;
begin
  if FindWindowProc(hWnd, HandleList) = nil then
  begin
    GetMem(Item,Sizeof(TItem));
    Item.hWnd:= hWnd;
    Item.Next:= HandleList;
    Item.WndProc:= Pointer(SetWindowLong(hWnd,GWL_WNDPROC,LongInt(@WindowProc)));
    HandleList:= Item;
  end;
end;

function CallWndProc(Code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT;
  stdcall;
var
  ClassName: array[0..16] of Char;
begin
  if Code = HC_ACTION then
    if Injected then
    begin
      FillChar(ClassName,Sizeof(ClassName),0);
      if GetClassName(PCWPStruct(lParam).hwnd,@ClassName,Sizeof(ClassName)-1) > 0 then
        if StrIComp(ClassName,'Link Window') = 0 then
        begin
          HookWindow(PCWPStruct(lParam).hwnd);
        end;
    end;
  Result := CallNextHookEx(Shared^.Hook, Code, wParam, lParam);
end;

procedure StartHook; stdcall;
begin
  if Shared <> nil then
  begin
    WaitForSingleObject(Mutex, INFINITE);
    try
      with Shared^ do
      begin
        if Hook = 0 then
          Hook := SetWindowsHookEx(WH_CALLWNDPROC, @CallWndProc, HInstance, 0);
      end;
    finally
      ReleaseMutex(Mutex);
    end;
  end;
end;

procedure StopHook; stdcall;
begin
  if Shared <> nil then
  begin
    WaitForSingleObject(Mutex, INFINITE);
    try
      with Shared^ do
      begin
        if Hook <> 0 then
        begin
          UnhookWindowsHookEx(Hook);
          Hook := 0;
        end;
      end;
    finally
      ReleaseMutex(Mutex);
    end;
  end;
end;

procedure Inject;
var
  Process: THandle;
  ModName: array[0..MAX_PATH] of Char;
  Target: array[0..MAX_PATH] of Char;
begin
  Injected:= FALSE;
  Process := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE,
    GetCurrentProcessId);
  if Process <> 0 then
  begin
    if GetModuleFileNameEx(Process, 0, ModName,sizeof(ModName)-1) > 0  then
    begin
      FillChar(Target,Sizeof(Target),#0);
      GetSystemDirectory(@Target,Sizeof(Target)-1);
      StrLCat(Target,'\rundll32.exe',Sizeof(Target)-1);
      OutputDebugString(Target);
      if StrIComp(Target,ModName) = 0 then
      begin
        // Un pequeño pitido nos avisa de que no hemos infiltrado
        Windows.Beep(500,100);
        HandleList:= nil;
        Injected:= TRUE;
      end;
    end;
    CloseHandle(Process);
  end;
end;

procedure Attach; stdcall;
var
  isNew: boolean;
begin
  Mutex := CreateMutex(nil, True, '{92366DA1-4F66-472D-BE12-65F0993F62AC}');
  try
    Mem := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, SizeOf(TShared),
      '{D1A38D62-9FAB-4298-A358-579D2D286E40}');
    isNew := GetLastError() = 0;
    if Mem <> 0 then
      Shared := MapViewOfFile(Mem, FILE_MAP_WRITE, 0, 0, 0)
    else
      Shared := nil;
    if Shared <> nil then
      if isNew then
        with Shared^ do
        begin
          Hook := 0;
          AttachCount := 1;
        end
      else
        inc(Shared^.AttachCount);
  finally
    ReleaseMutex(Mutex);
  end;
  // Aqui viene la inyeccion
  Inject;
end;

procedure UnHookWindows(Item: PItem);
begin
  if Item <> nil then
  begin
    UnHookWindows(Item.Next);
    SetWindowLong(Item.hWnd,GWL_WNDPROC,LongInt(Item.WndProc));
    FreeMem(Item);
  end;
end;

procedure Detach; stdcall;
begin
  WaitForSingleObject(Mutex, INFINITE);
  try
    if (Shared <> nil) then
      dec(Shared^.AttachCount);
  finally
    ReleaseMutex(Mutex);
  end;
  if (Shared <> nil) then
    if Shared^.AttachCount <= 0 then
    begin
      StopHook;
      UnmapViewOfFile(Shared);
      CloseHandle(Mem);
      CloseHandle(Mutex);
    end;
  if Injected then
    UnHookWindows(HandleList);
end;

procedure DLLEntryPoint(Reason: integer);
begin
  case Reason of
    Dll_Process_Detach: Detach;
    Dll_Process_Attach: Attach;
  end;
end;

exports
  StartHook,
  StopHook;

begin
  Attach;
  DLLProc:= @DLLEntryPoint;
end.
Exporta dos funciones StartHook y StopHook llamar la primera para activar y la segunda para desactivar el Hook.

PD: Espero que esto sirva para que la gente deje de preguntar por el .zip con el programa. Creo que el código es suficiente para aquellos que quieren saber como funciona, y mantendrá alejados a los que solo quieren gastar una broma a un ¿amigo? :D

Saindoft 04-11-2008 01:45:34

amigos es lo que sobra en el foro
 
gracias seoane por editar lo que todos esperabamos con tantas
ansias, ........... amigos es lo que sobra en este foro..............,
y espero que como bien tu dices este codigo no sea utilizado
maliciosamente abusando de las buenas intenciones de personas como tu.:)

JHONYBLUU 28-02-2009 21:43:11

El Mismo Problema De La Ram
 
Hola Seaone Quisiera Q Me Ayudes Con El Mismo Problema De Namaris Quiero Hacer Exacatamente Lo Mismo Doblar La Memeoria Ram De 1g A 2g Pero Intente Entrar En Los Enlaces Y Ya No Funcionan Por Si Me Ayudaras Te Lo Agradeceria Mucho

zorrollon 08-06-2010 13:15:48

Ayuda, por favor.. alguien podria poner el codigo fuente de la aplicacion.. porfavor. tengo horas... tratando y no puedo.. porfa porfa porfa

Neftali [Germán.Estévez] 08-06-2010 14:07:58

Pues si nome equivoco lo tienes un par de post más arriba. :confused:

zorrollon 08-06-2010 18:18:28

pero ese es el codigo del dll no ?... y me parece hay que hacer un .dll y un .exe no ?...

emtec 14-07-2010 03:15:05

Saludos
 
Hola soy nuevo en este foro y los felicito por los temas tan novedososy buenos que manejan aqui,
Me quiero dirigir especialente a seoane, comienzo enviandote mis felicitaciones por tus aportaciones tan interesantes lav erdad tienes un muy buen nivel de programacion por lo que veo. al abordar este tema entoiendo los proc y sobretodo loscontras ya que se puede malintepretar, ya que puede ser usado de mala manera, lo cual se que hay gente que es maliciosa y solo hackea l oque pueda, en mi caso Soy ing tambien, me interesa mucho lacreacion de software y hardware lo cual este tema en especifico ha coincidido con unos problemas que tengo al inyectar a windows unos datos, al ver com oresolviste el problema meimpresiono laverdad no meconsidero un master en delphi lo manejo pero no asi y me interesomuchisimo tu propuesta de tu exe y tu dll, este es mi primer post y quisiera que me pudieras auxiliar enviandome el dll y el exe para cotejarlos, estudiarlos y aplicarlos para un frame que estoy diseñando, lamentablemente el link que has puesto no sirve, seria de mucha ayuda que me pudieras auxiliar enviandomelo a mi correo que es emos530@hotmail.com y te enviare mis avances para compartirlos con vos, me es muy interesante poder manipular las entrañas de windows por ello este tema me parecio el idel para mis propositos y sobretodo muy bueno, estamos encontacto espero tu respuesta:o

zorrollon 14-07-2010 03:22:35

Cita:

Empezado por emtec (Mensaje 370299)
Hola soy nuevo en este foro y los felicito por los temas tan novedososy buenos que manejan aqui,
Me quiero dirigir especialente a seoane, comienzo enviandote mis felicitaciones por tus aportaciones tan interesantes lav erdad tienes un muy buen nivel de programacion por lo que veo. al abordar este tema entoiendo los proc y sobretodo loscontras ya que se puede malintepretar, ya que puede ser usado de mala manera, lo cual se que hay gente que es maliciosa y solo hackea l oque pueda, en mi caso Soy ing tambien, me interesa mucho lacreacion de software y hardware lo cual este tema en especifico ha coincidido con unos problemas que tengo al inyectar a windows unos datos, al ver com oresolviste el problema meimpresiono laverdad no meconsidero un master en delphi lo manejo pero no asi y me interesomuchisimo tu propuesta de tu exe y tu dll, este es mi primer post y quisiera que me pudieras auxiliar enviandome el dll y el exe para cotejarlos, estudiarlos y aplicarlos para un frame que estoy diseñando, lamentablemente el link que has puesto no sirve, seria de mucha ayuda que me pudieras auxiliar enviandomelo a mi correo que es y te enviare mis avances para compartirlos con vos, me es muy interesante poder manipular las entrañas de windows por ello este tema me parecio el idel para mis propositos y sobretodo muy bueno, estamos encontacto espero tu respuesta



El codigo fuente del dll esta mas arriba ,del exe, nada.. y ayuda.. por aqui ni pidas... pues aunque los que saben, no hacen favor de compilar el exe, me parece que lo hacen mas por un asunto de exclusividad, que por seguridad, pero enfin... parece ser este post lo tienen olvidado., siguele buscando la respuesta esta cerca, el dll trabaja, simplemente falta el ejecutable que lo arranque de inicio.

Saludos.

Neftali [Germán.Estévez] 14-07-2010 12:37:27

Cita:

Empezado por zorrollon (Mensaje 370302)
El codigo fuente del dll esta mas arriba ,del exe, nada.. y ayuda.. por aqui ni pidas... pues aunque los que saben, no hacen favor de compilar el exe, me parece que lo hacen mas por un asunto de exclusividad, que por seguridad, pero enfin...

Pues no van por ahí las cosas.

Lo que "molesta" un poco por aquí, es la gente que pregunta sin ni siquiera haberse molestado en buscar, los que piden sin ni siquiera haberse molestado en probar y un poco más, los que con 3 mensajes se permiten escribir cosas como las que has escrito tú.

El código de la DLL está más arriba. Para hacer un EXE que llame a las dos funciones, basta con un par de botones y 1 línea en cada uno. Si buscas en los foros hay muchos mensajes sobre DLL's y si buscas en internet muchos más. Posíblemente lo encontrarás en menos tiempo de lo que has tardado en escribir esa "sandez" de mensaje, pero supongo que es más fácil pedir que se lo den a uno todo hecho... :(:(:(

Pero nada, es más fácil que te demos el proyecto hecho, el código de la DLL, te lo compilamos y si quieres te hago un icono y te escribo la ayuda.
¿Quieres que te generemos el instalador, también?

escafandra 14-07-2010 16:02:31

Muy cierto lo que apunta Neftali.

La sensación que trasmiten estas últimas peticiones, es requerir código a la desesperada en un tema que puede resultar un tanto delicado y que, por otra parte, cualquier programador mediano puede solucionar con facilidad.

No se si esa ansiedad es por el uso que se le pueda dar a dicho código, o por colgarse alguna inmerecida medalla... ¿Que mérito tiene el uso de un código que no se entiende en absoluto y que no se sabe como usar?:rolleyes:.

Este foro, como otros tantos, está lleno de usuario que ayudan sin esperar nada a cambio, solo con pasearse un rato por cualquier hilo se puede percibir.:D

Saludos.

zorrollon 15-07-2010 01:18:16

p1nche metiche
 
Cita:

Empezado por Neftali (Mensaje 370337)
Pues no van por ahí las cosas.

Lo que "molesta" un poco por aquí, es la gente que pregunta sin ni siquiera haberse molestado en buscar, los que piden sin ni siquiera haberse molestado en probar y un poco más, los que con 3 mensajes se permiten escribir cosas como las que has escrito tú.

El código de la DLL está más arriba. Para hacer un EXE que llame a las dos funciones, basta con un par de botones y 1 línea en cada uno. Si buscas en los foros hay muchos mensajes sobre DLL's y si buscas en internet muchos más. Posíblemente lo encontrarás en menos tiempo de lo que has tardado en escribir esa "sandez" de mensaje, pero supongo que es más fácil pedir que se lo den a uno todo hecho...

Pero nada, es más fácil que te demos el proyecto hecho, el código de la DLL, te lo compilamos y si quieres te hago un icono y te escribo la ayuda.
¿Quieres que te generemos el instalador, también?


Dios... tienes razon... con tu comentario me haz hecho reflexionar.... cambiare mi forma de escribir en el foro.... es mas cambiare de vida.. dejare de fumar.. de beber... para poder volverme un dios programador,forero,critico indiscutible,sabelotodo,como tu, jajajaja.... p1nche metiche. si no vas a ayudar a resolver las peticiones que no solo yo,si no varios usuarios del foro estamos haciendo en este post, no te metas a llenar el tema de basura. de igual manera,Gracias por tu comentario.

Neftali [Germán.Estévez] 15-07-2010 11:47:45

Cita:

Empezado por zorrollon (Mensaje 370426)
con tu comentario me haz hecho reflexionar.... cambiare mi forma de escribir en el foro...

En cuanto a lo demás "me la suda", pero si no cambias esto, te auguro poco futuro en este foro, ya te lo digo.


La franja horaria es GMT +2. Ahora son las 05:53:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi