Приветсвую!!! Подскажите можно ли инжектировать целый ЕХЕ бьюсь с этим вопросом какой уже день! Вот что мне нужно есть 1.exe есть 2.exe я их пихаю в 3.exe := 1.exe + 2.exe. Потом при запуске 3.exe запускается 1.exe и читает из файла в память (допустим в TStream) 2.exe можно как нить его выполнить не сохраняя на винте... Заранее благодарен!
Вот что я нашел на данном сайте бьюсь а раюботать не хочет, может у меня не хватает знаний чтобы в этом разобраться... function InjectExe(Process: dword; Data: pointer): boolean; var Module, NewModule: pointer; EntryPoint: pointer; Size, TID: dword; hThread : dword; BytesWritten: dword; Header: PImageOptionalHeader; begin Result := False; Header := PImageOptionalHeader(pointer(integer(Data) + PImageDosHeader(Data)._lfanew + SizeOf(dword) + SizeOf(TImageFileHeader))); Size := Header^.SizeOfImage; Module := pointer(Header^.ImageBase); EntryPoint := pointer(Header^.ImageBase + Header^.AddressOfEntryPoint); NewModule := VirtualAllocEx(Process, Module, Size, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE); if NewModule = nil then exit; WriteProcessMemory(Process, NewModule, Module, Size, BytesWritten); hThread := CreateRemoteThread(Process, nil, 0, EntryPoint, NewModule, 0, TID); if hThread <> 0 then Result := True; end;
Ок почитаю... Попробую, у меня была такая идея...Ведь как то винда должна же грузить exe из файла в память, тоже самое надо попробывать... Благодарен