PE文件学习0
今天终于下定决心学这个了。刚才搜索了一下,发现以前有 无理取闹 贵宾写过几篇PE文件格式的学习笔记,只是全是代码,没有什么解释。我们还是从头开始学习吧。
PE格式是win32系统下的可执行文件的格式。 象EXE DLL 这些都是PE格式。
一般软件开发在生成EXE以后就可以算是完成任务了,基本上不去了解具体的可执行文件的格式。对于大部分人来讲,EXE这些可执行文件就是一个整体了。 我们的目的就是深入了解PE。
PE文件以2进制的形式存在,我们用一些文件编辑器比如UE winhex等工具来打开EXE或DLL,可以发现都是16进制数,头晕中。 再稍微仔细看看,不同的EXE或DLL 似乎有不少地方都相同,比如在某些固定的位置有固定的标志等等,这就是我们的学习入手点,从“格式”上来学习。 就象有本书,我想知道书的价格,那就翻到最后一面看价格,我想看内容介绍,就翻到最前面去找,我想看大概内容,就翻到目录,想看哪部分具体内容,就根据目录旁边的页码去找。这就是书籍固有的一种格式。
PE格式也是这样,从哪儿能找到程序需要引入的API函数,从哪儿去找程序需要的资源,默认装载基址。。。这些都是文件的格式问题,操作系统在装载PE文件的时候,也是根据它的格式来决定如何装载的。可执行文件以PE格式存储在磁盘上,被操作系统装载进内存以后,它的各种数据结构的布局是相同的. 学习了解PE结构,是以后分析 调试 逆向 的前提知识。而且用汇编语言来学习,更是一举两得。
先极简单介绍一下PE是啥,下次开始学PE。