type
// Normale einmal verschachtelte Union
PMyString = ^TMyString;
TMyString = packed record
case Integer of
0: (Len, Checksum: DWORD);
1: (Prev, Next: PMyString;
szText: PChar;
)
end;
PMyStringV2 = ^TMyStringV2;
TMyStringV2 = packed record
case Integer of
0: (Len, Checksum: DWORD);
1: (Prev, Next: PMyString;
szText: PChar;
case Integer of
0: (file1: THandle);
1: (
case Integer of
0: (icon1: HICON);
1: (
cursor1: THandle;
OtherElements: array[0..1] of DWORD;
)
)
)
end;
TMyStringV2R = packed record
union1: record // start 1st union record
case Integer of
0: (Len, Checksum: DWORD);
1: (Prev, Next: PMyString);
end; // 1st record ends here
szText: PChar;
union2: record // start 2nd union record
case Integer of
0: (file1: THandle);
1: (union3: record // start 3rd union record
case Integer of
0: (icon1: HICON);
1: (cursor1: THandle);
end; ) // 3rd union record ends here
end; // 2nd union record ends here
OtherElements: array[0..1] of DWORD;
end;
(* 01 und 02 sind die ersten beiden Varianten *)
TMyStringV2_01 = packed record
Len, Checksum: DWORD; // Dieser teil unterscheidet sich
szText: PChar;
file1: THandle;
OtherElements: array[0..1] of DWORD;
end;
TMyStringV2_02 = packed record
Prev, Next: PMyString; // Dieser teil unterscheidet sich
szText: PChar;
file1: THandle;
OtherElements: array[0..1] of DWORD;
end;
TMyStringV2_03 = packed record
Len, Checksum: DWORD; // Dieser teil unterscheidet sich zwischen 03/04 und 05/06
szText: PChar;
cursor1: THandle; // Dieser teil unterscheidet sich
OtherElements: array[0..1] of DWORD;
end;
TMyStringV2_04 = packed record
Len, Checksum: DWORD; // Dieser teil unterscheidet sich zwischen 03/04 und 05/06
szText: PChar;
icon1: HICON; // Dieser teil unterscheidet sich
OtherElements: array[0..1] of DWORD;
end;
TMyStringV2_05 = packed record
Prev, Next: PMyString; // Dieser teil unterscheidet sich zwischen 03/04 und 05/06
szText: PChar;
cursor1: THandle; // Dieser teil unterscheidet sich
OtherElements: array[0..1] of DWORD;
end;
TMyStringV2_06 = packed record
Prev, Next: PMyString; // Dieser teil unterscheidet sich zwischen 03/04 und 05/06
szText: PChar;
icon1: HICON; // Dieser teil unterscheidet sich
OtherElements: array[0..1] of DWORD;
end;
{
//Beispiel für eine reale Verwendung - die NT Native API:
_SYSTEM_PROCESSES = packed record // Information Class 5
NextEntryDelta,
ThreadCount: ULONG;
Reserved1: array[0..5] of ULONG;
CreateTime,
UserTime,
KernelTime: LARGE_INTEGER;
ProcessName: UNICODE_STRING;
BasePriority: KPRIORITY;
ProcessId,
InheritedFromProcessId,
HandleCount: ULONG;
Reserved2: array[0..1] of ULONG;
VmCounters: VM_COUNTERS;
case Integer of
0: (NT4: NT4_EOSYSTEM_PROCESSES);
1: (NT5: NT5_EOSYSTEM_PROCESSES);
end;
SYSTEM_PROCESSES = _SYSTEM_PROCESSES;
PSYSTEM_PROCESSES = ^_SYSTEM_PROCESSES;
}
//
procedure TForm1.FormCreate(Sender: TObject);
begin
StaticText1.Caption := InttoStr(sizeof(TMyString));
StaticText2.Caption := InttoStr(sizeof(TMyStringV2));
StaticText3.Caption := InttoStr(sizeof(TMyStringV2_01));
StaticText4.Caption := InttoStr(sizeof(TMyStringV2_02));
StaticText5.Caption := InttoStr(sizeof(TMyStringV2_03));
StaticText6.Caption := InttoStr(sizeof(TMyStringV2_04));
StaticText7.Caption := InttoStr(sizeof(TMyStringV2_05));
StaticText8.Caption := InttoStr(sizeof(TMyStringV2_06));
end;

Packed Record Example
Abonnieren
Posts (Atom)
Beliebte Posts
-
Windows Key Sniffer 0.82 - Update 08/2024 Der Windows Key Sniffer hat mir im Laufe der Zeit viel Arbeit erspart und unterstützt, viele Wi...
-
Network Source Code Update Source Code Network Update : https://asciigen.blogspot.com/p/network.html Send Message 1.0 Source Server Client ...
-
Windows Defender Bypass Version 0.75 - Update 11/2024 Den Windows 10-eigenen Virenschutz Defender kann man auf mehreren Wegen abschalt...
-
ASCii GIF Animator Update Version 0.68 (32 bit) - 11/2024 Bei dieser überarbeiteten Version ist die Kompatibilität zu den verschiedenen...
-
MD5 Hacker v.0.26 - Update 08.2024 MD5 Hashs sollten eigentlich nicht entschlüsselt werden können. Jedoch gibt es Tools, mit welchen auch ...
-
Host Editor Version 0.65 - Update 01/2025 Hosts File Editor allows for the easy editing of host files and backup creation. Create your ...
-
Dir Sniffer Version 0.11 - Update 02/2025 Dir Sniffer ist ein kleines aber nützliches Tool um herauszufinden, was ihr Programm auf ihrem...
-
Oldskool Font Generator v.0.29 - Update 11/2023 Das Tool stell 508 Bitmap Fonts zu Verfügung. Eigene Fonts können integriert werden, sie...
-
Hard Crypter 0.19 - Update 12/2023 Mit diesem Tool können Sie jede beliebige Datei auf dem Windows-System verschlüsseln. Die Byte-Erse...
Keine Kommentare:
Kommentar veröffentlichen