[delphi]SetWindowsHookExA函数入口处修改

library Project2;

uses
  SysUtils,
  Classes,
  windows,
  Dialogs;
{$R *.res}

function GetModuleHandleA(a: string): Integer; stdcall; external 'kernel32.dll'
{取程序或DLL句柄
a:DLL名
}

function GetProcAddress(a: integer; b: string): Integer; stdcall; external 'kernel32.dll'
{取DLL函数地址
 a:模块句柄
 b:函数名
}

function GetCurrentProcess: Integer; stdcall; external 'kernel32.dll'
{取伪句柄
}


function Test11(aa: string): string;
begin

  Result := aa;
end;
var
  b: array[1..3] of byte = ($C2, $10, $0);
function Test2(): Integer;
var
  a: Integer;
  c: Integer;
  WriteByte: DWORD;
begin
  //GetModuleHandleA('user32.dll');
  a := GetModuleHandleA('user32.dll');
  c := GetProcAddress(a, 'SetWindowsHookExA');
  WriteProcessMemory(GetCurrentProcess(), Pointer(c), @b[1], 3, WriteByte);
  ShowMessage('hook成功');
  Result := 1;
end;



exports
  Test2;
begin
  Test2();
end.

 

转载于:https://www.cnblogs.com/Wzqa/p/3150652.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值