关于PE文件的导入表

SGYHMSLY 2007-03-27 09:49:31
我的问题有两个
1、源于这个数据结构:

typedef struct _IMAGE_IMPORT_DESCRIPTOR {
union {
DWORD Characteristics; // 0 for terminating null import descriptor
DWORD OriginalFirstThunk; // RVA to original unbound IAT (PIMAGE_THUNK_DATA)
};
DWORD TimeDateStamp; // 0 if not bound,
// -1 if bound, and real date\time stamp
// in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (new BIND)
// O.W. date/time stamp of DLL bound to (Old BIND)

DWORD ForwarderChain; // -1 if no forwarders
DWORD Name;
DWORD FirstThunk; // RVA to IAT (if bound this IAT has actual addresses)
} IMAGE_IMPORT_DESCRIPTOR;

(WIN23汇编一书)老罗说:结构中的Name1字段是一个RVA,不明白,这明明是一个字符串怎么跟RVA撤上关系?

2、在PE头中的e_lfanew字段指出真正的PE文件头,通常这个位置以8字节对齐。
就是这句对齐,能否解释下什么叫以8字节对齐,是否是说必定在8字节的倍数的内存地址开始?
...全文
327 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
SGYHMSLY 2007-03-28
  • 打赏
  • 举报
回复
谢谢楼上的明白了。
nipcdll 2007-03-27
  • 打赏
  • 举报
回复
DWORD Name;
DLL名字的指针,指向一个字符串的RVA地址。那个地址里面存放的才是字符串;

9,506

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