Hi,
Ist ja nicht viel.. und eigentlich Größtenteils nur Kosmetik:
Alles aus der
Unit VMDetection.pas
1)
Delphi-Quellcode:
type
TxDTEntry = record
GDTBase: DWord;
IDTBase: DWord;
LDTRBase: DWord;
GDTLimit: Word;
IDTLimit: Word;
end;
// ==>
// Code natürlich entsprechend der neuen Namen anpassen
TxDTEntry = record
GDTOffset: DWord;
IDTOffset: DWord;
LDTROffset: DWord;
GDTSize: Word;
IDTSize: Word;
end;
2)
Delphi-Quellcode:
type
TxDT = record
Limit,
BaseLow,
BaseHigh: Word;
end;
// ==>
TxDT = packed record // packed würde ich bei solchen Sachen empfehlen!
Size: Word;
Offset: DWord;
end;
3)
Delphi-Quellcode:
function GetIDTBase: DWord;
var
IDT: TxDT;
begin
asm
SIDT IDT
end;
Result := (IDT.BaseHigh
shl 16)
or IDT.BaseLow;
end;
// ===>
function GetIDTOffset: DWord;
var
IDT: TxDT;
begin
asm
SIDT IDT
end;
Result := IDT.Offset;
end;
4)
Delphi-Quellcode:
function GetIDTLimit: DWord;
// ==>
function GetIDTSize: DWord;
5)
Delphi-Quellcode:
function GetGDTBase: DWord;
var
GDT: TxDT;
begin
asm
SGDT GDT
end;
Result := (GDT.BaseHigh
shl 16)
or GDT.BaseLow;
end;
// ==>
function GetGDTOffset: DWord;
var
GDT: TxDT;
begin
asm
SGDT GDT
end;
Result := GDT.Offset;
end;
6)
Delphi-Quellcode:
function GetGDTLimit: DWord;
// ==>
function GetGDTSize: DWord;
7)
Delphi-Quellcode:
function GetLDTRBase: DWord;
// ==>
function GetLDTROffset: DWord;
Das sind wie du siehst und ich gesagt habe ja keine wirklichen großen Änderungen^^ Hab ja gesagt dass es etwas kleinlich ist, aber so finde ich den Code schöner bzw. verständlicher.
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."