📄 optionalheaderform.pas
字号:
unit OptionalHeaderForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
PEHeaderForm, ComCtrls;
type
TfmOptionalHeader = class(TfmPEHeader)
private
protected
procedure SetObject(const Value: TObject); override;
{ Private declarations }
public
{ Public declarations }
end;
var
fmOptionalHeader: TfmOptionalHeader;
implementation
{$R *.DFM}
resourcestring
s_Magic = 'Specifies the state of the image file';
s_MajorLinkerVersion = 'Major version number of the linker';
s_MinorLinkerVersion = 'Minor version number of the linker';
s_SizeOfCode = 'Size of the code section(s)';
s_SizeOfInitializedData = 'Size of the initialized data section(s)';
s_SizeOfUninitializedData = 'Size of the uninitialized data sections(s)';
s_AddressOfEntryPoint = 'RVA of entry point function';
s_BaseOfCode = 'RVA of code';
s_BaseOfData = 'RVA of data';
s_ImageBase = 'Preferred load address';
s_SectionAlignment = 'Alignment of sections in memory';
s_FileAlignment = 'Alignment of sections in image file';
s_MajorOSVersion = 'Major version number of the required OS';
s_MinorOSVersion = 'Minor version number of the required OS';
s_MajorImageVersion = 'Major version number of the image';
s_MinorImageVersion = 'Minor version number of the image';
s_MajorSubsystemVersion = 'Major version number of the subsystem';
s_MinorSubsystemVersion = 'Minor version number of the subsystem';
s_Win32VersionValue = 'Reserved';
s_SizeOfImage = 'Section aligned total image size';
s_SizeOfHeaders = 'File aligned header size';
s_CheckSum = 'Image file checksum';
s_SubSystem = 'Subsystem required to run this image';
s_Characteristics = 'DLL Characteristics';
s_SizeOfStackReserve = 'Size reserved for stack';
s_SizeOfStackCommit = 'Initial stack size';
s_SizeOfHeapReserve = 'Size reserved for local heap';
s_SizeOfHeapCommit = 'Initial local heap size';
s_LoaderFlags = 'Obsolete';
s_NumberOfRvaAndSizes = 'Number of directory entries';
procedure TfmOptionalHeader.SetObject(const Value: TObject);
begin
inherited;
ListView1.Items.BeginUpdate;
try
ListView1.Items.Clear;
with PEModule.OptionalHeader do
begin
AddEntry ('Magic', Magic, s_Magic);
AddEntry ('MajorLinkerVersion', MajorLinkerVersion, s_MajorLinkerVersion);
AddEntry ('MinorLinkerVersion', MinorLinkerVersion, s_MinorLinkerVersion);
AddEntry ('SizeOfCode', SizeOfCode, s_SizeOfCode);
AddEntry ('SizeOfInitializedData', SizeOfInitializedData, s_SizeOfInitializedData);
AddEntry ('SizeOfUninitializedData', SizeOfUninitializedData, s_SizeOfUninitializedData);
AddEntry ('AddressOfEntryPoint', AddressOfEntryPoint, s_AddressOfEntryPoint);
AddEntry ('BaseOfCode', BaseOfCode, s_BaseOfCode);
AddEntry ('BaseOfData', BaseOfData, s_BaseOfData);
AddEntry ('ImageBase', ImageBase, s_ImageBase);
AddEntry ('SectionAlignment', SectionAlignment, s_SectionAlignment);
AddEntry ('FileAlignment', FileAlignment, s_FileAlignment);
AddEntry ('MajorOperatingSystemVersion', MajorOperatingSystemVersion, s_MajorOSVersion);
AddEntry ('MinorOperatingSystemVersion', MinorOperatingSystemVersion, s_MinorOSVersion);
AddEntry ('MajorImageVersion', MajorImageVersion, s_MajorImageVersion);
AddEntry ('MinorImageVersion', MinorImageVersion, s_MinorImageVersion);
AddEntry ('MajorSubsystemVersion', MajorSubsystemVersion, s_MajorSubsystemVersion);
AddEntry ('MinorSubsystemVersion', MinorSubsystemVersion, s_MinorSubsystemVersion);
AddEntry ('Win32VersionValue', Win32VersionValue, s_Win32VersionValue);
AddEntry ('SizeOfImage', SizeOfImage, s_SizeOfImage);
AddEntry ('SizeOfHeaders', SizeOfHeaders, s_SizeOfHeaders);
AddEntry ('CheckSum', CheckSum, s_CheckSum);
AddEntry ('Subsystem', SubSystem, s_SubSystem);
AddEntry ('DllCharacteristics', DllCharacteristics, s_Characteristics);
AddEntry ('SizeOfStackReserve', SizeOfStackReserve, s_SizeOfStackReserve);
AddEntry ('SizeOfStackCommit', SizeOfStackCommit, s_SizeOfStackCommit);
AddEntry ('SizeOfHeapReserve', SizeOfHeapReserve, s_SizeOfHeapReserve);
AddEntry ('SizeOfHeapCommit', SizeOfHeapCommit, s_SizeOfHeapCommit);
AddEntry ('LoaderFlags', LoaderFlags, s_LoaderFlags);
AddEntry ('NumberOfRvaAndSizes', NumberOfRvaAndSizes, s_NumberOfRvaAndSizes);
end
finally
ListView1.Items.EndUpdate
end
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -