C++获取PE文件的入口点
2013-03-12 22:29
344 查看
2009-10-07 10:17
#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char* argv[])
{
char *FileName = argv[1];
HANDLE hFile = CreateFile(FileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0);
if (hFile == INVALID_HANDLE_VALUE)
{
cout<<"文件打开失败!"<<endl;
return -1;
}
IMAGE_DOS_HEADER dosHeader;
bool bRet;
DWORD readSize;
bRet = ReadFile(hFile,&dosHeader,sizeof(dosHeader),&readSize,NULL);
if (!bRet)
{
cout<<"读取文件失败!"<<endl;
return -1;
}
cout<<hex<<dosHeader.e_lfanew<<endl;
IMAGE_NT_HEADERS peHeader;
SetFilePointer(hFile,dosHeader.e_lfanew,NULL,FILE_BEGIN);
bRet = ReadFile(hFile,&peHeader,sizeof(peHeader),&readSize,NULL);
if (!bRet)
{
cout<<"读取文件失败!"<<endl;
return -1;
}
IMAGE_OPTIONAL_HEADER imOpHeader;
imOpHeader = peHeader.OptionalHeader;
cout<<imOpHeader.AddressOfEntryPoint<<endl;
CloseHandle(hFile);
return 0;
}
C++获取PE文件的入口点
源码:#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char* argv[])
{
char *FileName = argv[1];
HANDLE hFile = CreateFile(FileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0);
if (hFile == INVALID_HANDLE_VALUE)
{
cout<<"文件打开失败!"<<endl;
return -1;
}
IMAGE_DOS_HEADER dosHeader;
bool bRet;
DWORD readSize;
bRet = ReadFile(hFile,&dosHeader,sizeof(dosHeader),&readSize,NULL);
if (!bRet)
{
cout<<"读取文件失败!"<<endl;
return -1;
}
cout<<hex<<dosHeader.e_lfanew<<endl;
IMAGE_NT_HEADERS peHeader;
SetFilePointer(hFile,dosHeader.e_lfanew,NULL,FILE_BEGIN);
bRet = ReadFile(hFile,&peHeader,sizeof(peHeader),&readSize,NULL);
if (!bRet)
{
cout<<"读取文件失败!"<<endl;
return -1;
}
IMAGE_OPTIONAL_HEADER imOpHeader;
imOpHeader = peHeader.OptionalHeader;
cout<<imOpHeader.AddressOfEntryPoint<<endl;
CloseHandle(hFile);
return 0;
}
相关文章推荐
- 获取PE文件入口点
- PE文件详解中(C++版)
- C++ 通过文件路径获取文件名
- C/C++多种方法获取文件大小(转)
- C和C++获取文件大小的方法总结
- C++ 获取目录下的文件
- PE文件信息获取工具-PEINFO
- C++ 读取PE文件并十六进制打印输出
- linux下获取所有文件夹和文件,支持nfs和xfs(C++实现)
- 根据PE文件格式获取LoadLibraryA()
- C++ 文件路径操作相关函数、获取dll所在的路径
- C++获取目录下的文件列表
- C/C++多种方法获取文件大小
- C++程序中获取不带文件路径和后缀的文件名
- linux C++获取目录下文件列表
- 在C/C++中获取可执行文件的图标和信息
- c++ 获取最后一次文件编辑时间
- C++获取flv视频文件的播放时间
- C++ 获取当前进程加载模块的完整路径读取配置文件
- C++获取目录下的文件列表