![]() |
|
#1
|
||||
|
||||
![]() Реализую через перехват API (пока только WSARecv). Нужно просто заменить входящий траффик на нужный мне.
Код:
function NewRecv(s: TSocket; lpBuffers: LPWSABUF; dwBufferCount: DWORD; var lpNumberOfBytesRecvd: DWORD; dwFlags: DWORD; lpOverlapped: LPWSAOVERLAPPED;lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): Integer; stdcall; var W: DWORD; Buffer: string; begin ... Result := ... {Тут вызываю оригинальную функцию} asm Pushad end; Buffer:=Buffer+copy(lpBuffers.buf, 0, Length(lpBuffers.buf)); if MyPage(Buffer) then {Проверка, нужная ли страница для подмены} begin Buffer:='<b>Test Text</b>'; lpBuffers.buf:=PChar(Buffer); end; ... asm Popad end; end; Gravitas |
#2
|
||||
|
||||
![]() Ответ желателен бы как можно скорее...
Gravitas |