-
-
[旧帖] [分享]这几天学习PE的一点心得 0.00雪花
-
发表于: 2016-1-4 01:03 1455
-
学习了一下PE结构
总结一下最重要的知识! 高手莫笑菜鸟!
总的流程就是DOS头->nt头->区段表(节表)-->区段(节数据)
1.DOS头中最重要的也就是第一个数据和最后一个。第一个4D 5A (MZ)经常用来判断是否是PE文件-->最后一个值指向NT头的第一个标志,signature 也就是PE00(ascii)
2.Nt头包括三个部分,第一个也就是上面说的PE标志,四个字节,第二个是PE文件头,第三个是PE可选头。 可选头中最重要的有几个数据,imagebase (映像基地址)文件对其(200H==512)
内存对其(1000H=4096=4KB) ,可选头最后的16个数据目录表中第二个输入表比较重要,第一个orignfirstthunk 和最后一个firstthunk在没有加载到内存之前都是指向image_thunk_data数组,而该数组又指向一个函数名称 ....image_...by name,装载到内存以后,最后一个数据会填充正在的函数地址
3.节表(一般第一个为代码执行段代码,第二段为输入表,,第三段为数据,。。。。。)
节表大小为28H==40 节表名字占八个字节,最后用00填充满,第二个为Virtualsize,,即文件在内存中的虚拟大小。第三个为vistual Address(虚拟地址),第四个为文件大小。sizeofrawdata ,一般为200H 第五个为pointrawdata 一般第一个为400 因为文件头总数为228 按200对其,所以多余的28也要用200来装
写得很乱,见笑了,有的地方可能有误!
总结一下最重要的知识! 高手莫笑菜鸟!
总的流程就是DOS头->nt头->区段表(节表)-->区段(节数据)
1.DOS头中最重要的也就是第一个数据和最后一个。第一个4D 5A (MZ)经常用来判断是否是PE文件-->最后一个值指向NT头的第一个标志,signature 也就是PE00(ascii)
2.Nt头包括三个部分,第一个也就是上面说的PE标志,四个字节,第二个是PE文件头,第三个是PE可选头。 可选头中最重要的有几个数据,imagebase (映像基地址)文件对其(200H==512)
内存对其(1000H=4096=4KB) ,可选头最后的16个数据目录表中第二个输入表比较重要,第一个orignfirstthunk 和最后一个firstthunk在没有加载到内存之前都是指向image_thunk_data数组,而该数组又指向一个函数名称 ....image_...by name,装载到内存以后,最后一个数据会填充正在的函数地址
3.节表(一般第一个为代码执行段代码,第二段为输入表,,第三段为数据,。。。。。)
节表大小为28H==40 节表名字占八个字节,最后用00填充满,第二个为Virtualsize,,即文件在内存中的虚拟大小。第三个为vistual Address(虚拟地址),第四个为文件大小。sizeofrawdata ,一般为200H 第五个为pointrawdata 一般第一个为400 因为文件头总数为228 按200对其,所以多余的28也要用200来装
写得很乱,见笑了,有的地方可能有误!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
看原图
赞赏
雪币:
留言: