在PE头部,在IMAGE_NT_HEADERS结构中的FileHeader成员中指定了后面的OptionalHeader成员的大小!
IMAGE_NT_HEADERS的结构定义如下:
typedef struct _IMAGE_NT_HEADERS {
DWORD Signature;
IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER32 OptionalHeader;
} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;
在RCE论坛上看到,值得学习,所以引用到这里了!
帖子的地址是:[url=http://www.woodmann.com/forum/showthread.php?t=12464]http://www.woodmann.com/forum/showthread.php?t=12464[/url]。
主题全文引用如下(作者是:nezumi-lab ):
修改了一下,增加了对附加数据的判断!
看了一个星期的PE格式,花了点时间写了这个工具以加深对PE结构的印象。
仿着一个现成的工具做的,呵呵!
想试试的,就下载着玩吧!
等自己有空测试一翻后,再放源码吧!
程序运行界面如下:
具体的选项设置与说明如下:
#/OPT:WIN98选项,设置文件对齐为0x1000,
# 但对于大文件,则不一定处理!(不确定性,由链接器自行决定)
#/MERGE:.rdata=.text选项,是将.rdata节合并到.text节
为了测试,写了个小汇编,代码:
缘份五月
演唱:江智民
专辑:另一种乡愁
就算前世没有过约定
今生我们都曾痴痴等
茫茫人海走到一起算不算缘份
何不把往事看淡在风尘
只为相遇那一个眼神
彼此敞开那一扇心门
风雨走过千山万水依然那样真
一个有效的PE文件,总是以一个DOS头结构开始的。
这个DOS头结构就是IMAGE_DOS_HEADER,具体定义见winnt.h文件,这里给复制了过来,如下:
本想熟悉一下TreeView控件的使用,于是找了个资源列表作为为对象!
让一个程序的资源列表显示到TreeView控制是做到了,接着又想实用些,也来显示一下资源内容!
花了一天的时间翻阅MSDN和调试,终于实现了菜单的查看,哈!
高兴啊!如图:
过两天就要开始上班了,今天抽空完成了一讲!
讲义见这里:[url=/read.php/189.htm]C++学习第4讲:程序的流程控制[讲义] [/url]
也许明天还有一讲函数的,讲完了,下面的我也不知道要何时录了!
希望能够完成吧,我也只能对自己这么解释了,SORRY!
支持几乎所有主流视频格式如DVD、VCD、AVI、WMV、MP4、MOV、3GP、RM等格式的自由互相转换。您可以将转换的音视频导入iPod、iPhone、APPLE TV、PSP、PS3、Zune、Mobile phone、Window Mobile、各种手持移动设备等各种数码设备,让您在汽车中、地铁里轻松享受家庭影院般的DVD电影效果。
支持几乎所有主流视频格式如DVD、VCD、AVI、WMV、MP4、MOV、3GP、RM等格式的自由互相转换。您可以将转换的音视频导入iPod、iPhone、APPLE TV、PSP、PS3、Zune、Mobile phone、Window Mobile、各种手持移动设备等各种数码设备,让您在汽车中、地铁里轻松享受家庭影院般的DVD电影效果。