Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с прехватом API и оперой 
:(
    Опции темы
artful
  Дата 17.9.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 17.9.2007

Репутация: нет
Всего: нет



Скажите почему при перехвате апи с библиотеки WinSock перехват осуществляется великолепно в браузерах мазила и эксплорер но опера не подчиняется этому перехвату... неужели она не использует винсок? Помогите решить проблему...

Код

library newsock;
{$R *.res}

uses
  windows,winsock,Classes,SysUtils,dialogs;

type
 OldCode = packed record
  One: dword;
  two: word;
 end;

far_jmp = packed record
  PuhsOp: byte;
  PushArg: pointer;
  RetOp: byte;
 end;
 

var
JmpSend: far_jmp;
OldSend: OldCode;
SendAdr: pointer;
 
function newsend(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
var
 Written: dword;

begin

WriteProcessMemory(INVALID_HANDLE_VALUE, SendAdr,@OldSend, SizeOf(OldCode), Written);
ShowMessage('test');
Result := send(s,Buf,len, flags);
WriteProcessMemory(INVALID_HANDLE_VALUE, SendAdr,@JmpSend, SizeOf(far_jmp), Written);
end;

Procedure SetHook();
var
 hwsock32: dword;
 Bytes: dword;
begin
try
  hwsock32 := GetModuleHandle('wsock32.dll');// использование библиотеки WS2_32.dll ни к чему не привело
  SendAdr  := GetProcAddress(hwsock32, 'send');


   ReadProcessMemory(INVALID_HANDLE_VALUE, SendAdr, @OldSend, SizeOf(OldCode), Bytes);
  JmpSend.PuhsOp  := $68;
  JmpSend.PushArg := @newsend;
  JmpSend.RetOp   := $C3;
  WriteProcessMemory(INVALID_HANDLE_VALUE, SendAdr, @JmpSend, SizeOf(far_jmp), Bytes);

except end;
end;

Procedure Unhook();
var
 Bytes: dword;
begin
try

  WriteProcessMemory(INVALID_HANDLE_VALUE, SendAdr, @OldSend, SizeOf(OldCode), Bytes);

  except end;
end;


Function MessageProc(code : integer; wParam : word;
                    lParam : longint) : longint; stdcall;
begin
 CallNextHookEx(0, Code, wParam, lparam);
 Result := 0;
end;

Procedure SetGlobalHookProc();
begin
try
 SetWindowsHookEx(WH_GETMESSAGE, @MessageProc, HInstance, 0);
 Sleep(INFINITE);
 except end;
end;

Procedure SetGlobalHook;
var
 hMutex: dword;
 TrId: dword;
begin
try
 hMutex := CreateMutex(nil, false, 'DigitalHook');
 if GetLastError = 0 then
 CreateThread(nil, 0, @SetGlobalHookProc, nil, 0, TrId) else
 CloseHandle(hMutex);
 except end;
end;


procedure DLLEntryPoint(dwReason: DWord);
begin
try
  case dwReason of
    DLL_PROCESS_ATTACH: begin
                          SetGlobalHook;
                          SetHook;
                        end;
    DLL_PROCESS_DETACH: UnHook;
  end;
 except end;
end;


begin
 DllProc := @DLLEntryPoint;
 DLLEntryPoint(DLL_PROCESS_ATTACH);
end.

PM MAIL ICQ   Вверх
dumb
Дата 17.9.2007, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



потому что опера не использует send. она использует WSASend.
PM MAIL   Вверх
artful
Дата 17.9.2007, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 17.9.2007

Репутация: нет
Всего: нет



Большое спосибо  smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0533 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.