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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hook! Перехват клавы! 
:(
    Опции темы
Pavlo
  Дата 8.7.2002, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вы меня извените, что задаю вопрос, который тут уже не раз обсуждался!
Я искал по всему нету хоть один рабочий пример keylog'a, но всё напрасно!
В каждом из примеров есть какой либо глюк, который вывести сложно!
По сему поводу попросил бы вас кинуть в меня хоть какой рабочий пример проги по сабжу. Но тока с формой и всеми делами! Я имею введу весь проект!

Киньте плз туда-> [email protected]

Спасибо!
PM MAIL   Вверх
Pavlo
Дата 8.7.2002, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот тут есть один пример, который работает, но он не даёт печатать текст там где надо!

Сами увидите!


library KeyHook;

uses
 shellapi,
 windows;

var
g_hhk: HHOOK;

function KeyboardProc(nCode: Integer; wParam: wParam; lParam: lParam ): LParam; stdcall;
var
f:textfile;
begin
assignfile(f, 'c:\hook.txt');
{try}
 append(f);
{except
 rewrite(f);
end;        }
writeln(f, nCode,',',wParam,',',lParam);
close(f);
end;

exports
KeyboardProc;
begin
end.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 hinstDLL: HINST;
 hkprcKeyboard: TFNHookProc;
 msg: TMsg;
begin
 hinstDLL := LoadLibrary('KeyHook.dll');
 hkprcKeyboard := GetProcAddress(hinstDLL, 'KeyboardProc');
 SetWindowsHookEx(WH_KEYBOARD, hkprcKeyboard, hinstDLL, 0);
end;

end.
PM MAIL   Вверх
Pavlo
Дата 8.7.2002, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А тут что не так?





  {текст библиотеки}
library SendKey;
uses
 WinTypes,
 WinProcs,
 Messages;

const
{пользовательские сообщения}
wm_NextShow_Event = wm_User + 133;
wm_PrevShow_Event = wm_User + 134;
{handle для ловушки}


var
SaveExitProc : Pointer;
HookHandle: hHook;
{собственно ловушка}
function Key_Hook(Code: integer; wParam: word; lParam: Longint): Longint; export;
var f:textfile;
H: HWND;
begin
{если Code> =0, то ловушка может обработать событие}
if Code >= 0 then
begin
  {это те клавиши?}
  if ((wParam = VK_ADD)or(wParam = VK_SUBTRACT)) and (lParam and $40000000 = 0)
  then begin
    {ищем окно по имени класса и по заголовку}
    H := FindWindow('TForm1', 'XXX');
    {посылаем сообщение}
    if wParam = VK_ADD then
       begin
         SendMessage(H, wm_NextShow_Event, 0, 0);
         assignfile(f,'hook.txt');
         rewrite(f);
         writeln(f,code,lparam,wparam);
       end
    else
      SendMessage(H, wm_PrevShow_Event, 0, 0);
  end;
 {если 0, то система должна дальше обработать это событие}
 {если 1 - нет}
 Result:=0;
end
else
  {если Code< 0, то нужно вызвать следующую ловушку}
  Result := CallNextHookEx(HookHandle,Code, wParam, lParam);
end;

{при выгрузке DLL надо снять ловушку}
procedure LocalExitProc; far;
begin
if HookHandle<> 0 then
begin
  UnhookWindowsHookEx(HookHandle);
  ExitProc := SaveExitProc;
end;
end;

exports
 Key_Hook index 1;


{инициализация DLL при загрузке ее в память}
begin
{устанавливаем ловушку}
HookHandle:=SetWindowsHookEx(wh_Keyboard, @Key_Hook, hInstance, 0);
if HookHandle = 0 then
  MessageBox(0, 'Unable to set hook!', 'Error', mb_Ok)
else begin
 SaveExitProc := ExitProc;
 ExitProc := @LocalExitProc;
end;
end.




unit Unit1;
interface
uses
SysUtils,WinTypes,WinProcs,Messages,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;

{пользовательские сообщения}
const
wm_NextShow_Event = wm_User + 133;
wm_PrevShow_Event = wm_User + 134;

type
 TForm1 = class(TForm)
   Label1: TLabel;
   Edit1: TEdit;
   procedure FormActivate(Sender: TObject);
 private
{обработчики сообщений}
   procedure NextMSG (Var M : TMessage); message wm_NextShow_Event;
   procedure PrevMSG (Var M : TMessage); message wm_PrevShow_Event;
 end;

var Form1:TForm1;
   P:Pointer;
   dll:THandle;

implementation
{$R *.DFM}

{загрузка DLL}
function Key_Hook : Longint; far; external 'SendKey' index 1;

procedure TForm1.NextMSG(Var M : TMessage);
begin
 edit1.text:='Next message';
end;

procedure TForm1.PrevMSG(Var M : TMessage);
begin
 edit1.text:='Previous message';
end;

procedure TForm1.FormActivate(Sender: TObject);
var z:integer;
begin
 {DLL := LoadLibrary('sendKey.dll');
 z:=Key_Hook;
 form1.edit1.text:=inttostr(z)+'dddddddddd';
 {если не использовать вызов процедуры из DLL в программе,
  то компилятор удалит загрузку DLL из программы}
 P:=@Key_Hook;
end;

end.



Форму надо обозвать XXX
PM MAIL   Вверх
RA
Дата 9.7.2002, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



Давай я тебе на мыло скину пример.
PM   Вверх
Pavlo
Дата 9.7.2002, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Если можно, пожалуйста!
PM MAIL   Вверх
RA
Дата 9.7.2002, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



Sending ......
PM   Вверх
Pavlo
Дата 9.7.2002, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



[email protected]
Пиши!!!
PM MAIL   Вверх
Mikel
Дата 9.7.2002, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

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



А мой архивчик не понравился? :dg


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Pavlo
Дата 9.7.2002, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Очень понравился!!!!
Просто тему надо поддержать!!!
PM MAIL   Вверх
Vit
Дата 9.7.2002, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



А что за архивчик?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Mikel
Дата 10.7.2002, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

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



Нехороший архивчик- исходники проги, "одалживающий" пароль интернет. Я там отправку на мыло до конца не доделал. И ещё: она прячется, когда висит окно с сведениями о системе(там можно увидить активные ловушки)


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Pavlo
Дата 10.7.2002, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Мне не интересна ловля паролей!!!! Мне просто нужен модуль для ловли клавиш, причём не только английской раскладки.
Если есть идеи...
PM MAIL   Вверх
RA
Дата 10.7.2002, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

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



павло чего тебе ещё надо яж тебе пример выслал.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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