资源简介
将要绑定的exe文件作为单纯的数据放在目标exe文件的新区快当中,目标文件在执行时检测是否有该区块,有,则创建新文件并创建进程,执行完毕后删除新建文件
代码片段和文件信息
// PE文件捆绑.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include
#include
#include
using namespace std;
#pragma comment(lib“ImageHlp.lib“)
char* strFileTarget=“D:\\D.exe“;
int gSectionNum=0;
int gSectionAlign=0;
int gFileAlign=0;
char* gFileA=“D:\\tmpA.exe“;
char* gFileB=“D:\\tmpB.exe“;
char* gExeBufferA=NULL;
char* gExeBufferB=NULL;
int gdwFileSizeA=0;
int gdwFileSizeB=0;
////////////////////////////////////////////////////////
//函数名称:getAlign
//函数描述:根据固有对其值和将要对其的大小,返回应有大小
////////////////////////////////////////////////////////
int getAlign(int Alignint target)
{
if(target {
return Align;
}
else if(target%Align)
{
return (target/Align+1)*Align;
}
else
{
return target;
}
}
////////////////////////////////////////////////////////
//函数结束
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
//函数名称:fileToStream
//函数描述:根据固有对其值和将要对其的大小,返回应有大小
////////////////////////////////////////////////////////
char* fileTostream(char* srcExePathAchar* srcExePathB)
{
//开始读取第一个文件
HANDLE hFileA=CreateFile(srcExePathAGENERIC_ALLFILE_SHARE_READNULLOPEN_EXISTING00);
DWORD dwTmp=0;
if(hFileA==INVALID_HANDLE_VALUE)
{
int errNum=GetLastError();
MessageBox(NULL“对不起,文件打开失败“00);
return 0;
}
gdwFileSizeA=GetFileSize(hFileA0);
gExeBufferA=new char[gdwFileSizeA+1];
memset(gExeBufferA0gdwFileSizeA+1);
ReadFile(hFileAgExeBufferAgdwFileSizeA&dwTmpNULL);
CloseHandle(hFileA);
//开始读取第二个文件
HANDLE hFileB=CreateFile(srcExePathBGENERIC_ALLFILE_SHARE_READNULLOPEN_EXISTING00);
if(hFileB==INVALID_HANDLE_VALUE)
{
MessageBox(NULL“对不起,文件打开失败“00);
return 0;
}
gdwFileSizeB=GetFileSize(hFileB0);
gExeBufferB=new char[gdwFileSizeB+1];
memset(gExeBufferB0gdwFileSizeB+1);
ReadFile(hFileBgExeBufferBgdwFileSizeB&dwTmpNULL);
CloseHandle(hFileB);
}
////////////////////////////////////////////////////////
//函数结束
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
//函数名称:editTarget
//函数描述:编辑目标exe文件,将待捆绑文件作为数据放在新
// 区块中
////////////////////////////////////////////////////////
void editTarget()
{
//尝试打开文件
HANDLE hFile=CreateFile(strFileTargetGENERIC_ALLFILE_SHARE_READNULLOPEN_EXISTINGFILE_ATTRIBUTE_NORMALNULL);
if(INVALID_HANDLE_VALUE==hFile)
{
int srrNum=GetLastError();
MessageBox(NULL“文件打开失败“00);
return ;
}
//获得文件大小
DWORD dwFileSize=GetFileSize(hFile0);
//尝试映射到内存
HANDLE hMap=CreateFileMapping(hFileNULLPAGE_EXECUTE_READWRITE0dwFileSize+getAlign(512gdwFileSizeA)+getAlign(512gdwFileSizeB)0);
if(INVALID_HANDLE_VALUE==hMap)
{
MessageBox(NULL“文件映射失败“00);
return ;
}
LPVOID lpbase=MapViewOfFile(hMapFILE_MAP_READ|FILE_MAP_WRITE000);
//获得文件的DOS头部
PIMAGE_DOS_HEADER pDosHeader=(PIMAGE_DOS_HEADER)lpBas
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 31232 2013-12-16 19:01 PE文件捆绑\Debug\PE文件捆绑.exe
文件 481360 2013-12-16 19:01 PE文件捆绑\Debug\PE文件捆绑.ilk
文件 789504 2013-12-16 19:01 PE文件捆绑\Debug\PE文件捆绑.pdb
文件 2752512 2013-12-16 19:34 PE文件捆绑\ipch\pe文件捆绑-fa109b0\pe文件捆绑-cd878255.ipch
文件 1674 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\cl.command.1.tlog
文件 22078 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\CL.read.1.tlog
文件 1280 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\CL.write.1.tlog
文件 2 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\li
文件 2 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\li
文件 2 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\li
文件 2 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\li
文件 2 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\li
文件 2 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\li
文件 2044 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\li
文件 3732 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\li
文件 1342 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\li
文件 450 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\mt.command.1.tlog
文件 450 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\mt.read.1.tlog
文件 450 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\mt.write.1.tlog
文件 406 2013-12-14 09:15 PE文件捆绑\PE文件捆绑\Debug\PE文件捆绑.exe.em
文件 472 2013-12-14 09:15 PE文件捆绑\PE文件捆绑\Debug\PE文件捆绑.exe.em
文件 381 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\PE文件捆绑.exe.intermediate.manifest
文件 103 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\PE文件捆绑.lastbuildstate
文件 2814 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\PE文件捆绑.log
文件 63332 2013-12-16 19:01 PE文件捆绑\PE文件捆绑\Debug\PE文件捆绑.obj
文件 1245184 2013-12-15 18:05 PE文件捆绑\PE文件捆绑\Debug\PE文件捆绑.pch
文件 202 2013-12-14 09:15 PE文件捆绑\PE文件捆绑\Debug\PE文件捆绑_manifest.rc
文件 658 2013-12-14 09:15 PE文件捆绑\PE文件捆绑\Debug\rc.command.1.tlog
文件 422 2013-12-14 09:15 PE文件捆绑\PE文件捆绑\Debug\rc.read.1.tlog
文件 430 2013-12-14 09:15 PE文件捆绑\PE文件捆绑\Debug\rc.write.1.tlog
............此处省略78个文件信息
- 上一篇:硬件安全攻防大揭秘.pdf.tar.gz
- 下一篇:线性代数及其应用_第四版.rar
评论
共有 条评论