erbi_lucifer吧 关注:407贴子:3,326

【win32 ASM】File format parsing (part 9)

只看楼主收藏回复



一楼……


1楼2013-05-02 15:20回复

    【文件格式解析(八)】EXE文件格式
    EXE:
    EXE File(可执行程序),一种可在操作系统存储空间中浮动定位的可执行程序。MS-DOS和MS-WINDOWS下,此类文件扩展名为.exe。WINDOWS操作系统中的二进制可执行文件,分两种:一种后辍名为.COM,另一种是.EXE 。


    本楼含有高级字体2楼2013-05-02 15:22
    回复

      (一)文件组成
      1. 其结构包括4部分:
      DOS文件头和DOS块:IMAGE_DOS_HEADER结构
      PE文件头(NT文件头):IMAGE_NT_HEADERS32结构
      节表:IMAGE_SECTION_HEADER结构
      节数据
      2. 具体为:
      (IMAGE_DOS_HEADER结构)
      _______________________________
      | IMAGE_DOS_HEADER | <-- Dos部首
      (IMAGE_NT_HEADERS32结构)
      -------------------------------
      | 'PE',0,0 | <-- PE文件标志
      -------------------------------
      | IMAGE_FILE_HEADER | <-- 文件头
      -------------------------------
      | IMAGE_OPTIONAL_HEADER32 | <-- 可选头
      -------------------------------
      (IMAGE_SECTION_HEADER结构)
      |Section Table | <-- 节表
      -------------------------------
      | .text | <-- 代码区段
      -------------------------------
      | .data | <-- 数据区段
      -------------------------------
      | .idata | <-- 输入表
      -------------------------------
      | .edata | <-- 输出表
      -------------------------------
      | .reloc | <-- 重定位表区段
      -------------------------------
      | .... |
      -------------------------------
      | 调试信息 |
      -------------------------------


      本楼含有高级字体3楼2013-05-02 15:22
      回复

        3. IMAGE_DOS_HEADER 详细:
        a. e_magic DOS可执行文件标记,为“MZ” 2字节
        b. e_cblp 2字节
        c. e_cp 2字节
        d. e_crlc 2字节
        e. e_cparhdr 2字节
        f. e_minalloc 2字节
        g. e_maxalloc 2字节
        h. e_ss DOS代码的初始化堆栈段 2字节
        i. e_sp DOS代码的初始化堆栈指针 2字节
        j. e_csum 2字节
        k. e_ip DOS代码的入口IP 2字节
        l. e_cs DOS代码的入口CS 2字节
        m. e_lfarlc 2字节
        n. e_ovno 2字节
        o. e_res 8字节
        p. e_oemid 2字节
        q. e_oeminfo 2字节
        r. e_res2 WORD 10 dup(?) 20字节
        s. e_lfanew指向PE文件头 4字节


        4楼2013-05-02 15:23
        回复

          4. IMAGE_NT_HEADERS32 结构中的IMAGE_FILE_HEADER结构
          a. Machine 运行平台 2字节
          b. NumberOfSections 文件的节数目 2字节
          c. TimeDateStamp 文件创建日期和时间 4字节
          d. PointerToSymbolTable 指向符号表(用于调试) 4字节
          e. NumberOfSymbols 符号表中的符号数量(用于调试) 4字节
          f. SizeOfOptionalHeader IMAGE_OPTIONAL_HEADER32结构的长度 2字节
          g. Characteristics 文件属性 2字节


          5楼2013-05-02 15:23
          回复

            5. IMAGE_NT_HEADERS32 结构中的IMAGE_OPTIONAL_HEADER32结构
            a. Magic 107h=ROM Image,10Bh=exeImage 2字节
            b. MajorLinkerVersion 链接器版本号 1字节
            c. MinorLinkerVersion 1字节
            d. SizeOfCode 所有含代码的节的总大小 4字节
            e. SizeOfInitializedData 所有含已初始化数据的节的总大小 4字节
            f. SizeOfUninitializedData 所有含未初始化数据的节的大小 4字节
            g. AddressOfEntryPoint 程序执行入口RVA 4字节
            h. BaseOfCode 代码的节的起始RVA 4字节
            i. BaseOfData 数据的节的起始RVA 4字节
            j. ImageBase 程序的建议装载地址 4字节
            k. SectionAlignment 内存中的节的对齐粒度 4字节
            l. FileAlignment 文件中的节的对齐粒度 4字节
            m. MajorOperatingSystemVersion 操作系统主版本号 2字节
            n. MinorOperatingSystemVersion 操作系统副版本号 2字节
            o. MajorImageVersion 可运行于操作系统的最小版本号 2字节
            p. MinorImageVersion 2字节
            q. MajorSubsystemVersion 可运行于操作系统的最小子版本号 2字节
            r. MinorSubsystemVersion 2字节
            s. Win32VersionValue 4字节
            t. SizeOfImage 内存中整个PE映像尺寸 4字节
            u. SizeOfHeaders 所有头+节表的大小 4字节
            v. CheckSum 4字节
            w. Subsystem 文件的子系统 2字节
            x. DllCharacteristics 2字节
            y. SizeOfStackReserve 初始化时的堆栈大小 4字节
            z. SizeOfStackCommit 初始化时实际提交的堆栈大小 4字节
            aa. SizeOfHeapReserve 初始化时保留的堆大小 4字节
            bb. SizeOfHeapCommit 初始化时实际提交的堆大小 4字节
            cc. LoaderFlags 未用 4字节
            dd. NumberOfRvaAndSizes 下面的数据目录结构的数量 4字节
            ee. DataDirectory IMAGE_DATA_DIRECTORY 16 dup(<>) ; 16字节


            6楼2013-05-02 15:24
            回复

              6. IMAGE_SECTION_HEADER结构
              a. Name1 IMAGE_SIZEOF_SHORT_NAME 节区名称 8字节
              b. 节区的尺寸 4字节
              c. VirtualAddress 节区的RVA地址 4字节
              d. SizeOfRawData 在文件中对齐后的尺寸 4字节
              e. PointerToRawData 在文件中的偏移 4字节
              f. PointerToRelocations在OBJ文件中使用 4字节
              g. PointerToLinenumbers 行号表的位置(供调试用) 4字节
              h. NumberOfRelocations 在OBJ文件中使用 2字节
              i. NumberOfLinenumbers 行号表中行号的数量 2字节
              j. Characteristics节的属性 4字节


              7楼2013-05-02 15:25
              回复

                (二)构建结构体
                根据文件结构我们可以构建下面的结构体(事实上并不需要我们自己去构建结构体,一些头文件中已经有定义了,我们直接使用即可),然后读取文件即可获取文件的信息。
                一个EXE可以说是一个DOS程序加一个NT程序,其中DOS部分的作用只是程序在DOS运行的时候显示这么一句话“This program cannot be run in DOS mode”。
                ;DOS头结构
                IMAGE_DOS_HEADER STRUCT
                e_magic WORD ? ;DOS可执行文件标记,为“MZ”
                e_cblp WORD ?
                e_cp WORD ?
                e_crlc WORD ?
                e_cparhdr WORD ?
                e_minalloc WORD ?
                e_maxalloc WORD ?
                e_ss WORD ? ;DOS代码的初始化堆栈段
                e_sp WORD ? ;DOS代码的初始化堆栈指针
                e_csum WORD ?
                e_ip WORD ? ;DOS代码的入口IP
                e_cs WORD ? ;DOS代码的入口CS
                e_lfarlc WORD ?
                e_ovno WORD ?
                e_res WORD 4 dup(?)
                e_oemid WORD ?
                e_oeminfo WORD ?
                e_res2 WORD 10 dup(?)
                e_lfanew DWORD ? ;指向PE文件头
                IMAGE_DOS_HEADER ENDS


                本楼含有高级字体8楼2013-05-02 15:25
                回复

                  IMAGE_FILE_HEADER STRUCT
                  Machine WORD ? ;0004h - 运行平台
                  NumberOfSections WORD ? ;0006h - 文件的节数目
                  TimeDateStamp DWORD ? ;0008h - 文件创建日期和时间
                  PointerToSymbolTable DWORD ? ;000ch - 指向符号表(用于调试)
                  NumberOfSymbols DWORD ? ;0010h - 符号表中的符号数量(用于调试)
                  SizeOfOptionalHeader WORD ? ;0014h - IMAGE_OPTIONAL_HEADER32结构的长度
                  Characteristics WORD ? ;0016h - 文件属性
                  IMAGE_FILE_HEADER ENDS
                  IMAGE_OPTIONAL_HEADER32 STRUCT
                  Magic WORD ? ;0018h 107h=ROM Image,10Bh=exe Image
                  MajorLinkerVersion BYTE ? ;001ah 链接器版本号
                  MinorLinkerVersion BYTE ? ;001bh
                  SizeOfCode DWORD ? ;001ch 所有含代码的节的总大小
                  SizeOfInitializedData DWORD? ;0020h所有含已初始化数据的节的总大小
                  SizeOfUninitializedData DWORD ? ;0024h 所有含未初始化数据的节的大小
                  AddressOfEntryPoint DWORD ? ;0028h 程序执行入口RVA
                  BaseOfCode DWORD ? ;002ch 代码的节的起始RVA
                  BaseOfData DWORD ? ;0030h 数据的节的起始RVA
                  ImageBase DWORD ? ;0034h 程序的建议装载地址
                  SectionAlignment DWORD ? ;0038h 内存中的节的对齐粒度
                  FileAlignment DWORD ? ;003ch 文件中的节的对齐粒度
                  MajorOperatingSystemVersion WORD ? ;0040h 操作系统主版本号
                  MinorOperatingSystemVersion WORD ? ;0042h 操作系统副版本号
                  MajorImageVersion WORD ? ;0044h可运行于操作系统的最小版本号
                  MinorImageVersion WORD ? ;0046h
                  MajorSubsystemVersion WORD ?;0048h 可运行于操作系统的最小子版本号
                  MinorSubsystemVersion WORD ? ;004ah
                  Win32VersionValue DWORD ? ;004ch 未用
                  SizeOfImage DWORD ? ;0050h 内存中整个PE映像尺寸
                  SizeOfHeaders DWORD ? ;0054h 所有头+节表的大小
                  CheckSum DWORD ? ;0058h
                  Subsystem WORD ? ;005ch 文件的子系统
                  DllCharacteristics WORD ? ;005eh
                  SizeOfStackReserve DWORD ? ;0060h 初始化时的堆栈大小
                  SizeOfStackCommit DWORD ? ;0064h 初始化时实际提交的堆栈大小
                  SizeOfHeapReserve DWORD ? ;0068h 初始化时保留的堆大小
                  SizeOfHeapCommit DWORD ? ;006ch 初始化时实际提交的堆大小
                  LoaderFlags DWORD ? ;0070h 未用
                  NumberOfRvaAndSizes DWORD ? ;0074h 下面的数据目录结构的数量
                  DataDirectory IMAGE_DATA_DIRECTORY 16 dup(<>) ;0078h
                  IMAGE_OPTIONAL_HEADER32 ENDS


                  9楼2013-05-02 15:25
                  回复

                    IMAGE_SECTION_HEADER STRUCT
                    Name1 db IMAGE_SIZEOF_SHORT_NAME dup(?) ;8个字节的节区名称
                    union Misc
                    PhysicalAddress dd ?
                    VirtualSize dd ? ;节区的尺寸
                    ends
                    VirtualAddress dd ? ;节区的RVA地址
                    SizeOfRawData dd ? ;在文件中对齐后的尺寸
                    PointerToRawData dd ? ;在文件中的偏移
                    PointerToRelocations dd ? ;在OBJ文件中使用
                    PointerToLinenumbers dd ? ;行号表的位置(供调试用)
                    NumberOfRelocations dw ? ;在OBJ文件中使用
                    NumberOfLinenumbers dw ? ;行号表中行号的数量
                    Characteristics dd ? ;节的属性
                    IMAGE_SECTION_HEADER ENDS


                    10楼2013-05-02 15:25
                    回复

                      (三)读取文件信息

                      接下来以图标文件“1.exe”为例子读取它的结构信息。
                      (1) DOS头结构

                      (IMAGE_DOS_HEADER 结构(dos头),64字节)
                      1. 第1-2字节:数值为“4D 5A”,即PE格式文件的标志“MZ”。
                      2. 第3-4字节:数值为“90 00”,即e_cblp为0090。
                      3. 第5-6字节:数值为“03 00”,即e_cp:0003。
                      4. 第7-8字节:数值为“00 00”,即e_crlp:0000。
                      5. 第9-10字节:数值为“04 00”,即e_cparhdr:0004。
                      6. 第11-12字节:数值为“00 00”,即e_minalloc:0000。
                      7. 第13-14字节:数值为“FF FF”,即e_maxalloc:ffff。
                      8. 第15-16字节:数值为“00 00”,即DOS代码的初始化堆栈段 e_ss:0000。
                      9. 第17-18字节:数值为“B8 00”,即DOS代码的初始化堆栈指针 e_sp:00b8。
                      10. 第19-20字节:数值为“00 00”,即e_csum:0000。
                      11. 第21-22字节:数值为“00 00”,即DOS代码的入口IP e_ip:0000。
                      12. 第23-24字节:数值为“00 00”,即DOS代码的入口CS e_cs:0000。
                      13. 第25-26字节:数值为“40 00”,即e_lfarlc:0040。
                      14. 第27-28字节:数值为“00 00”,即e_ovno:0000。
                      15. 第29-36字节:数值为“00 00 00 00 00 00 00 00”,即e_res:0000。
                      16. 第37-38字节:数值为“00 00”,即e_oemid:0000。
                      17. 第39-40字节:数值为“00 00”,即e_oeminfo:0000。
                      18. 第41-60字节:数值为“00 00”,即e_res2 都为0。
                      19. 第61-64字节:数值为“E8 00 00 00”,即指向PE文件头 e_lfanew:00e8(即从头开始的232字节)。
                      故读取结果为:


                      本楼含有高级字体11楼2013-05-02 15:26
                      回复

                        (1) NT头结构
                        故从00e8开始是IMAGE_NT_HEADERS结构,其总的大小为248字节,其中签名占用4字节,文件头占用20字节,可选头占用224字节
                        签名:

                        (4字节的签名)
                        数值为“50 45 00 00”,故签名为“PE”。
                        读取结果:


                        12楼2013-05-02 15:27
                        回复

                          文件头:

                          (20字节的文件头)
                          1. 第1-2字节:数值为“4C 01”,即运行平台 Machine:014c。
                          2. 第3-4字节:数值为“05 00”,即文件的节数目 NumberOfSections::00000005,根据这个值可以循环读取所有节表结构的信息。
                          3. 第5-8字节:数值为“CD 9B 48 50”,即文件创建日期和时间 TimeDateStamp:00004550。
                          4. 第9-12字节:数值为“00 00 00 00”,即指向符号表(用于调试) PointerToSymbolTable: 00000000。
                          5. 第13-16字节:数值为“00 00 00 00”,即符号表中的符号数量(用于调试) NumberOfSymbols:00000000。
                          6. 第17-18字节:数值为“E0 00”,IMAGE_OPTIONAL_HEADER32结构的长度 SizeOfOptionalHeader:00e0。
                          7. 第19-20字节:数值为“02 01”,即文件属性 Characteristics:5014c。
                          读取结果:


                          13楼2013-05-02 15:30
                          回复

                            可选头:

                            1. 第1-2字节:数值为“0B 01”,即ROMImage,exeImage Magic:010b。
                            2. 第3字节:数值为“0A”,即链接器主版本号 MajorLinkerVersion: 0a。
                            3. 第4字节:数值为“00”,即链接副版本号MinorLinkerVersion: 00。
                            4. 第5-8字节:数值为“00 78 00 00”,即所有含代码的节的总大小 SizeOfCode:00007800。
                            5. 第9-12字节:数值为“00 EA 01 00”,即所有含已初始化数据的节的总大小
                            SizeOfInitializedData:0001ea00。
                            6. 第13-16字节:数值为“00 00 00 00”,即所有含未初始化数据的节的大小
                            SizeOfUninitializedData:00000000。
                            7. 第17-20字节:数值为“CB 1D 00 00”,即程序执行入口RVA AddressOfEntryPoint:00001dcb。
                            8. 第21-24字节:数值为“00 10 00 00”,即代码的节的起始RVA BaseOfCode:00001000。
                            9. 第25-28字节:数值为“00 90 00 00”,即数据的节的起始RVA BaseOfData:00009000。
                            10. 第29-32字节:数值为“00 00 40 00”,即程序的建议装载地址 ImageBase:00400000。
                            11. 第33-36字节:数值为“00 10 00 00”,即内存中的节的对齐粒度
                            SectionAlignment:00001000。
                            12. 第37-40字节:数值为“00 02 00 00”,即文件中的节的对齐粒度 FileAlignment:00000200。
                            13. 第41-42字节:数值为“01 00”,即操作系统主版本号 MajorOperatingSystemVersion:0005。
                            14. 第43-44字节:数值为“00 00”,即操作系统副版本号 MinorOperatingSystemVersion:0001。
                            15. 第45-46字节:数值为“00 00”,即可运行于操作系统的最小版本号
                            MajorImageVersion:0000。
                            16. 第47-48字节:数值为“00 00”,即MinorImageVersion:0000。
                            17. 第49-50字节:数值为“05 00”,即可运行于操作系统的最小子版本号
                            MajorSubsystemVersion:0005。
                            18. 第51-52字节:数值为“01 00”,即MinorSubsystemVersion:0001。
                            19. 第53-56字节:数值为“00 00 00 00”,即未用 Win32VersionValue:00000000。
                            20. 第57-60字节:数值为“00 C0 02 00”,即内存中整个PE映像尺寸 SizeOfImage:0002c000。
                            21. 第61-64字节:数值为“00 04 00 00”,即所有头+节表的大小 SizeOfHeaders:00000400。
                            22. 第65-68字节:数值为“3A CB 02 00”,即校检码CheckSum:0002cb3a :0000。
                            23. 第69-70字节:数值为“02 00”,即文件的子系统 Subsystem:00000002。
                            24. 第71-72字节:数值为“40 81”,即DllCharacteristics:8140。
                            25. 第73-76字节:数值为“00 00 10 00”,即初始化时的堆栈大小
                            SizeOfStackReserve:00100000。
                            26. 第77-80字节:数值为“00 01 00 00”,即初始化时实际提交的堆栈大小
                            SizeOfStackCommit:00001000。
                            27. 第81-84字节:数值为“00 00 10 00”,即初始化时保留的堆大小
                            SizeOfHeapReserve:00100000。
                            28. 第85-88字节:数值为“00 10 00 00”,即初始化时实际提交的堆大小
                            SizeOfHeapCommit:00001000。
                            29. 第89-92字节:数值为“00 00 00 00”,即未用 LoaderFlags:00000000。
                            30. 第93-96字节:数值为“10 00 00 00”,即下面的数据目录结构的数量
                            NumberOfRvaAndSizes:00000010。
                            31. 第97-224字节:
                            为16个8字节的结构IMAGE_DATA_DIRECTORY。
                            即:
                            00000160h: 00 00 00 00 00 00 00 00 84 BA 0000 8C 00 00 00 ; ........労..?..
                            00000170h: 00 10 01 00 74 8D 01 00 00 00 0000 00 00 00 00 ; ....t?.........
                            00000180h: 00 00 00 00 00 00 00 00 00 A0 0200 50 09 00 00 ; .........?.P...
                            00000190h: 40 92 00 00 1C 00 00 00 00 00 0000 00 00 00 00 ; @?.............
                            000001a0h: 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 ; ................
                            000001b0h: 08 B6 00 00 40 00 00 00 00 00 0000 00 00 00 00 ; .?.@...........
                            000001c0h: 00 90 00 00 F8 01 00 00 00 00 0000 00 00 00 00 ; .?.?..........
                            000001d0h: 00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00 ; ................


                            14楼2013-05-02 15:31
                            回复

                              读取结果为:
                              **************IMAGE_OPTIONAL_HEADER32结构**************
                              ROMImage,exeImage Magic:010b
                              链接器版本号 MajorLinkerVersion:0000000a
                              MinorLinkerVersion:00000000
                              所有含代码的节的总大小 SizeOfCode:00007800
                              所有含已初始化数据的节的总大小 SizeOfInitializedData:0001ea00
                              所有含未初始化数据的节的大小 SizeOfUninitializedData:00000000
                              程序执行入口RVA AddressOfEntryPoint:00001dcb
                              代码的节的起始RVA BaseOfCode:00001000
                              数据的节的起始RVA BaseOfData:00009000
                              程序的建议装载地址 ImageBase:00400000
                              内存中的节的对齐粒度 SectionAlignment:00001000
                              文件中的节的对齐粒度 FileAlignment:00000200
                              操作系统主版本号MajorOperatingSystemVersion:0005
                              操作系统副版本号 MinorOperatingSystemVersion:0001
                              :可运行于操作系统的最小版本号MajorImageVersion:0000
                              MinorImageVersion:0000
                              可运行于操作系统的最小子版本号 MajorSubsystemVersion:0005
                              MinorSubsystemVersion:0001
                              未用 Win32VersionValue:00000000
                              内存中整个PE映像尺寸 SizeOfImage:0002c000
                              所有头+节表的大小 SizeOfHeaders:00000400
                              校检码CheckSum:0002cb3a :0000
                              文件的子系统 Subsystem:00000002
                              DllCharacteristics:8140
                              初始化时的堆栈大小 SizeOfStackReserve:00100000
                              初始化时实际提交的堆栈大小 SizeOfStackCommit:00001000
                              初始化时保留的堆大小 SizeOfHeapReserve:00100000
                              初始化时实际提交的堆大小 SizeOfHeapCommit:00001000
                              未用 LoaderFlags:00000000
                              下面的数据目录结构的数量 NumberOfRvaAndSizes:00000010
                              IMAGE_DATA_DIRECTORY [00].DataDirectory.VirtualAddress:00000000
                              IMAGE_DATA_DIRECTORY [00].DataDirectory.isize: 00000000
                              IMAGE_DATA_DIRECTORY [01].DataDirectory.VirtualAddress:0000ba84
                              IMAGE_DATA_DIRECTORY [01].DataDirectory.isize: 0000008c
                              IMAGE_DATA_DIRECTORY [02].DataDirectory.VirtualAddress:00011000
                              IMAGE_DATA_DIRECTORY [02].DataDirectory.isize: 00018d74
                              IMAGE_DATA_DIRECTORY [03].DataDirectory.VirtualAddress:00000000
                              IMAGE_DATA_DIRECTORY [03].DataDirectory.isize: 00000000
                              IMAGE_DATA_DIRECTORY [04].DataDirectory.VirtualAddress:00000000
                              IMAGE_DATA_DIRECTORY [04]. DataDirectory.isize:00000000
                              IMAGE_DATA_DIRECTORY [05].DataDirectory.VirtualAddress:0002a000
                              IMAGE_DATA_DIRECTORY [05].DataDirectory.isize: 00000950
                              IMAGE_DATA_DIRECTORY [06].DataDirectory.VirtualAddress:00009240
                              IMAGE_DATA_DIRECTORY [06]. DataDirectory.isize:0000001c
                              IMAGE_DATA_DIRECTORY [07].DataDirectory.VirtualAddress:00000000
                              IMAGE_DATA_DIRECTORY [07].DataDirectory.isize: 00000000
                              IMAGE_DATA_DIRECTORY [08].DataDirectory.VirtualAddress:00000000
                              IMAGE_DATA_DIRECTORY [08].DataDirectory.isize: 00000000
                              IMAGE_DATA_DIRECTORY [09].DataDirectory.VirtualAddress:00000000
                              IMAGE_DATA_DIRECTORY [09].DataDirectory.isize: 00000000
                              IMAGE_DATA_DIRECTORY [10].DataDirectory.VirtualAddress:0000b608
                              IMAGE_DATA_DIRECTORY [10].DataDirectory.isize: 00000040
                              IMAGE_DATA_DIRECTORY [11].DataDirectory.VirtualAddress:00000000
                              IMAGE_DATA_DIRECTORY [11].DataDirectory.isize: 00000000
                              IMAGE_DATA_DIRECTORY [12].DataDirectory.VirtualAddress:00009000
                              IMAGE_DATA_DIRECTORY [12].DataDirectory.isize: 000001f8
                              IMAGE_DATA_DIRECTORY [13].DataDirectory.VirtualAddress:00000000
                              IMAGE_DATA_DIRECTORY [13].DataDirectory.isize: 00000000
                              IMAGE_DATA_DIRECTORY [14].DataDirectory.VirtualAddress:00000000
                              IMAGE_DATA_DIRECTORY [14].DataDirectory.isize: 00000000
                              IMAGE_DATA_DIRECTORY [15]. DataDirectory.VirtualAddress:00000000
                              IMAGE_DATA_DIRECTORY [15].DataDirectory.isize: 00000000


                              15楼2013-05-02 15:31
                              回复