Delphi Äܲ»ÄÜ´ÓRing 3½øÈëRing 0
Delphi Äܲ»ÄÜ´ÓRing 3½øÈëRing 0?
Â¥Ö÷skyworld_xm£¨skyworld£©2004-11-19 09:58:55 ÔÚ Delphi / Windows SDK/API ÌáÎÊ
Delphi Äܲ»ÄÜ´ÓRing 3½øÈëRing 0?
ÓÐÀý×ÓÂð?
¶àл. ÎÊÌâµãÊý£º100¡¢»Ø¸´´ÎÊý£º20Top
1 Â¥jinjazz£¨½üÉí¼ô£©»Ø¸´ÓÚ 2004-11-19 10:13:27 µÃ·Ö 10
ÎÒ·¢ÏÖÁËһƪ·¢±íÔÚ1999.11.29 b13°æµÄ
¡¶Áîwin32Ó¦ÓóÌÐòÌøÈëϵͳ²ã¡·¶«ÄÏ´óѧ ¬Íþ luwei@126.com
ÊÇÓÃvc++Ƕ»ã±à×öµÄ£¬
ºÜ½Ó½üÁË£¬¿ÉÊÔÊÔ
BCB»òDELPHI½øÈëRing0
¶«ÄÏ´óѧ¬Íþ1999.12·¢±íÔÚ<<¼ÆËã»úÊÀ½ç>>±¨ÉϵÄһƪ
<<WIN32ÌøÈëϵͳ0²ã>>£¬Ô²ÉÓÃVC++±à³Ì,ÏָijÉC++Builder
¹©Öîλ²Î¿¼,DELPHIÀàËÆ£»
void Ring0Proc() // ÔÚRing0ÖÐÖ´ÐÐÄã×ÔÒѵĴúÂë
{
// .......
asm mov eax,CR0; // ÊÔÑéÒ»ÏÂRing3²»ÄÜÖ´ÐеÄÌØÈ¨Ö¸Áî
// .......
}
// =====================================================
void __declspec(naked) NewInt() //ÐÂÖжÏ
{
Ring0Proc();
asm iretd;
}
#define IntNo 9
DWORDLONG IDTR,SavedGate;
WORD OurGate[4]={0,0x0028,0xee00,0x0000};
void GotoRing0()
{
asm
{
&nb
Ïà¹ØÎĵµ£º
Ŀǰ¿ª·¢ÆåÅÆÀàÓÎÏ·µÄ¹«Ë¾ºÍ¸öÈ˺ܶࡣµ«ÊǶÔÓںܶ࿪·¢ÕßÀ´Ëµ£¬¿ª·¢Ò»¿î¾ßÓпÉÀ©Õ¹¡¢Îȶ¨µÄÆåÅÆÀàÓÎÏ·»¹ÊǾßÓÐÒ»¶¨µÄÄѶȡ£Õâ´ÎÎÒ¾ÍÒÔÎÒ¿ª·¢ÆåÅÆÀàÓÎϷΪÀý£¬½²ÊöÈçºÎʹÓÃDELPHIÀ´¿ª·¢ÆåÅÆÀàÓÎÏ·¡£Ï£ÍûÎҵľÑé¿ÉÒÔ¶ÔÓÎÏ·¿ª·¢°®ºÃÕ߯ðµ½Å×שÒýÓñµÄ×÷Óá£Èç¹ûÄú¶ÔÎÒ»ù´¡ÆªÖÐÉæ¼°µ½µÄÄÚÈݷdz£ÊìϤ£¬¿ÉÒÔÖ±½ÓÌø¹ý½øÈëÉè¼ÆÆª¡£ ......
¶ÔÓÚÍøÂçÓÎÏ·À´Ëµ£¬ËüºÍµ¥»ú°æÓÎÏ·×î´óµÄÇø±ð¾ÍÔÚÓÚÍøÂçͨÐŲ¿·Ö¡£¿ÉÒÔ˵£¬ÍøÂçͨÐÅÊǹ¹³ÉÍøÓεÄ×î»ù±¾ÔªËØ¡£ÔÚÕâÀïÎÒ²»ÏëÏêϸµÄÂÛÊöÈçºÎʹÓÃDELPHIÔÚWINDOWSϽøÐÐÍøÂç±à³Ì£¬ÒòΪÕâÊÇÒ»¸ö·Ç³£¸´ÔӵϰÌâ¡£ÕâÀïÎÒÖ»ÊÇÏë˵Ã÷ÔÚÎÒÉè¼ÆµÄÆåÅÆÀàÓÎÏ·ÖÐÈçºÎʵÏÖÓÎÏ·ÍøÂ粿·ÖµÄ¡£
¶ÔÓÚWINDOWSÀ´Ëµ£¬ËüµÄͨÐÅÄ£ÐÍ´ó¸Å·ÖΪ5ÖÖ¡£·Ö± ......
//¼Óһϰ´Å¥£¬¼ÓÒ»¸ö¶Ô»°¿ò¾ÍOKÀ²
procedure TForm1.Button1Click(Sender: TObject);
var
S: String;
begin
if OpenDialog1.Execute then
begin
s := OpenDialog1.FileName;
WinExec( PChar(s), SW_NORMAL);
end;
end;
----------------------- ......
delphi±àÂë¹æ·¶Îĵµ
Ŀ¼
1¡¢Ç°ÑÔ 3
2¡¢Ô´³ÌÐòÊéд¹æ·¶ 3
2.1ͨÓÃÔ´´úÂë¸ñʽ¹æ·¶ 3
2.1.1Ëõ½ø 3
2.1.2±ß¾à 3
2.1.3 Begin…EndÓï¾ä 3
2.1.4×¢ÊÍ 4
2.2 OBJECT PASCALÓï¾ä¸ñʽÊéд¹æ·¶ÓëÓ÷¨ 4
2.2.1À¨ºÅ 4
2.2.2±£Áô×ֺ͹ؼü×Ö 4
2.2.3¹ý³ÌºÍº¯Êý 5
2.2.4±äÁ¿ 5
2.2.5ÀàÐÍ 6
2.2.6Óï¾ä 6
2.2.7½á¹¹» ......