请问各位,谁知道如何编程确定可执行文件的代码段,数据段等各段的地址范围?需要用到哪些知识?请指点一下.谢谢

解决方案 »

  1.   

    调试上的知识,你用VC的DUMPBIN能看到的买本<应用程序调试技术>吧挺有好处的
      

  2.   

    谢谢指点,我最近也在看pe文件格式。但是,其中讲到:
    每段中的Characteristic字段定义了段的访问属性,有三种定义段的内容的属性,即代码,初始化和为初始化数据(分别为IMAGE_SCN_CNT_CODE,IMAGE_SCN_CNT_INITIALIZED_DATA以及IMAGE_SCN_CNT_UNINITIALIZED_DATA)。但是系统装载程序忽略它们的值。因此,你不应该以来它们。
       有些病毒/压缩程序/保护程序根据是否存在属性IMAGE_SCN_CNT_CODE来确定代码段。这似乎不是一个坏主意。但是,应该注意可能出现以下情形,即没有段具备这种属性(这并不常见)或者这种属性被赋予数据段(并不频繁出现,但是仍然有可能出现)。
       我的意思就是,根据某段的Characteristic字段来确定该段装载到内存后的属性(即代码段,数据段),是不是可靠。哪位有经验,指点一下,是不是可以通过这种方法确定段的属性。