資源簡介
將要綁定的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
評論
共有 條評論