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ÖÖ¡£·Ö± ......
Delphi7 µ÷Óà C#µÄWebservice ²»ÄÜ´«Èë²ÎÊý
½â¾ö°ì·¨£º
ÔÚDelphiµ¼ÈëWSDLºóÉú³ÉµÄµ¥ÔªµÄ×îºóÒ»ÐУ¬¼´initializationÀïµÄ³õʼ»¯¶Ë¿ÚµÄ´úÂëÖмÓÈë´úÂë
InvRegistry.RegisterInvokeOptions(TypeInfo(½Ó¿ÚÃû), ioDocument);
¼´¿É
......
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button ......
Ò»¡¢Dll½¨Á¢
£¨Ò»£©DLLÏîÄ¿µÄ½¨Á¢
library mydll;
uses
base in 'base.pas';
exports
Triple name 'Tr';
{$R *.res}
begin
end.
£¨¶þ£©º¯Êýµ¥Ôª
unit base;
interface
uses windows;
function Triple(N:integer):integer;stdcall;
  ......