Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Delphi Hook API ÒÑ·è¿ñ

×÷Õß: yangyxd   ×ªÔØÇë×¢Ã÷³ö´¦ http://hi.baidu.com/yangyxd   2009-3-12
     ÂÛ̳ÀïÓйØÓÚHOOK APIµÄÌù×Ó£¬ µ«ÆäʵÏÖÔÚ·½Ê½ÏÔʾµÃÂé·³£¬ ÆäʵÏÖÔÚÀ¹½ØAPIÒ»°ã²»ÓÃÄÇÖÖ·½Ê½£¬ ´ó¶¼²ÉÓÃinline Hook API·½Ê½¡£ÆäʵҲ¾ÍÊÇÖ±½ÓÐÞ¸ÄÁËÒªÀ¹½ØµÄAPIÔ´ÂëµÄÍ·²¿£¬ÈÃËüÎÞÌõ¼þÌø×ªµ½ÎÒÃÇ×Ô¼ºµÄ´¦Àí¹ý³Ì¡£
   ²»¶à˵±ðµÄÁË£¬¿ªÊ¼ÎÒÃÇ×Ô¼ºµÄHook API°É¡£
   ÎÒÃǽñÌìÒªÀ¹½ØµÄAPIÈçÏ£º
   MessageBoxA¡¢MessageBoxW¡¢MessageBeep ºÍ OpenProcess ¡£
   Ê×ÏÈ£¬´ó¼Ò¶¼ÖªµÀÒªÔÚÕû¸öϵͳ·¶Î§ÖÐÀ¹½Ø£¬ÐèҪʹÓÃDllÀ´Íê³É¡£ÏÖÔÚÎÒÃÇ´ò¿ªDelphi 2009£¬Ð½¨Ò»¸öDll¹¤³Ì£ºhookDll¡£ÐèҪ˵Ã÷µÄÊÇ£¬DelphiÊÇÍêÈ«ÃæÏò¶ÔÏóµÄ±à³ÌÓïÑÔ£¬ËùÒÔÎÒÃDz»ÒªÀË·Ñ£¬Õâ¸öDll´òËãÓÃÀàµÄ·½Ê½Íê³É¡£ÓÚÊÇ£¬ÔÚн¨µÄDLL¹¤³ÌÖÐÔÚÌí¼ÓÒ»¸öUnit Pas£¬ÃüÃûΪunitHook£¬ ÓÃÀ´Ð´À¹½ØÀàµÄ´¦Àí¡£unitHook.pasÖеĴúÂëÈçÏ£º
unit unitHook;
interface
uses
Windows, Messages, Classes, SysUtils;
type
//NtHookÀàÏà¹ØÀàÐÍ
TNtJmpCode=packed record //8×Ö½Ú
MovEax:Byte;
Addr:DWORD;
JmpCode:Word;
dwReserved:Byte;
end;
TNtHookClass=class(TObject)
private
hProcess:THandle;
NewAddr:TNtJmpCode;
OldAddr:array[0..7] of Byte;
ReadOK:Boolean;
public
BaseAddr:Pointer;
constructor Create(DllName,FuncName:string;NewFunc:Pointer);
destructor Destroy; override;
procedure Hook;
procedure UnHook;
end;
implementation
//==================================================
//NtHOOK À࿪ʼ
//==================================================
constructor TNtHookClass.Create(DllName: string; FuncName: string;NewFunc:Pointer);
var
DllModule:HMODULE;
dwReserved:DWORD;
begin
//»ñȡģ¿é¾ä±ú
DllModule:=GetModuleHandle(PChar(DllName));
//Èç¹ûµÃ²»µ½ËµÃ÷δ±»¼ÓÔØ
if DllModule=0 then DllModule:=LoadLibrary(PChar(DllName));
//µÃµ½Ä£¿éÈë¿ÚµØÖ·£¨»ùÖ·£©
BaseAddr:=Pointer(GetProcAddress(DllModule,PChar(FuncName)));
//»ñÈ¡µ±Ç°½ø³Ì¾ä±ú
hProcess:=GetCurrentProcess;
//Ö¸ÏòеØÖ·µÄÖ¸Õë
NewAddr.MovEax:=$B8;
NewAddr.


Ïà¹ØÎĵµ£º

delphi_ÊÖ¹¤´´½¨dataset

