亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cfileheaderripper.cpp

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

// global variables
BYTE g_bPEStub[] = {0x0E, 0x1F, 0xBA, 0x0E, 0x00, 0xB4, 0x09, 0xCD, 0x21, 0xB8, 0x01, 0x4C, 0xCD, 0x21, 0x54, 0x68,
                    0x69, 0x73, 0x20, 0x70, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x20, 0x63, 0x61, 0x6E, 0x6E, 0x6F,
                    0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6E, 0x20, 0x69, 0x6E, 0x20, 0x44, 0x4F, 0x53, 0x20,
                    0x6D, 0x6F, 0x64, 0x65, 0x2E, 0x0D, 0x0D, 0x0A, 0x24, 0x00, 0x00, 0x00};

// code start

// Class constructor.
CFileHeaderRipper::CFileHeaderRipper()
{
    m_dwHeaderSize = 0;
    m_pbHeader = NULL;
    m_dwFileAlignment = 0x200;
    m_pszSectionName = NULL;
    m_bNewHeader = FALSE;
    m_bCombine = FALSE;
}

// Class destructor.
CFileHeaderRipper::~CFileHeaderRipper()
{
    if(m_pbHeader)
        VirtualFree(m_pbHeader, 0, MEM_RELEASE);
}

// Sets the flag that tells the ripper to combine all existing sections into
// one section. (aka max packing mode)
VOID CFileHeaderRipper::CombineSections(BOOL bCombine)
{
    m_bCombine = bCombine;
}

// Creates a new header with the sections combined (max new header)
VOID CFileHeaderRipper::CreateHeader(PBYTE pbFile)
{
    PBYTE                 pbOutputPtr;
    PIMAGE_NT_HEADERS     pInNt,
                          pOutNt;
    PIMAGE_SECTION_HEADER pOutSec;
    PIMAGE_DOS_HEADER     pOutDos;
    DWORD                 x;

    // allocate header memory
    m_dwHeaderSize = sizeof(IMAGE_DOS_HEADER) +
                     sizeof(g_bPEStub) +
                     sizeof(IMAGE_NT_HEADERS) +
                     sizeof(IMAGE_SECTION_HEADER) * 2;
    m_dwHeaderSize = align(m_dwHeaderSize, m_dwFileAlignment);

    m_pbHeader = (PBYTE)VirtualAlloc(NULL, m_dwHeaderSize, MEM_COMMIT, PAGE_READWRITE);
    ZeroMemory(m_pbHeader, m_dwHeaderSize);
    pbOutputPtr = m_pbHeader;

    // fill out dos header
    pOutDos = PIMAGE_DOS_HEADER(pbOutputPtr);
    pbOutputPtr += sizeof(IMAGE_DOS_HEADER);
    pOutDos->e_magic = IMAGE_DOS_SIGNATURE;
    pOutDos->e_cblp = 0x90;
    pOutDos->e_cp = 0x3;
    pOutDos->e_cparhdr = 0x4;
    pOutDos->e_maxalloc = 0xFFFF;
    pOutDos->e_sp = 0xB8;
    pOutDos->e_lfarlc = 0x40;
    pOutDos->e_lfanew = sizeof(IMAGE_DOS_HEADER) + sizeof(g_bPEStub);

    // copy dos stub
    CopyMemory(pbOutputPtr, g_bPEStub, sizeof(g_bPEStub));
    pbOutputPtr += sizeof(g_bPEStub);

    // fill out nt header
    pInNt = PIMAGE_NT_HEADERS(pbFile + PIMAGE_DOS_HEADER(pbFile)->e_lfanew);
    pOutNt = PIMAGE_NT_HEADERS(pbOutputPtr);
    pbOutputPtr += sizeof(IMAGE_NT_HEADERS);
    *pOutNt = *pInNt;
    pOutNt->FileHeader.NumberOfSections = 2;
    pOutNt->OptionalHeader.FileAlignment = m_dwFileAlignment;
    pOutNt->OptionalHeader.SizeOfHeaders = m_dwHeaderSize;

    // fill out section table
    pOutSec = PIMAGE_SECTION_HEADER(pbOutputPtr);
    pbOutputPtr += (sizeof(IMAGE_SECTION_HEADER) * 2);
    if(m_pszSectionName)
    {
        for(x = 0; m_pszSectionName[x] && x < IMAGE_SIZEOF_SHORT_NAME; x++)
        {
            pOutSec[0].Name[x] = (BYTE)m_pszSectionName[x];
            pOutSec[1].Name[x] = (BYTE)m_pszSectionName[x];
        }
    }
    pOutSec[0].PointerToRawData = m_dwHeaderSize;
    pOutSec[0].Characteristics = IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE;
    pOutSec[1].Characteristics = IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE;
    pOutSec[0].VirtualAddress = align(m_dwHeaderSize, pOutNt->OptionalHeader.SectionAlignment);
    pOutSec[1].VirtualAddress = CalculateNewSectionRva(pbFile);
    pOutSec[0].Misc.VirtualSize = pOutSec[1].VirtualAddress - pOutSec[0].VirtualAddress;
}

