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

📄 dbgdump.c

📁 Windows 95 系統程式設計大奧秘书籍源码
💻 C
字号:
//==================================
// PEDUMP - Matt Pietrek 1995
// FILE: DBGDUMP.C
//==================================

#include <windows.h>
#include <stdio.h>
#include "common.h"
#include "extrnvar.h"
#include "dbgdump.h"

void DumpImageDbgHeader(PIMAGE_DBG_HEADER pImageDbgHeader)
{
    UINT headerFieldWidth = 30;

    printf("  %-*s%04X\n", headerFieldWidth, "Machine:",
                pImageDbgHeader->Machine);
    printf("  %-*s%04X\n", headerFieldWidth, "Characteristics:",
                pImageDbgHeader->Characteristics);
    printf("  %-*s%08X\n", headerFieldWidth, "TimeDateStamp:",
                pImageDbgHeader->TimeDateStamp);
    printf("  %-*s%08X\n", headerFieldWidth, "Checksum:",
                pImageDbgHeader->Checksum);
    printf("  %-*s%08X\n", headerFieldWidth, "Size of Image:",
                pImageDbgHeader->SizeOfImage);
    printf("  %-*s%08X\n", headerFieldWidth, "unknown1:",
                pImageDbgHeader->unknown1);
    printf("  %-*s%04X\n", headerFieldWidth, "Number of Sections:",
                pImageDbgHeader->NumberOfSections);
    printf("  %-*s%04X\n", headerFieldWidth, "unknown2:",
                pImageDbgHeader->unknown2);
    printf("  %-*s%08X\n", headerFieldWidth, "DebugDirOffset:",
                pImageDbgHeader->OffsetOfDebugDirectory);
    printf("  %-*s%08X\n", headerFieldWidth, "DebugDirSize:",
                pImageDbgHeader->SizeOfDebugDirectory);
    printf("  %-*s%08X\n", headerFieldWidth, "unknown5:",
                pImageDbgHeader->unknown5);
    printf("  %-*s%08X\n", headerFieldWidth, "unknown6:",
                pImageDbgHeader->unknown6);
    printf("  %-*s%08X\n", headerFieldWidth, "unknown7:",
                pImageDbgHeader->unknown7);
}

void DumpDbgFile( PIMAGE_DBG_HEADER pImageDbgHeader )
{
    DumpImageDbgHeader(pImageDbgHeader);
    printf("\n");
    
    DumpSectionTable( (PIMAGE_SECTION_HEADER)(pImageDbgHeader+1),
                        pImageDbgHeader->NumberOfSections, TRUE);
                    
    DumpDebugDirectory(
        MakePtr(PIMAGE_DEBUG_DIRECTORY,
        pImageDbgHeader, sizeof(IMAGE_DBG_HEADER) +
        (pImageDbgHeader->NumberOfSections * sizeof(IMAGE_SECTION_HEADER))
        + pImageDbgHeader->OffsetOfDebugDirectory),
        pImageDbgHeader->SizeOfDebugDirectory,
        (DWORD)pImageDbgHeader);
    
    printf("\n");
    
    if ( PCOFFDebugInfo )
        DumpCOFFHeader( PCOFFDebugInfo );
    
    printf("\n");

    DumpSymbolTable( MakePtr(PIMAGE_SYMBOL, PCOFFDebugInfo,
                                PCOFFDebugInfo->LvaToFirstSymbol),
                    PCOFFDebugInfo->NumberOfSymbols );
}

⌨️ 快捷键说明

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