工具篇 PEinfo第一讲

1,编程思路:文件格式检查-〉fileheader读取-〉fileoptionheader读取-〉数据目录表读取-〉区块表读取-〉输出表-〉输入表

第一步,文件格式检查

  dos头,   IMAGE_DOS_HEADER STRUCT

                      {

                          WORD          e_magic

                           ..........

                         DWORD     e_lfanew     //指向pe文件头+3ch

                       }PIMAGE_DOS_HEADER  ENDS

                        PIMAGE_DOS_HEADER      pDH=NULL;

   

   判断pDH->e_magic=='MZ'并通过pDH->e_ifanew找到IMAGE_NT_HEADERS

            IMAGE_NT_HEADERS    STRUCT

            {

                     DWORD                                                Signature

                     IMAGE_FILE_HEADER                       FileHeader

                     IMAGE_OPTIONAL_HEADER32       OptionlHeader

              }PIMAGE_NT_HEADERS  ENDS

               PIMAGE_NT_HEADERS   pNTH=NULL;

  检测:             pNTH->Signature=='PE';

    

 第二部,FileHeader读取    

                         PIMAGE_NT_HEADERS  GetNtHeaders(LPVOID  ImageBase)

                             {

                                   if(  !IsPEFile(ImageBase)   )

                                          return  NULL;

                              PIMAGE_NT_HEADERS    pNTH;

                               PIM_DOS_HEADERS      pDH;

                               pDH=(PIMAGE_DOS_HEADER)ImageBase;

                               pNTH=(PIMAGE_NT_HEADERS)(   (DWORD)pDH+pDH->e_lfanew     ) ;

                             return   pNTH;

                            }

              

       

工具篇 PEinfo第一讲_第1张图片工具篇 PEinfo第一讲_第2张图片工具篇 PEinfo第一讲_第3张图片工具篇 PEinfo第一讲_第4张图片

工具篇 PEinfo第一讲_第5张图片工具篇 PEinfo第一讲_第6张图片工具篇 PEinfo第一讲_第7张图片工具篇 PEinfo第一讲_第8张图片工具篇 PEinfo第一讲_第9张图片工具篇 PEinfo第一讲_第10张图片工具篇 PEinfo第一讲_第11张图片工具篇 PEinfo第一讲_第12张图片

工具篇 PEinfo第一讲_第13张图片

工具篇 PEinfo第一讲_第14张图片工具篇 PEinfo第一讲_第15张图片工具篇 PEinfo第一讲_第16张图片工具篇 PEinfo第一讲_第17张图片工具篇 PEinfo第一讲_第18张图片工具篇 PEinfo第一讲_第19张图片工具篇 PEinfo第一讲_第20张图片工具篇 PEinfo第一讲_第21张图片

你可能感兴趣的:(加密与解密)