WEB开发网
开发学院网络安全黑客技术 PE文件格式(3) 阅读

PE文件格式(3)

 2007-01-14 20:15:00 来源:WEB开发网   
核心提示: IMAGE_REL_BASED_ABSOLUTE(0)使块按照32位对齐,位置为0,PE文件格式(3)(3),IMAGE_REL_BASED_HIGH(1)高16位必须应用于偏移量所指高字16位,IMAGE_REL_BASED_LOW(2)低16位必须应用于偏移量所指低字16位,第一个重定

IMAGE_REL_BASED_ABSOLUTE(0)使块按照32位对齐,位置为0。

IMAGE_REL_BASED_HIGH(1)高16位必须应用于偏移量所指高字16位。

IMAGE_REL_BASED_LOW(2) 低16位必须应用于偏移量所指低字16位。

IMAGE_REL_BASED_HIGHLOW(3)全部32位应用于所有32位。.

IMAGE_REL_BASED_HIGHADJ(4)需要32位,高16位位于偏移量,低16位位于下一个偏移量数组元素,组合为一个带符号数,加上32位的一个数,然后加上8000然后把高16位保存在偏移量的16位域内。

IMAGE_REL_BASED_MIPS_JMPADDR(5)    Unknown

IMAGE_REL_BASED_SECTION(6)    Unknown

IMAGE_REL_BASED_REL32(7)    Unknown

举例:

  0x00004000   (32bits,startingRVA)
  0x00000010   (32bits,sizeofchunk)
  0x3012     (16bitsrelocdata)
  0x3080     (16bitsrelocdata)
  0x30f6     (16bitsrelocdata)
  0x0000     (16bitsrelocdata)
  0x00000000   (nextchunk'sRVA)
  0xff341234

第一块描述重定位起始于RVA0x4000长度16字节。因为头用去8字节,一个重定位用2个字节,总共(16-8)/2=4个重定位,第一个重定位被用于0x4012,下一个重定位于4080,第三个定位于0x40f6.最后一个无用。最后一个结束。

附录:Appendix:helloworld

---------------------

Theprogramwillbetheequivalentof
  #include<stdio.h>
  intmain(void)
  {
    puts(hello,world);
    return0;
  }

用Win32函数代替Cruntime:

上一页  1 2 3 4 5 6 7 8  下一页

Tags:PE 文件 格式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接