// Exports file header.
VOID CFileHeaderRipper::Export(PVOID pvOutput)
{
    CopyMemory(pvOutput, m_pbHeader, m_dwHeaderSize);
}

// Returns file header size.
DWORD CFileHeaderRipper::GetSize()
{
    return m_dwHeaderSize;
}

// Tells the class to create a new header.
VOID CFileHeaderRipper::NewHeader(BOOL bNewHeader)
{
    m_bNewHeader = bNewHeader;
}

// Driver for creating the file header.
VOID CFileHeaderRipper::Rip(PVOID pvFile)
{
    // if we are in max new header mode then create a new header
    // otherwise derive the file header from the existing header
    if(m_bCombine && m_bNewHeader)
        CreateHeader((PBYTE)pvFile);
    else
        RipHeader((PBYTE)pvFile);
}

// Rips the original file header and adds a section to it. If we are in combine
// mode it will also compress the existing sections into one section.
VOID CFileHeaderRipper::RipHeader(PBYTE pbFile)
{
    DWORD                 dwActualHeaderSize,
                          dwNtHeaderEnd,
                          dwSectionCount,
                          x;
    PIMAGE_NT_HEADERS     pInNt,
                          pOutNt;
    PIMAGE_SECTION_HEADER pOutSec;

    // allocate memory for the file header
    pInNt = PIMAGE_NT_HEADERS(pbFile + PIMAGE_DOS_HEADER(pbFile)->e_lfanew);
    dwActualHeaderSize = TrimMemorySize(pbFile, pInNt->OptionalHeader.SizeOfHeaders);
    m_dwHeaderSize = align(dwActualHeaderSize, m_dwFileAlignment);

    // the end of the nt header differs depending on if we are combining sections or not
    if(m_bCombine)
        dwNtHeaderEnd = PIMAGE_DOS_HEADER(pbFile)->e_lfanew + sizeof(IMAGE_NT_HEADERS) + sizeof(IMAGE_SECTION_HEADER) * 2;
    else
        dwNtHeaderEnd = PIMAGE_DOS_HEADER(pbFile)->e_lfanew + sizeof(IMAGE_NT_HEADERS) + sizeof(IMAGE_SECTION_HEADER) * (pInNt->FileHeader.NumberOfSections + 1);

    if(dwNtHeaderEnd > m_dwHeaderSize)
        m_dwHeaderSize = align(dwNtHeaderEnd, m_dwFileAlignment);
    m_pbHeader = (PBYTE)VirtualAlloc(NULL, m_dwHeaderSize, MEM_COMMIT, PAGE_READWRITE);
    ZeroMemory(m_pbHeader, m_dwHeaderSize);
    CopyMemory(m_pbHeader, pbFile, dwActualHeaderSize);

    // adjust nt header
    pOutNt = PIMAGE_NT_HEADERS(m_pbHeader + PIMAGE_DOS_HEADER(m_pbHeader)->e_lfanew);
    pOutSec = PIMAGE_SECTION_HEADER(pOutNt + 1);
    pOutNt->OptionalHeader.FileAlignment = m_dwFileAlignment;
    pOutNt->OptionalHeader.SizeOfHeaders = m_dwHeaderSize;

    // finish adjusting nt header and section header depending on which mode we are in
    if(m_bCombine)
    {
        pOutNt->FileHeader.NumberOfSections = 2;
        ZeroMemory(pOutSec, sizeof(IMAGE_SECTION_HEADER) * 2);
        pOutSec[0].PointerToRawData = m_dwHeaderSize;
        pOutSec[0].Characteristics = IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE;
        pOutSec[1].Characteristics = IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE;
        pOutSec[0].VirtualAddress = align(m_dwHeaderSize, pOutNt->OptionalHeader.SectionAlignment);
        pOutSec[1].VirtualAddress = CalculateNewSectionRva(pbFile);
        pOutSec[0].Misc.VirtualSize = pOutSec[1].VirtualAddress - pOutSec[0].VirtualAddress;

    }
    else
    {
        dwSectionCount = pOutNt->FileHeader.NumberOfSections++;
        ZeroMemory(&pOutSec[dwSectionCount], sizeof(IMAGE_SECTION_HEADER));
        pOutSec[dwSectionCount].Characteristics = IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE;
        pOutSec[dwSectionCount].VirtualAddress = CalculateNewSectionRva(pbFile);
    }

    // set section name
    if(m_pszSectionName)
    {
        for(x = 0; m_pszSectionName[x] && x < IMAGE_SIZEOF_SHORT_NAME; x++)
        {
            // which sections get the section name depend on if we are combining
            if(m_bCombine)
            {
                pOutSec[0].Name[x] = (BYTE)m_pszSectionName[x];
                pOutSec[1].Name[x] = (BYTE)m_pszSectionName[x];
            }
            else
                pOutSec[dwSectionCount].Name[x] = (BYTE)m_pszSectionName[x];
        }
    }
}

