Hace 6 años | Por --541279-- a muyseguridad.net
Publicado hace 6 años por --541279-- a muyseguridad.net

[...] Google ha anunciado que impedirá a las aplicaciones procedentes de terceros el inyectar código en la versión de Chrome para Windows. [...] Chris Hamilton, del Equipo de Estabilidad (Stability Team) de Chrome, ha comentado que alrededor de dos tercios de los usuarios de Chrome para Windows tienen aplicaciones que inyectan código en los procesos del navegador, añadiendo además a eso que “los usuarios que inyectan código en Chrome para Windows tienen un 15% más de probabilidades de padecer bloqueos.

Comentarios

D

#5
Me autocontesto. Está escrito en Delphi.

ArdiIIa

#6 Si nos ponemos finos, es Object Pascal.

D

#8
Pues continuando con la finura, Linux también permite inyectar código. Con ptrace lo puedes hacer.
Pero puedes configurar un LSM para bloquear dicha opción.

ArdiIIa

Windows es tan tan inseguro, que tengo serias dudas de que Chrome impida nada en ese sentido.
Pongo un fragmento... de código que puse hace un porrón de años por si alguien le interesa:

program Inyector_Proceso;



uses
Windows,SysUtils,Messages;

const
CM_MANDA_TECLA = WM_USER + $1000;
CM_MANDA_SHOW = WM_USER + $1001;


function Main(dwEntryPoint: Pointer): longword; stdcall;
Var Zeta : String;
Msg : TMsg;
Procedure M_Tecla;
Begin
MessageBox(0, 'Esto Funciona de Maravilla, MARAVILLOSAMENTE', 'M_Tecla', 0);
End;

Procedure M_Show;
Begin
Zeta := 'Esto Form ha sido llamado mediante el envio de un mensaje y cerramos el proceso';
MessageBox(0, PChar(Zeta), 'M_Show', 0);
End;
begin
//si en vez de ExitThread, ponemos ExitProcess, no solo nos descargaria el archivo
//si no que también terminaría el proceso en el que estamos inyectados


while GetMessage(Msg,0,0,0) do
begin
Case MSg.message Of
CM_MANDA_SHOW:
M_Show;
CM_MANDA_TECLA:
Begin
M_Tecla;
ExitProcess(0);
End;
End; //Case
End; //While
// ExitThread(0);
ExitProcess(0);
Result := 0;
//PostThreadMessage
end;

procedure Inject(ProcessHandle: longword; EntryPoint: pointer);
var
Module, NewModule: Pointer;
Size, BytesWritten, TID: longword;
begin
Module := Pointer(GetModuleHandle(nil));
Size := PImageOptionalHeader(Pointer(integer(Module) + PImageDosHeader(Module)._lfanew + SizeOf(dword) + SizeOf(TImageFileHeader))).SizeOfImage;
VirtualFreeEx(ProcessHandle, Module, 0, MEM_RELEASE);
NewModule := VirtualAllocEx(ProcessHandle, Module, Size, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(ProcessHandle, NewModule, Module, Size, BytesWritten);
CreateRemoteThread(ProcessHandle, nil, 0, EntryPoint, Module, 0, TID);
Sleep(2000);
MessageBox(0, 'Mando Mensaje CM_MANDA_SHOW', 'Inject', 0);
PostThreadMessage(TID,CM_MANDA_SHOW,0,0);
Sleep(5000);
PostThreadMessage(TID,CM_MANDA_TECLA,0,0);
end;

var
ProcessHandle, PID: longword;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;

begin

CreateProcess(nil, 'notepad', nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo);

Sleep(500);

GetWindowThreadProcessId(FindWindow('Notepad', nil),@PID);
ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, PID);
Inject(ProcessHandle,@Main);
CloseHandle(ProcessHandle);

end.

D

#3 Ok me has convencido.

D

#3
¿En COBOL?

Shotokax

Me encanta el matiz de "por parte de terceros".

Para que Google ni ninguna otra empresa te espíe utiliza un navegador libre. Si te gusta Chrome utiliza Iron, que es un mod libre que respeta tu privacidad:

https://es.wikipedia.org/wiki/SRWare_Iron

sorrillo

Sería más realista afirmar que lo intentarán, que lo consigan no depende exclusivamente de ellos.

Kantinero

Google dando lecciones de intrusismo....