最烦打代码了,但是貌似代码是最高效的方式……
之前手动往PE文件中注入代码添加ShellCode,最近手动往PE文件中注入代码,貌似就是捆绑吧………………
1
------------------------------------------
正
题
分
割
线------------------------------------------
工具:一个想添加ShellCode的程序,VS2013
步骤为VS中的注释
-/******************************************************************************************/
//步骤分为五个 */
//1,将文件读取到缓冲区,用pFileBuffer接收吗,构造ShellCode(); */
//2,根据对齐的情况来,将接收的FileBuffer 手动转换为ImageBuffer; */
//3,向已经转换完成的ImageBuffer的代码空白区; */
//4,补充完ShellCode; */
//5,更改OEP; */
/*******************************************************************************************/
ps:貌似PE文件的类型在这两个头文件中
#include <atlbase.h>
#include <atlstr.h>
这里我用的程序是win自带的notepad;
首先将文件读入缓冲区;
<input type="checkbox">1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
DWORDReadPEFile(INLPSTRlpszFile,OUTLPVOID*FileBuffer)
{
FILE*pFile=NULL;
DWORDfileSize=0;
//定义一个可以含有内存空间的类型
LPVOIDpFileBuffer=NULL;
//打开文件
fopen_s(&pFile,lpszFile,"rb");
if(!pFile)
{
printf("无法打开EXE文件!");
returnNULL;
}
else
{
printf("Successful!\n");
}
//读取文件大小
fseek(pFile,0,SEEK_END);
fileSize=ftell(pFile);
fseek(pFile,0,SEEK_SET);
//分配缓冲区
pFileBuffer=malloc(fileSize);
if(!pFileBuffer)
{
printf("分配空间失败!");