My favorites | Sign in
Project Home Downloads Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
;header for a one-section PE, with minimal amount of information

;Ange Albertini, BSD Licence, 2009-2011

%include 'consts.asm'

FILEALIGN equ 4h
SECTIONALIGN equ FILEALIGN ; different alignements are not supported by MakePE
org IMAGEBASE

istruc IMAGE_DOS_HEADER
at IMAGE_DOS_HEADER.e_magic, db 'MZ'
at IMAGE_DOS_HEADER.e_lfanew, dd nt_header - IMAGEBASE
iend

nt_header:
istruc IMAGE_NT_HEADERS
at IMAGE_NT_HEADERS.Signature, db 'PE',0,0
iend
istruc IMAGE_FILE_HEADER
at IMAGE_FILE_HEADER.Machine, dw IMAGE_FILE_MACHINE_I386
at IMAGE_FILE_HEADER.NumberOfSections, dw NUMBEROFSECTIONS
at IMAGE_FILE_HEADER.SizeOfOptionalHeader, dw SIZEOFOPTIONALHEADER
at IMAGE_FILE_HEADER.Characteristics, dw CHARACTERISTICS
iend

OptionalHeader:
istruc IMAGE_OPTIONAL_HEADER32
at IMAGE_OPTIONAL_HEADER32.Magic , dw IMAGE_NT_OPTIONAL_HDR32_MAGIC
at IMAGE_OPTIONAL_HEADER32.AddressOfEntryPoint , dd EntryPoint - IMAGEBASE
at IMAGE_OPTIONAL_HEADER32.ImageBase , dd IMAGEBASE
at IMAGE_OPTIONAL_HEADER32.SectionAlignment , dd SECTIONALIGN
at IMAGE_OPTIONAL_HEADER32.FileAlignment , dd FILEALIGN
at IMAGE_OPTIONAL_HEADER32.MajorSubsystemVersion , dw 4
at IMAGE_OPTIONAL_HEADER32.SizeOfImage , dd SIZEOFIMAGE
at IMAGE_OPTIONAL_HEADER32.SizeOfHeaders , dd SIZEOFHEADERS ; can be 0 in some circumstances
at IMAGE_OPTIONAL_HEADER32.Subsystem , dw SUBSYSTEM
at IMAGE_OPTIONAL_HEADER32.NumberOfRvaAndSizes , dd NUMBEROFRVAANDSIZES
iend

DataDirectory:
istruc IMAGE_DATA_DIRECTORY_16
at IMAGE_DATA_DIRECTORY_16.ExportsVA, dd Exports_Directory - IMAGEBASE
at IMAGE_DATA_DIRECTORY_16.ImportsVA, dd IMPORT_DESCRIPTOR - IMAGEBASE
at IMAGE_DATA_DIRECTORY_16.ResourceVA, dd Directory_Entry_Resource - IMAGEBASE
at IMAGE_DATA_DIRECTORY_16.FixupsVA, dd Directory_Entry_Basereloc - IMAGEBASE
at IMAGE_DATA_DIRECTORY_16.FixupsSize, dd DIRECTORY_ENTRY_BASERELOC_SIZE
at IMAGE_DATA_DIRECTORY_16.TLSVA, dd Image_Tls_Directory32 - IMAGEBASE
iend

NUMBEROFRVAANDSIZES equ ($ - DataDirectory) / IMAGE_DATA_DIRECTORY_size

SIZEOFOPTIONALHEADER equ $ - OptionalHeader

SectionHeader:
istruc IMAGE_SECTION_HEADER
; at IMAGE_SECTION_HEADER.VirtualSize, dd SECTION0SIZE
at IMAGE_SECTION_HEADER.VirtualAddress, dd Section0Start - IMAGEBASE
at IMAGE_SECTION_HEADER.SizeOfRawData, dd SECTION0SIZE
at IMAGE_SECTION_HEADER.PointerToRawData, dd Section0Start - IMAGEBASE
at IMAGE_SECTION_HEADER.Characteristics, dd IMAGE_SCN_MEM_EXECUTE + IMAGE_SCN_MEM_WRITE; necessary under Win7 (with DEP?)
iend
NUMBEROFSECTIONS equ ($ - SectionHeader) / IMAGE_SECTION_HEADER_size

align FILEALIGN, db 0
align 1000h, db 0 ; necessary under Win7 x64
SIZEOFHEADERS equ $ - IMAGEBASE

bits 32
Section0Start:

Change log

r453 by ange.albertini on Mar 28, 2011   Diff
turned into a console binary
 => moved TLS as a standard start
procedure
added printing, error messages for
comparison tests
info about unsupported operands,
identified OS
tuned rdtsc / gs anti debugs

onesec.hdr : subsystem now changeable
Go to: 
Project members, sign in to write a code review

Older revisions

r440 by ange.albertini on Mar 23, 2011   Diff
minor tweaks
r406 by ange.albertini on Mar 7, 2011   Diff
added _c _d _ macros to consts
onesec now writeable section, for
higher compatibility:

all import*.asm: reorganized code,
...
r330 by ange.albertini on Dec 14, 2010   Diff
Added header padding for Win7 x64
compatibility
All revisions of this file

File info

Size: 2977 bytes, 70 lines
Powered by Google Project Hosting