Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Leer recurso y injectarlo (https://www.clubdelphi.com/foros/showthread.php?t=93255)

MacStreet 03-07-2018 04:42:07

Leer recurso y injectarlo
 
Saludos amigos !

Quisiera leer un recurso y injectarlo a un proceso "notepad.exe" he estado revisando algunos ejemplos en google y no he encontrado alguno que me ayudé.
Hasta ahora tengo algo avanzado y no me funciona.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
ResourceLocation := FindResource(HInstance, pchar('RES'), RT_RCDATA); // if ResourceLocation <> 0 then
begin
ResourceSize := SizeofResource(HInstance, ResourceLocation);
if ResourceSize <> 0 then
begin
ResourceHandle := LoadResource(HInstance, ResourceLocation);
if ResourceHandle <> 0 then
begin
ResourcePointer := LockResource(ResourceHandle);
if ResourcePointer <> nil then;
InjectDLL(pchar('notepad.exe'),ResourcePointer);
end;
end;
end;
end;
Yo solo deseo leer el dll mas no guardarlo, espero que me puedan ayudar, muchas gracias

Ñuño Martínez 06-07-2018 13:58:41

Pero, exactamente, ¿qué quieres hacer?

movorack 06-07-2018 15:19:17

Jaquiar un juego de fijo

MacStreet 06-07-2018 20:36:55

Jackiar? no es hackear con exactitud.
Lo que deseo hacer es leer el recurso y injectarlo a un proceso.

Ñuño Martínez 10-07-2018 13:54:57

Ya, pero ¿qué resultado quieres conseguir? Lo digo porque "inyectar un recurso" es muy genérico, aparte de que no sé hasta qué punto es posible (dependerá del tipo de recurso) y posiblemente haya formas más simples (yo he cambiado recursos incrustados en un exe sin mucho problema :rolleyes:).

rastafarey 14-07-2018 22:49:39

Resp
 
Explica completo, no tengas pena de decir que hackear lo que sea, eso es tu peo que quieres hackear y en que problemas te metes, echa el cuento completo, que si te explicas bien sin que nosotros tengamos que adivinar lo que quieres decir, es mas fácil poder ayudarte.

MacStreet 18-07-2018 02:24:18

Que podria ocultar, si estoy haciendo una injeccion.
En lo que yo deseo que me ayuden es en lo siguiente :
Poder leer el recurso en memoria sin estar guardandolo en algun lugar .

Resource := TResourceStream.Create(MainInstance,'RES',RT_RCDATA);
Resource.SaveToFile('C:\MYDLL.dll');
Resource.Free;

En vez de guardarlo yo quisiera que al momento de injectarlo, lo lea. directamente en memoria no sé si me dejo entender.

Casimiro Notevi 18-07-2018 10:23:24

No olvides poner las etiquetas al código fuente, gracias.
Ejemplo:


Ñuño Martínez 19-07-2018 14:28:56

A ver si me entero.

Quieres que un programa que ya está ejecutándose use un recurso que le pones tú directamente en la memoria. ¿Es eso?

Pues si es así, me temo que no es posible. O si lo es es muy complicado (casi seguro que habría que hackear el kernel o casi). Cuando un proceso "usa" un recurso lo que hace es pedírselo a Windows, este lo lee del archivo y le pasa al proceso el puntero al dato. Una vez en memoria no puede identificarse desde fuera del propio proceso, ya que los recursos no suelen tener una firma una vez cargado y evidentemente su ubicación en memoria no es fijo. Es decir, que los recursos no se cargan junto con el programa y se colocan en memoria para que los use el programa, sino que se cargan cuando se necesitan.


La franja horaria es GMT +2. Ahora son las 12:54:37.

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