home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

技術/Windows/PE(Portable Executable)フォーマットの実験/04, 各種構造体のサイズ

技術/Windows/PE(Portable Executable)フォーマットの実験/04, 各種構造体のサイズ

技術 / Windows / PE(Portable Executable)フォーマットの実験 / 04, 各種構造体のサイズ
id: 710 所有者: msakamoto-sf    作成日: 2010-07-14 23:35:17
カテゴリ: C言語 Windows hacks 

PEフォーマット関連で頻出する構造体のサイズ一覧
(WinXP SP3, Pentium4, 32bit環境のVisual C++ 2008 Express Edition)

hex,   dec   : structure typedef
--------------------------------
0x0040,   64 : sizeof(IMAGE_DOS_HEADER)
0x00F8,  248 : sizeof(IMAGE_NT_HEADERS)
0x0014,   20 : sizeof(IMAGE_FILE_HEADER)
0x00E0,  224 : sizeof(IMAGE_OPTIONAL_HEADER)
0x0008,    8 : sizeof(IMAGE_DATA_DIRECTORY)
0x0028,   40 : sizeof(IMAGE_SECTION_HEADER)
0x0012,   18 : sizeof(IMAGE_SYMBOL)
0x0012,   18 : sizeof(IMAGE_AUX_SYMBOL)
0x000A,   10 : sizeof(IMAGE_RELOCATION)
0x0008,    8 : sizeof(IMAGE_BASE_RELOCATION)
0x003C,   60 : sizeof(IMAGE_ARCHIVE_MEMBER_HEADER)
0x0028,   40 : sizeof(IMAGE_EXPORT_DIRECTORY)
0x0004,    4 : sizeof(IMAGE_IMPORT_BY_NAME)
0x0004,    4 : sizeof(IMAGE_THUNK_DATA)
0x0014,   20 : sizeof(IMAGE_IMPORT_DESCRIPTOR)
0x0008,    8 : sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR)
0x0008,    8 : sizeof(IMAGE_BOUND_FORWARDER_REF)
0x0010,   16 : sizeof(IMAGE_RESOURCE_DIRECTORY)
0x0008,    8 : sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY)
0x0048,   72 : sizeof(IMAGE_LOAD_CONFIG_DIRECTORY)

ソース:

#include <windows.h>
#include <stdio.h>
 
#define print_sz(structure) { \
    sz = sizeof(structure); \
    printf("0x%04X, %4d : sizeof(" #structure ")\n", sz, sz); \
}
 
int main(int argc, char *argv[])
{
    size_t sz;
    
    printf("hex,   dec   : structure typedef\n");
    printf("--------------------------------\n");
    print_sz(IMAGE_DOS_HEADER);
    print_sz(IMAGE_NT_HEADERS);
    print_sz(IMAGE_FILE_HEADER);
    print_sz(IMAGE_OPTIONAL_HEADER);
    print_sz(IMAGE_DATA_DIRECTORY);
    print_sz(IMAGE_SECTION_HEADER);
    print_sz(IMAGE_SYMBOL);
    print_sz(IMAGE_AUX_SYMBOL);
    print_sz(IMAGE_RELOCATION);
    print_sz(IMAGE_BASE_RELOCATION);
    print_sz(IMAGE_ARCHIVE_MEMBER_HEADER);
    print_sz(IMAGE_EXPORT_DIRECTORY);
    print_sz(IMAGE_IMPORT_BY_NAME);
    print_sz(IMAGE_THUNK_DATA);
    print_sz(IMAGE_IMPORT_DESCRIPTOR);
    print_sz(IMAGE_BOUND_IMPORT_DESCRIPTOR);
    print_sz(IMAGE_BOUND_FORWARDER_REF);
    print_sz(IMAGE_RESOURCE_DIRECTORY);
    print_sz(IMAGE_RESOURCE_DIRECTORY_ENTRY);
    print_sz(IMAGE_LOAD_CONFIG_DIRECTORY);
    return 0;
}


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-07-14 23:37:07
md5:84fc187d3fb63212189a8b33df937704
sha1:75d8c0009192c0c313074a978153eb08b8b239e3
コメント
コメントを投稿するにはログインして下さい。