文件基础操作-PE结构

windows 的各种文件
EXE
TXT 文本
JPG 图形
lnk 快捷方式
rar 7z zip 压缩文件
avi mp4 rmvb 影音文件
。。。。。。。 很多
总体划分
exe dll 可执行文件
其他 数据文件

文件打开
CreateFile
可执行
CreateProcess
系统是如何划分可执行和不可执行?

PE结构
DOS头
NT头
数据

免杀
数据和 PE结构调换 下载之后 运行还原

IMAGE_DOS_HEADER dos头 里面的 e_magic 标志位 MZ e_lfanew偏移位 真正的偏移头

IMAGE_NT_HEADER32 真正的exe头 标志位 Signature

做一个有意思的事情 判断是否是一个可执行文件 (MFC代码)
	CFileDialog cFileDlg(TRUE);
	CString strBuf(L"Yes Pe");
	if (cFileDlg.DoModal() ==IDOK)
	{
		CFile cFile(cFileDlg.GetPathName(), CFile::modeRead);
		do
		{
			IMAGE_DOS_HEADER dosHeader;
			cFile.Read(&dosHeader, sizeof(IMAGE_DOS_HEADER));
			if (dosHeader.e_magic != IMAGE_DOS_SIGNATURE)
			{
				strBuf = L" NO PE";
				break;
			}
			IMAGE_NT_HEADERS32 ntHeader;
			cFile.Seek(dosHeader.e_lfanew, CFile::begin);
			cFile.Read(&ntHeader, sizeof(IMAGE_NT_HEADERS));

			if (ntHeader.Signature !=IMAGE_NT_SIGNATURE)
			{
				strBuf = L" NO PE";
				break;
			}
		}
		while (false);
		SetWindowText(strBuf);
		cFile.Close();
	}


猜你喜欢

转载自blog.csdn.net/w739639550/article/details/77880363
今日推荐