windows obj文件格式解析
2021-05-30 07:20
标签:sizeof block nali lock winhex use oca vs2013 tor 1.首先vs 2013建立工程生成obj文件,如下图。 2.打开CMD命令行模式,用工具dumpbin执行以下命令对test.obj进行解析。 dumpbin /all test.obj > test.txt obj解析信息会保存在test.txt文件中。 obj文件它的格式其实就是COFF(通用对象文件格式)文件格式。 用winhex文件打开test.obj文件 Option Header值为0,所以没有。 Section Header: #节1 对应结构体: #节2 #节3 #节4 上述四个节没有”行号项“和”重定位项“ #节5 这个节有5个重定位项,有不同的类型Type,在raw data中用 00 填充,在链接时,该出数字会进行改变。 重定位结构体如下: #节6 #节7 #节8 #节9 #节A Symbol Table: 符号表的数据结构 String Table: 字符串表前四个字节表示字符串表的长度,上图中的0xA5。 4.最后的文件布局如下图: windows obj文件格式解析 标签:sizeof block nali lock winhex use oca vs2013 tor 原文地址:https://www.cnblogs.com/pro-love/p/10917483.html1 typedef struct _IMAGE_FILE_HEADER {
2 WORD Machine;
3 WORD NumberOfSections;
4 DWORD TimeDateStamp;
5 DWORD PointerToSymbolTable;
6 DWORD NumberOfSymbols;
7 WORD SizeOfOptionalHeader;
8 WORD Characteristics;
9 } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
1 typedef struct _IMAGE_SECTION_HEADER {
2 BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
3 union {
4 DWORD PhysicalAddress;
5 DWORD VirtualSize;
6 } Misc;
7 DWORD VirtualAddress;
8 DWORD SizeOfRawData;
9 DWORD PointerToRawData;
10 DWORD PointerToRelocations;
11 DWORD PointerToLinenumbers;
12 WORD NumberOfRelocations;
13 WORD NumberOfLinenumbers;
14 DWORD Characteristics;
15 } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
typedef struct _IMAGE_BASE_RELOCATION {
DWORD VirtualAddress;
DWORD SizeOfBlock;
// WORD TypeOffset[1];
} IMAGE_BASE_RELOCATION;
typedef IMAGE_BASE_RELOCATION UNALIGNED * PIMAGE_BASE_RELOCATION;
typedef struct _IMAGE_SYMBOL {
union {
BYTE ShortName[8];
struct {
DWORD Short; // if 0, use LongName
DWORD Long; // offset into string table
} Name;
DWORD LongName[2]; // PBYTE [2]
} N;
DWORD Value;
SHORT SectionNumber;
WORD Type;
BYTE StorageClass;
BYTE NumberOfAuxSymbols;
} IMAGE_SYMBOL;
typedef IMAGE_SYMBOL UNALIGNED *PIMAGE_SYMBOL;