delphi µ÷ÊÔʱ×ܳöÏÖcpu´°¿Ú£¬ntdll.dllµãµÄ½â¾ö·½·¨
ÔÚÖ÷½çÃæµÄimplementation {$R *.dfm} Ï·ÅÈëÒÔÏ´úÂ룺
procedure PatchInt3;
var
NOP: Byte;
NTDLL: THandle;
BytesWritten: DWORD;
Address: Pointer;
begin
if Win32Platform <> VER_PLATFORM_WIN32_NT then
Exit;
NTDLL := GetModuleHandle('NTDLL.DLL');
if NTDLL = 0 then
Exit;
Address := GetProcAddress(NTDLL, 'DbgBreakPoint');
if Address = nil then
Exit;
try
if Char(Address^) <> #$CC then
Exit;
NOP := $90;
if WriteProcessMemory(GetCurrentProcess, Address, @NOP, 1, BytesWritten) and (BytesWritten = 1) then FlushInstructionCache(GetCurrentProcess, Address, 1);
except // Do not panic if you see an EAccessViolation here, it is perfectly harmless!
on EAccessViolation do ;
else
raise;
end;
end;
È»ºóÔÚ´°ÌåµÄCreateÖе÷Óà PatchInt3 £»»òÕßÔÚ´°Ìå´úÂëµÄ×îºóÒ»¸öend.ǰ¼ÓÈëһϴúÂë¼´¿ÉÒÔ½â¾ö
//-------------------------------------------------------------- i
nitialization
begin
PatchInt3; //·ÀÖ¹¹Ø±Õ´°¿Úʱ³öÏÖCPU: ntdll.DbgBreakPoint
end;
Ïà¹ØÎĵµ£º
±¾ÎÄÊÇ»ùÓÚ¡¶GDI+ÔÚDelphi³ÌÐòµÄÓ¦Óà – PhotoshopÉ«Ïà/±¥ºÍ¶È/Ã÷¶È¹¦ÄÜ¡·Ò»ÎĵÄBASMʵÓÃÐÔ¹ý³Ì£¬ÓйØÊµÏÖÔÀí¿É²Î¼û¡¶GDI+ ÔÚDelphi³ÌÐòµÄÓ¦Óà -- ͼÏñ±¥ºÍ¶Èµ÷Õû¡·ºÍ¡¶GDI+ ÔÚDelphi³ÌÐòµÄÓ¦Óà -- ·ÂPhotoshopµÄÃ÷¶Èµ÷Õû¡·£¬´¿PASʵÏÖ´úÂëºÍ²âÊÔÀý×Ó´úÂë¼û¡¶GDI+ÔÚDelphi³ÌÐòµÄÓ¦Óà – Phot ......
Python , Delphi , Loki Èý¸öµ¥´ÊÓÐȤµÄÀ´Ô´
Ðí¶à³ÌÐòÉè¼ÆÓïÑԺͿª·¢¹¤¾ßÒÔ¼°¿âµÄÃû×Ö¶¼À´Ô´ÓëÉñ»°£¬ÆÄÓÐÒâ˼£º
°¢²¨ÂÞÊÇͬʱ³öÏÖÔÚÏ£À°ºÍÂÞÂíÉñ»°ÖеİÂÁÖÅÁ˹ʮ¶þ´óÉñÖ®Ò»¡£Ëû³ýÁËÓµÓÐÌ«ÑôÉñµÄÉí·Ö£¬Í¬Ê±»¹ÓÐÔ¤ÑÔ¡¢ÒÕÊõ¡¢Ò½ÊõÖ®ÉñµÄ³ÆºÅ¡£°¢²¨ÂÞÊÇÖæË¹ºÍÀÖ¶äµÄ¶ù×Ó£¬ºÍ°¢µÙÃÛ˹ÊÇË ......
//¶¨ÒåMyClass
TMyClass = class
GUID: string;
Name: string;
bSex: Boolean;
Tel : string;
end;
//ȡֵ
var
obj: TMyClass;
begin
obj := TMyClass.Create;
with Memo1.Lines do
begin
Add('¶ÔÏó´óС:' + IntToStr(obj.InstanceSize));
Add('¶ÔÏóËùÔÚµØÖ·£º'+ ......
ʲôÊǶà̬£¬×ÖÃæÒâ˼¾ÍÊÇ“¶àÖÖÐÎ̬”£¬ÓöÔÏóÀ´½²¾ÍÊÇ×ÓÀà¼Ì³Ð»ùÀ࣬¶ø²»Í¬µÄ×ÓÀàÓÖ·Ö±ð¶Ô»ùÀà½øÐй¦ÄܵÄÀ©Õ¹¡£
¶à̬ÔÚObject PascalÖÐÊÇͨ¹ýÐé·½·¨ÊµÏֵģ¨Virtual Method£©,ÔÚObject PascalÖлùÀàµÄÐé·½·¨ÊÇ¿ÉÒÔ±»ÅÉÉúÀา¸Ç£¨Override£©µÄ ......
ÃüÁîģʽ¿ÉÒÔºÜÇáËɵÄʵÏÖ³·Ïú£¨Undo£©¹¦ÄÜ¡£
1. ÃüÁîµÄ½ÓÊÜÕß
unit uReceiveObject;
interface
type
TLight = class(TObject)
public
procedure Open;
procedure Off;
end;
implementation
{ TLight }
procedure TLight.Off;
begin
Writeln('Light is off.');
......