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

📄 cloadconfigripper.cpp

📁 pe exe packer (must use vc2005 to compile)
💻 CPP
字号:
// Author:   Brandon LaCombe
// Date:     February 3, 2006
// License:  Public Domain
#include "CLoadConfigRipper.h"
#include "..\..\FileTools.h"
#include "..\..\remem.h"

// class constructor

// Class constructor.
CLoadConfigRipper::CLoadConfigRipper()
{
    m_bOutput = FALSE;
    m_bStrip = FALSE;
}

// Exports load config table.
VOID CLoadConfigRipper::Export(PVOID pvOutput)
{
    if(pvOutput && m_bOutput && m_bStrip == FALSE)
        *PIMAGE_LOAD_CONFIG_DIRECTORY(pvOutput) = m_LoadConfig;
}

// Returns size of data exported.
DWORD CLoadConfigRipper::GetSize()
{
    DWORD dwSize;

    dwSize = 0;
    if(m_bOutput && m_bStrip == FALSE)
        dwSize = sizeof(IMAGE_LOAD_CONFIG_DIRECTORY);
    return dwSize;
}

// Loads input file. Returns FALSE if no load config table exists.
BOOL CLoadConfigRipper::LoadFile(PBYTE pbFile)
{
    BOOL              bRet;
    DWORD             dwLoadConfigRva;
    PIMAGE_NT_HEADERS pNt;

    bRet = FALSE;
    m_pbFile = pbFile;
    pNt = PIMAGE_NT_HEADERS(pbFile + PIMAGE_DOS_HEADER(pbFile)->e_lfanew);
    dwLoadConfigRva = pNt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress;
    m_pLoadConfig = (PIMAGE_LOAD_CONFIG_DIRECTORY)RvaToPointer(pbFile, dwLoadConfigRva);
    if(m_pLoadConfig) bRet = TRUE;
    return bRet;
}

// Rips load config table from the input.
VOID CLoadConfigRipper::Rip(PVOID pvFile)
{
    m_bOutput = FALSE;
    if(LoadFile((PBYTE)pvFile))
    {
        m_LoadConfig = *m_pLoadConfig;
        ZeroMemory(m_pLoadConfig, sizeof(IMAGE_LOAD_CONFIG_DIRECTORY));
        m_bOutput = TRUE;
    }
}

// Sets strip flag.
VOID CLoadConfigRipper::Strip(BOOL bStrip)
{
    m_bStrip = bStrip;
}

⌨️ 快捷键说明

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