《Windows环境下32位汇编语言程序设计(第2版)》-chapter17知识点

今天又重新回到PE文件的学习了,之前学的Win32汇编更多是的利用API函数进行桌面程序的开发,PE文件这涉及到很多底层的东西,感觉是块儿硬骨头很难啃,不过还是得学下去。今天又关注了一下安全行业的发展状况,做Windows x86平台的逆向很早就有了,现在安卓和iso逆向正旺,不知以后怎么样。自己还是先把Windows这边学一学,过些日子再研究安卓的问题,自己以前做过安卓的开发,又有x86平台逆向的基础,相信会学起来会容易一些。今天还看了些罗云彬老师书的源码,里面有很多案例都很好,文本编辑器的例子很值得学习(书中限于篇幅为完全展示所有功能)。

《Windows环境下32位汇编语言程序设计(第2版)》的第17章讲得是PE文件,就当作入门课程吧。现在把笔记贴在下面。
17
	17.1.1
		PE文件(Portable Executable File Format)的演变
			略
		pE文件的基本结构
			从上之下依次是
			DOS文件头
			DOS块
			PE文件头
			节表
			节1
			节2
			...
	17.1.2
		DOS文件头和DOS块(可执行代码)
			为了在DOS下打开PE文件
			此时会显示:This program connot be run in DOS mode
		文件头
			MZ格式,由IMAGE_DOS_HEADER结构定义,其中e_lfanew指出PE的文件头
	17.1.3
		PE文件头
			PE格式,由IMAGE_NT_HEADER结构定义,其中还有两个结构
		IMAGE_FILE_HEADER
			 WORD Machine;					//运行平台
			 WORD NumberOfSections;			//文件中节的数量
			 DWORD TimeDateStamp;			//文件创建日期和时间
			 DWORD PointerToSymbolTable;	//调试用
			 DWORD NumberOfSymbols;			//调试用
			 WORD SizeOfOptionalHeader;		//下面一个结构的长度
			 WORD Characteristics;			//文件属性
		IMAGE_OPTIONAL_HEADER32
			重要的几个参数
			AddressOfEntryPoint	//文件执行入口地址
			ImageBase			//文件优先装入地址
				//exe文件不需要重定位信息,dll文件需要
			SectionAlignment	//装入内存对齐单位
			FileAlignment		//存储在磁盘中对齐单位
			Subsystem			//界面子系统
			DataDirectory		//存储了16个数据块的位置和长度,数据目录表
	17.1.4
		节表
			紧跟着PE文件头,存储节的属性
		节
			被装入内存并不是完全线性的
		RVA和文件偏移
			RVA是装入内存后相对于PE文件起始地址的偏移,对节来说意义更大
			PE文件中的地址全是RVA地址
			查找静态PE文件中的资源就很麻烦
	17.2
		导入表
			节是按照属性分的,每个节内都可能有表
			节由节表定位,表由DateDirectory定位(数据目录表)
		导入函数名和驻留DLL
			系统根据导入表中存储的信息装入DLL
	17.3
		导出表
	17.4
		资源
	17.5
		重定位表		

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值