⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 optionalheaderform.pas

📁 學習資料網上下載
💻 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 + -