EXE

From Wikipedia, the free encyclopedia

Remove ads

EXE este extensia comună pentru fișierele ce reprezintă un executabil (un program), folosită în sistemele de operare DOS, OpenVMS, Microsoft Windows, Symbian și OS/2. În afară de programele executabile, multe fișiere EXE conțin componente numite resurse, cum ar fi imagini bitmap și pictograme (iconițe) pe care programul executabil le folosește pentru interfața grafică.

Thumb
Extensia .exe al programului preinstalat "cmd"
Remove ads

Descriere

Fișierul EXE se folosește pentru sistemele de operare MS-DOS, Microsoft Windows, OpenVMS, Symbian și OS/2. Este succesorul fișierului COM, care putea atingea mărimea maximă de 64 KB și de aceea a conținut doar un segment de cod.

În afară de cod executabil, un fisier EXE poate conține și alte componente numite resurse, ca de exemplu:

Remove ads

Tipuri de executabile

Există câteva tipuri de formate de fișiere EXE

DOS

  • executabile DOS MZ 16 biți - sunt fișierele executabile originale și pot fi identificate de prezența literelor MZ (numite număr magic) la începutul fișierului ASCII
  • executabile DOS 16 biți - Tip de executabile mai nou decât cele DOS MZ, care au fost introduse odată cu multitasking-ul în MS-DOS 4.0. Acest tip poate fi identificat de numărul magic NE în fișierul ASCII. Acestea nu sunt foarte populare datorită faptului ca nu pot fi rulate de alte versiuni de DOS, doar de sistemul de operare Windows pe 32 de biți și unele versiuni de OS/2.

OS/2

  • 32-bit Linear Executable - Introduse în OS/2 2.0 și compatibil cu orice altă versiune mai mare ce poate fi identificate de LX în ASCII.
  • Mixed 16/32-bit Linear Executable - Introduse în OS/2 2.0 și se pot identifica prin LE în ASCII. Acest tip nu mai este folosit.

Windows

  • 32-bit Portable Executable - Introduse odată cu Windows NT, sunt mult mai complexe și contin PE în ASCII (însa nu la început; la început apare MZ). Poate fi rulat de orice versiune de Windows NT și chiar și de către Windows 95 și mai mult.
  • 64-bit Portable Executable - Introduse odată cu versiunea de 64 de biți a sistemului de operare Windows. Acest tip poate fi rulat doar pe unele tipuri de procesoare: x86-64 și IA-64.
Remove ads

Structură unui EXE

Headerul este format din blocuri de 512 B si paragrafe de 16 B

Mai multe informații Offset (hex), Descriere ...

O structură reprezentând head-erul unui executabil pe 16 biți:

struct EXE {
  unsigned short signature; /* == 0x5a4D */
  unsigned short bytes_in_last_block;
  unsigned short blocks_in_file;
  unsigned short num_relocs;
  unsigned short header_paragraphs;
  unsigned short min_extra_paragraphs;
  unsigned short max_extra_paragraphs;
  unsigned short ss;
  unsigned short sp;
  unsigned short checksum;
  unsigned short ip;
  unsigned short cs;
  unsigned short reloc_table_offset;
  unsigned short overlay_number;
};

struct EXE_RELOC {
  unsigned short offset;
  unsigned short segment;
};

Calcularea Offset-ului

Offset-ul de la inceputul executabilului se calculeaza astfel:

exe_data_start = exe.header_paragraphs * 16L;

Offset-ul bit-ului după datele din executabil se calculează astfel:

extra_data_start = exe.blocks_in_file * 512L;
if (exe.bytes_in_last_block)
  extra_data_start -= (512 - exe.bytes_in_last_block);
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads