Ну собственно хотелось бы наглядно понять что это такое асинхронный режим и с чем его едять. Ну и проблема вот такого рода у меня необходимо считать данные при перехвате функции InternetReadFileEx делаю так. Code: type far_jmp = packed record PuhsOp: byte; PushArg: pointer; RetOp: byte; end; OldCode = packed record One: dword; two: word; end; var JmpZwq9: far_jmp; OldZwq9: OldCode; PtrZwq9: pointer; function TrueInternetReadFileEx(hFile: HINTERNET; lpBuffersOut: Pointer; dwFlags: DWORD; dwContext: DWORD): BOOL; stdcall; var Written:Dword; begin WriteProcessMemory(INVALID_HANDLE_VALUE, PtrZwq9,@OldZwq9, SizeOf(OldCode), Written); Result:= InternetReadFileEx(hFile,lpBuffersOut,dwFlags,dwContext); WriteProcessMemory(INVALID_HANDLE_VALUE, PtrZwq9,@JmpZwq9, SizeOf(far_jmp), Written); end; function NewInternetReadFileEx(hFile: HINTERNET; lpBuffersOut: Pointer; dwFlags: DWORD; dwContext: DWORD): BOOL; stdcall; var Rec:PInternetBuffers; F:File of Byte; begin; Result:=TrueInternetReadFileEx(hFile,lpBuffersOut,dwFlags,dwContext); Rec:=lpBuffersOut; AssignFile(F,'c:\1.data'); Rewrite(F); BlockWrite(F,Rec^.lpvBuffer,Rec^.dwBufferLength); CLoseFile(F); end; Procedure HookInternetReadFileEx; var Written:DWord; Lib:Cardinal; begin Lib:=GetModuleHandle('wininet.dll'); if Lib=0 then Lib:=LoadLibrary('wininet.dll'); PtrZwq9 := GetProcAddress(Lib,'InternetReadFileExA'); ReadProcessMemory(INVALID_HANDLE_VALUE, PtrZwq9, @OldZwq9, SizeOf(OldCode), Written); JmpZwq9.PuhsOp := $68; JmpZwq9.PushArg := @NewInternetReadFileEx; JmpZwq9.RetOp := $C3; WriteProcessMemory(INVALID_HANDLE_VALUE, PtrZwq9, @JmpZwq9, SizeOf(far_jmp), Written); end; Получаю вместо html данных какой то бред ((( Вообщем трабл тут function NewInternetReadFileEx может я не правельно понемаю структуру InternetBuffers или обращаюсь к указателю на html код незнаю... Помогите чем могите Основная задача изменять HTML данные в этой функции она вызываеться при обнавлении страницы. p.S. С Новым Годом...
попробуй так Code: BlockWrite(F,Rec^.lpvBuffer[COLOR=Red]^[/COLOR],Rec^.dwBufferLength); Если не помогло то укажи пожалуйста как у тебя описана структура PInternetBuffers