Перехватить InternetReadFile

Тема в разделе "WASM.BEGINNERS", создана пользователем nuclearpartizan, 1 фев 2007.

  1. nuclearpartizan

    nuclearpartizan New Member

    Публикаций:
    0
    Регистрация:
    1 фев 2007
    Сообщения:
    12
    Использую модуль мс-рема advApiHook.

    Задача перехватить и изменить данные (html страницы), которые получает Internet Explorer.

    Делаю так:

    Код (Text):
    1. library tt;
    2.  
    3. uses
    4. windows,wininet,advApiHook;
    5.  
    6. var
    7. f1 : textfile;
    8.  
    9. TrueInternetReadFile: function (hfile:pointer;lpBuffer:pointer; dwNumberofBytestoread:cardinal;var lpdwnumberofbytesRead:cardinal):longbool; stdcall;
    10.  
    11. function NewInternetReadFile(hfile:pointer;lpBuffer:pointer; dwNumberofBytestoread:cardinal;var lpdwnumberofbytesRead:cardinal):longbool; stdcall;
    12. begin
    13. assignfile(f1, 'c:\test.txt');
    14. append(f1);
    15. writeln(f1, pchar(lpBuffer));
    16. closefile(f1);
    17.  
    18. Result := TrueInternetReadFile(hfile,@lpBuffer, dwNumberofBytestoread, lpdwnumberofbytesRead);
    19. end;
    20.  
    21. begin
    22. HookProc('wininet.dll', 'InternetReadFile', @NewInternetReadFile, @TrueInternetReadFile);
    23. end.
    Но в лог пишется только последние пакеты, как я понимаю, или вобще ничего не пишется.
    Где тут ошибка? и в каком направлении надо копать?
     
  2. Sickle

    Sickle New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2003
    Сообщения:
    181
    TrueInternetReadFile нужно выполнить до записи в лог
     
  3. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    если перехватываешь в контектсте експлорера, то учти еще то факт, что там winInet-фции вызываются в асинхронном режиме