procedure TForm1.Button3Click(Sender: TObject);
begin
    //ÏÔʾ´´½¨µÄÊý¾Ý¼¯: dbgrid->datasource->clientdataset
    //Èç¹ûÊÖ¹¤¿ØÖÆdbgridÏÔʾ¿í¶È,dbgridÓÒ¼ü´´½¨Á½¸ö×Ö¶Îaa,bb,·Ö±ðÉèÖÿí¶È¼´¿É
    cds1.FieldDefs.Add('aa',ftString,40);
   ......

delphi Èý·½¿Ø¼þ

VCLÖеÄShapeÊǸöºÜ²»´íµÄ¿Ø¼þ£¬¿ÉÒÔÑ¡Ôñ¼¸ÖÖͼÐΣ¬ÒÔÂú×ãÎÒÃǵÄÐèÇ󣬵«ÓÐʱºò¾ÍÊǾõµÃËüµÄ¿ÉѡͼÐÎÉÙÁËÒ»µã£¬±ÈÈçÎÒÃÇÏëÒªÒ»¸öÈý½ÇÐΣ¬ËüȴûÓС£ÓÚÊǾÍÏëµ½À´À©Õ¹Ò»ÏÂÕâ¸ö¿Ø¼þ£¬ÃûΪShapeEx¡£ÆäʵÀ©Õ¹µÄ¹¦Äܲ»¶à£¬Ö»ÊÇÔö¼ÓÁËһЩͼÐΡ£¶øÀàÒ²²¢²»ÊǼ̳Ð×ÔTShape£¬¶øÊǼ̳Ð×ÔTGraphicControl£¬ÕâÑù¿ÉÒÔÈÃÎÒÃdz¹µ×¿´¿´Í¼ÐÎ ......

delphiÈçºÎ設實現ÈçϽçÃæ

這個½çÃæÊÇÓÃPB×öµÄ£¬delphiÈçºÎ設實現ÄØ£¬ÏëÓÃdbControlGrid來實現(ºÃÏñÒ²×ö²»µ½)£¬
問題ÊÇÈçºÎ實現²»Í¬Éú產類別顯ʾ³ö來µÄ·½Ê½²»Ò»樣
......

Delphi С̸֮TList ƪ

×î½ü¿ª·¢³ÌÐòÐèҪʹÓÃTList¹¦ÄÜ£¬×ªÔØ´ËÎÄÕ£¬ÒÔ×÷²Î¿¼¡£
¿´ÁËÕâÀï±êÌ⣬´ó¼Ò¿ÉÄÜÒÔΪÎÒ»á̸TListBox¿Ø¼þ£¬ÄǾʹíÁË¡£ÎÒҪ̸µÄÊÇDelphiÌṩ¸øÎÒÃǵľßÓÐÁбíÐÔÖʵÄÀࣺTstringList¡¢TListºÍTObjectList¡£TstringListÓÃÀ´´æ·Å×Ö·û´®£¬TList´æ·ÅÖ¸Õ룬¶øTObjectListÔò´æ·Å¶ÔÏó(Object)¡£
ÔÚÎÒÃÇʹÓÃDelphi µÄ¹ý³ÌÖУ¬Óкܶà ......

ÓÃDelphiºÍWeb Services¿ª·¢¶ÌÐÅÓ¦ÓóÌÐò

Õª
Òª£º±¾ÎÄͨ¹ýʹÓÃDelphiºÍWebServices¼¼Êõ¿ª·¢¶ÌÐÅÓ¦ÓóÌÐòµÄʵÀýÏêϸµÄ½éÉÜÁËÈçºÎÔÚDelphiÖпª·¢»ùÓÚWebServices¼¼Êõ
µÄÓ¦ÓóÌÐò¡£
¡¡¡¡¹Ø¼ü×Ö£ºDelphi£»WebService£»¶ÌÐÅÓ¦ÓóÌÐò¿ª·¢

¡¡¡¡Ò»ÌáÆð»ùÓÚWebServices¼¼ÊõµÄÓ¦ÓóÌÐò¿ª·¢£¬Ò»°ãÈËÊ×ÏÈÏëµ½µÄ¿ª·¢¹¤¾ßÊÇVS.net£¬Æäʵ×÷Ϊ¿ìËÙÓ¦ÓóÌÐò¿ª·¢¹¤¾ß
(RAD)µ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