// Sets desired file alignment.
VOID CFileHeaderRipper::SetFileAlignment(DWORD dwFileAlignment)
{
    m_dwFileAlignment = dwFileAlignment;
}

// Sets desired section name.
VOID CFileHeaderRipper::SetSectionName(PTSTR pszSectionName)
{
    m_pszSectionName = pszSectionName;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产农村妇女毛片精品久久麻豆 | 不卡在线观看av| 色哟哟在线观看一区二区三区| 欧美一个色资源| 亚洲精品国产视频| 成人午夜短视频| 日韩一级高清毛片| 亚洲永久免费视频| 成人免费va视频| 久久久99久久| 激情综合网最新| 在线播放中文字幕一区| 亚洲男人电影天堂| 成人午夜电影小说| 国产亚洲1区2区3区| 久久国产综合精品| 欧美一区二区视频在线观看| 亚洲狠狠丁香婷婷综合久久久| 成人午夜在线免费| 中日韩免费视频中文字幕| 狠狠色丁香久久婷婷综合丁香| 欧美福利视频一区| 午夜日韩在线观看| 91精品午夜视频| 天天色图综合网| 91精品福利在线一区二区三区 | 91精品久久久久久久久99蜜臂| 亚洲素人一区二区| 波多野结衣在线一区| 国产精品盗摄一区二区三区| 成人av电影免费在线播放| 久久久久久久久久美女| 国产精品一级二级三级| 国产日韩欧美激情| 成人免费视频国产在线观看| 国产欧美日韩激情| 91在线免费看| 一区二区三区视频在线看| 欧美在线高清视频| 三级在线观看一区二区| 国产成人福利片| 1区2区3区精品视频| 在线看国产一区| 亚洲va欧美va人人爽| 欧美剧在线免费观看网站| 免费xxxx性欧美18vr| 精品国产乱码久久久久久免费 | 中文av一区二区| 色女孩综合影院| 日韩不卡在线观看日韩不卡视频| 日韩欧美另类在线| 成人av免费在线观看| 亚洲国产人成综合网站| 精品精品国产高清a毛片牛牛| 国产精品一级片| 亚洲欧美日韩小说| 日韩三区在线观看| eeuss鲁一区二区三区| 亚洲一区二区三区小说| 日韩一区二区三区在线观看| 国产精品一区2区| 亚洲激情av在线| 欧美不卡一区二区三区四区| 国产成人99久久亚洲综合精品| 亚洲精品国产a| 欧美成人欧美edvon| 99国产一区二区三精品乱码| 午夜电影久久久| 中文欧美字幕免费| 欧美老肥妇做.爰bbww| 国产不卡一区视频| 激情五月播播久久久精品| 久久精品一二三| 911精品国产一区二区在线| 国产精品一区二区久久精品爱涩| 亚洲午夜精品在线| 日本一区二区不卡视频| 91精品午夜视频| 91行情网站电视在线观看高清版| 激情综合网最新| 亚洲高清在线精品| 国产精品久久久久影院亚瑟| 日韩欧美一区在线| 91精彩视频在线观看| 国产不卡高清在线观看视频| 日韩高清不卡一区二区| 一区二区三区四区五区视频在线观看 | 亚洲精品一卡二卡| 国产婷婷色一区二区三区四区 | 欧美男女性生活在线直播观看| 国产精品1区2区| 久久国产人妖系列| 婷婷久久综合九色国产成人 | 国产视频不卡一区| 日韩欧美国产一区二区在线播放| 在线观看网站黄不卡| 成人国产精品免费观看| 精久久久久久久久久久| 奇米影视在线99精品| 亚洲国产日韩综合久久精品| 亚洲乱码中文字幕综合| 国产精品久久久久久久久久久免费看 | 一区二区三区四区不卡在线 | 午夜欧美2019年伦理| 亚洲欧美国产77777| 亚洲欧洲www| 国产精品美女久久久久久久 | 五月婷婷综合网| 亚洲精品自拍动漫在线| 亚洲欧美激情在线| 亚洲成a人v欧美综合天堂下载| 一区二区视频在线| 夜夜精品浪潮av一区二区三区| 亚洲欧洲无码一区二区三区| 国产精品视频免费看| 国产精品对白交换视频| √…a在线天堂一区| 日韩美女视频一区| 亚洲一区自拍偷拍| 天天综合日日夜夜精品| 久久精品国产精品青草| 日韩高清在线电影| 精品亚洲免费视频| 狠狠色综合播放一区二区| 国产91丝袜在线播放九色| 国产成人精品在线看| 成年人网站91| 欧美色中文字幕| 日韩免费视频一区二区| 国产午夜精品一区二区三区嫩草 | 亚洲美女在线一区| 亚洲国产wwwccc36天堂| 美女网站一区二区| 国产精品夜夜爽| 色婷婷综合久久| 欧美一区二区三区免费大片| 久久伊人蜜桃av一区二区| 国产欧美日韩精品a在线观看| 亚洲欧美日韩在线| 青青草97国产精品免费观看无弹窗版| 久久av老司机精品网站导航| 国产v综合v亚洲欧| 欧美三级视频在线| 久久综合久久综合亚洲| 亚洲欧美日韩系列| 麻豆久久久久久久| 91亚洲精华国产精华精华液| 91精品国产综合久久小美女| 国产日韩三级在线| 亚洲成人精品在线观看| 韩国成人福利片在线播放| 97精品久久久午夜一区二区三区 | 日本丶国产丶欧美色综合| 欧美精品一级二级| 日本一区二区三区视频视频| 亚洲福利一二三区| 成人国产精品视频| 欧美精品丝袜中出| 自拍av一区二区三区| 国内精品久久久久影院薰衣草| 91在线porny国产在线看| 日韩西西人体444www| 亚洲免费av网站| 懂色av中文一区二区三区| 91麻豆精品国产自产在线| 亚洲素人一区二区| 国产黄色精品网站| 在线观看91av| 亚洲自拍另类综合| 成人黄色a**站在线观看| 日韩三级在线观看| 一区二区三区精品在线观看| 国产91富婆露脸刺激对白| 日韩一区二区视频在线观看| 一区二区三区中文字幕精品精品 | 在线播放日韩导航| 一区二区三区在线影院| 波波电影院一区二区三区| 精品欧美乱码久久久久久1区2区| 亚洲成av人片在线观看无码| 色婷婷精品久久二区二区蜜臀av| 日韩午夜激情视频| 五月婷婷另类国产| 欧美亚洲图片小说| 亚洲免费大片在线观看| 不卡在线视频中文字幕| 中文字幕av在线一区二区三区| 国产在线不卡一卡二卡三卡四卡| 欧美一区二区三区视频免费| 爽好多水快深点欧美视频| 欧美在线你懂的| 亚洲国产成人精品视频| 欧美无砖专区一中文字| 亚洲免费在线视频| 在线亚洲一区二区| 亚洲免费av高清| 在线观看亚洲精品视频| 亚洲va天堂va国产va久| 欧美日韩三级一区二区| 天天操天天干天天综合网|