HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Асинхронный режим в WinInet
  #1  
Старый 03.01.2009, 20:01
JuliaSmit
Новичок
Регистрация: 21.12.2007
Сообщений: 10
С нами: 9679037

Репутация: 12
По умолчанию Асинхронный режим в WinInet

Ну собственно хотелось бы наглядно понять что это такое асинхронный режим и с чем его едять. Ну и проблема вот такого рода у меня необходимо считать данные при перехвате функции InternetReadFileEx делаю так.

Код:
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. С Новым Годом...

Последний раз редактировалось JuliaSmit; 03.01.2009 в 20:03..
 
Ответить с цитированием

  #2  
Старый 04.01.2009, 17:55
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
С нами: 9679872

Репутация: 347
По умолчанию

попробуй так
Код:
BlockWrite(F,Rec^.lpvBuffer^,Rec^.dwBufferLength);
Если не помогло то укажи пожалуйста как у тебя описана структура PInternetBuffers

Последний раз редактировалось bons; 04.01.2009 в 17:57..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблемка с wininet _nic С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 4 26.12.2008 18:21
Не могу перевести сокет в режим promiscuous xismyname С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 19 25.12.2008 04:33
режим "promisc mode" ()leg Защита ОС: вирусы, антивирусы, файрволы. 5 13.02.2007 11:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.