驱动中解析pe文件之pdb

这篇博客专注于驱动程序中解析PE文件的PDB部分,提供可以直接使用的高质量代码。内容涵盖头文件、结构体和详细注释,但不进行基础知识普及。读者可以期待在文章中获取到CreateMapFileAndGetBaseAddr()函数的实现。
摘要由CSDN通过智能技术生成

驱动中解析pe文件的pdb,一切尽在代码中,本博客不负责科普,能立即用的代码你都有了,头文件、结构体、注释都整理好你还想要啥?

CreateMapFileAndGetBaseAddr()的定义就看我下一篇文章。

 

 

#include <ntifs.h>
#include <windef.h>
#include "ntimage.h"

#define NB10_SIG	'01BN'
#define RSDS_SIG	'SDSR'
typedef struct  CV_HEADER
{
	DWORD Signature;
	DWORD Offset;
}CV_HEADER;

typedef struct CV_INFO_PDB20
{
	CV_HEADER	CvHeader;
	DWORD		Signature;
	DWORD		Age;
	BYTE		PdbFileName[1];
}CV_INFO_PDB20;
typedef struct CV_INFO_PDB70
{
	DWORD	CvSignature;
	GUID	Signature;
	DWORD	Age;
	BYTE	PdbFileName[1];
}CV_INFO_PDB70;

BOOL PeIsRegionValid(PVOID Base, DWORD Size, PVOID Addr, DWORD RegionSize)
{
	return ((PBYTE)Addr >= (PBYTE)Base && ((PBYTE)Addr + RegionSize) <= ((PBYTE)Base + Size));
}

//返回TRUE 但PdbStr为空意思是找过了确实没有PDB
BOOLEAN PeGetPdb(PVOID ImageBase, DWORD ImageSize, PCHAR PdbStr)
{
	PBYTE Base =
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值