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

📄 dosheaderform.pas

📁 學習資料網上下載
💻 PAS
字号:
unit DOSHeaderForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  PEHeaderForm, ComCtrls;

type
  TfmDOSHeader = class(TfmPEHeader)
  private
  protected
    procedure SetObject(const Value: TObject); override;
  public
  end;

var
  fmDOSHeader: TfmDOSHeader;

implementation

{$R *.DFM}

resourcestring
  s_magic    = 'Magic number';
  s_cblp     = 'Bytes on last page of file';
  s_cp       = 'Pages in file';
  s_crlc     = 'Relocations';
  s_cparhdr  = 'Size of header in paragraphs';
  s_minalloc = 'Minimum extra paragraphs needed';
  s_maxalloc = 'Maximum extra paragraphs needed';
  s_ss       = 'Initial (relative) SS value';
  s_sp       = 'Initial SP value';
  s_csum     = 'Checksum';
  s_ip       = 'Initial IP value';
  s_cs       = 'Initial (relative) CS value';
  s_lfarlc   = 'File address of relocation table';
  s_ovno     = 'Overlay number';
  s_res      = 'Reserved words';
  s_oemid    = 'OEM identifier (for s_oeminfo)';
  s_oeminfo  = 'OEM information; s_oemid specific';
  s_res2     = 'Reserved words';
  s_lfanew   = 'File address of new exe header';


{ TfmDOSHeader }

procedure TfmDOSHeader.SetObject(const Value: TObject);
var
  arr : array [0..1] of char;

begin
  inherited;

  ListView1.Items.BeginUpdate;
  try
    ListView1.Items.Clear;
    with PEModule.DOSHeader do
    begin
      Move (e_magic, arr [0], 2);
      AddEntry ('e_magic', arr, s_magic);
      AddEntry ('e_cblp', e_cblp, s_cblp);
      AddEntry ('e_cp', e_cp, s_cp);
      AddEntry ('e_crlc', e_crlc, s_crlc);
      AddEntry ('e_cparhdr', e_cparhdr, s_cparhdr);
      AddEntry ('e_minalloc', e_minalloc, s_minalloc);
      AddEntry ('e_maxalloc', e_maxalloc, s_maxalloc);
      AddEntry ('e_ss', e_ss, s_ss);
      AddEntry ('e_sp', e_sp, s_sp);
      AddEntry ('e_csum', e_csum, s_csum);
      AddEntry ('e_ip', e_ip, s_ip);
      AddEntry ('e_cs', e_cs, s_cs);
      AddEntry ('e_lfarlc', e_lfarlc, s_lfarlc);
      AddEntry ('e_ovno', e_ovno, s_ovno);
      AddEntry ('e_res', e_res, s_res);
      AddEntry ('e_oemid', e_oemid, s_oemid);
      AddEntry ('e_oeminfo', e_oeminfo, s_oeminfo);
      AddEntry ('e_res2', e_res2, s_res2);
      AddEntry ('_lfanew', _lfanew, s_lfanew);
    end
  finally
    ListView1.Items.EndUpdate
  end
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -