Delphi API HookµÄÎÊÌâ
Delphi(Pascal) code:
{Ò»¸öÐÞ¸ÄIATʵÏÖAPI¹Ò¹³µÄ³ÌÐò,}
library Hook;
uses
Windows,
w_Hook in 'w_Hook.pas';
{$R *.res}
function DllEntry(dwReason:LONGINT):DWORD;STDCALL;
begin
case dwReason of
DLL_PROCESS_ATTACH:
begin
w_Hook.IntallHook;
end;
end;
result := 0;
end;
begin
DllProc := @DllEntry;
DllEntry(DLL_PROCESS_ATTACH);
end.
/////////////////////////////////////////////////////////////////////////
unit w_Hook;
interface
uses
Windows,SysUtils,Classes;
type
PIMAGE_IMPORT_DESCRIPTOR = ^IMAGE_IMPORT_DESCRIPTOR;
IMAGE_IMPORT_DESCRIPTOR = record
OriginalFirstThunk : DWORD;
TimeDateStamp : DWORD;
ForwarderChain : DWORD;
Name : DWORD;
FirstThunk : DWORD;
end;
PIMAGE_THUNK_DATA = ^IMAGE_THUNK_DATA;
IMAGE_THUNK_DATA = record
Function_ : PDWORD;
end;
procedure IntallHook;STDCALL;
implementation
function MyMessageBox(hwnd:CARDINAL;lpmsg:pchar;lpcaption:pchar;nType:UINT):dword;stdcall;
begin
result := MessageBox(hwnd,'HOOK','HOOK',MB_OK);
end;
procedure IntallHook;STDCALL;
var
OpHeader : IMAGE_OPTIONAL_HEADER;
NtHeader : IMAGE_NT_HEADERS;
dosHeader : IMAGE_DOS_HEADER;
ImpHeader : PIMAGE_IMPORT_DESCRIPTOR;
hModule : CARDINAL;
thunk : PIMAGE_THUNK_DAT
Ïà¹ØÎÊ´ð£º
ÓÉÓÚ¿Í戶¶ËÓеÄÎļþ經³£¸üУ¨遠³ÌµÄ£¬²»ÊǾÖÓò網£©£¬
ËùÒÔÏë寫個×Ô動¸üÐ嵀 ³ÌÐò¡£
¿´網É쵀 ·½·¨資ÁÏ£¬ÖªµÀЩ·½·¨£¬µ«²»ÖªµÀ¾ß體Ôõô寫¡£
......
½ÓÊÕµ½µÄÎı¾ÄÚÈÝÊÇucs2±àÂë¸ñʽ£¬ÇëÎÊÔõÑùת»»³ÉÖÐÎÄ
°´ÎÒµÄÀí½â£¬UCS-2ÊÇ×Ö·û¼¯£¬¾ßÌåµÄ±àÂëÓÐUTF-8£¬UTF-16 (LE/BE)µÈ¡£
Èç¹ûÄãÓÃDelphi 2009¼°ÒÔÉϰ汾£¬¿ÉÒÔ¿´¿´TEncodingÀà¡£
btw. Äã˵µÄת»»³ÉÖÐÎÄÊÇɶÒâË ......
·µ»ØµÄÄÚÈÝÊÇÈçÏ´úÂë,ÔõôÄÜÇþµÀ2b?
<p class="text1">1a </p>
<p class="text1">2b </p>
<p class="text1">3c </p>
<p cl ......
¸÷λ´óϺ£¬Ð¡µÜÓõÄÊÇADOÁ¬½ÓACCESSÊý¾Ý¿â£¬ÓÃDBGridÏÔʾ²éѯµÄÊý¾Ý£¬ÎÒ×öµÄÊǸöÊý¾Ý²É¼¯ÏµÍ³£¬¸ù¾Ý²»Í¬µÄµØÖ·°ÑÊý¾Ý·ÅÔÚACCESSÊý¾Ý¿âÖв»Í¬µÄ±íÀïÃæ£¬ÏÖÔÚÎÒÏë²éѯijһ¶Îʱ¼äÄÚËùÓбíÄÚµÄÊý¾Ý£¬²¢ÇÒÔÚDBGridÖÐÏÔʾ³ ......
ÓÃDEDE´ò¿ªÒ»¸öDLL£¬ÕÒµ½ÐèÒªµÄº¯ÊýÁË£¬µ«ÊÇÏÔʾµÄ¶¼ÊÇ»ã±à´úÂ룬¿´²»¶®£¬¿ÒÇë¸ßÊÖפ×ã°ïæ°¡£¡
ÊÇÒ»¸öKEYPRESSÏìÓ¦º¯Êý£¬¹¦ÄÜÊÇÔÚ°´ÏÂenterºóÅжÏÊäÈëµÄ×Ö·û£¬ÎÒÏë°´ÕÕ×Ô¼ºµÄÐèÇóÌø×ª£¬µ«ÊÇ
ÕÒ²»µ½Î»Ö㬸ßÊÖ ......