动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息

本月文章推荐
.进制的转换.
.C语言中库函数调用几例.
.留言簿程序的编写.
.指针运算符与指针表达式.
.如何取得程序本身版本号.
.一个简易的proxy程序的开发过程(.
.Windows编程基础 - 文.
.利用C++模板编写的序列化框架.
.BCB利用组件传送文件.
.C++实现委托和消息反馈模板.
.控制台窗口界面的编程控制(四).
.谁动了我的指针.
.Struts+Hibernate中解决汉字编码.
.五种VC++数据库开发技术的比较.
.Linux下的代码淬火技术.
.取得本地internet机器的名字及IP.
.获取当前鼠标位置的类名和句柄.
.Perl的经典用法.
.TRichEdit右键滚屏代码.
.制作用于日期时间型字段的DELPHI.

PE文件格式分析心得

发表日期:2008-3-8 |



  PE文件格式最近似乎炒得沸沸扬扬,由于我正在做一个这样的程序,索性将自己的心得写出来与大家同享。
  PE文件头分两大部分:
1:DOS ‘MZ’ HEADER
2:IMAGE_NT_HEADERS
  其中IMAGE_NT_HEADERS中包含
PE signature
IMAGE_FILE_HEADER
IMAGE_OPTIONAL_HEADER(其中包含Data Direcotry)
  文件头后紧跟着为
Section Table (array of IMAGE_SECTION_HEADERs)
  在Delphi的windows.pad中已经有定义的有:
TImageDosHeader;
TImageNtHeaders;
TImageSectionHeader; { size of TIm..der is $28 }
  定义变量后按住Ctrl可以察看具体的项目,这里我就不多说了,这方面的东西也很多。
  而其他的如TImageResourceDirectory等,在DELPHI中却没有定义,察看其他资料,我在这里给出他们的结构和简单说明:
  以下是我写的PEDump.exe的类型说明:

type
  PIMAGE_RESOURCE_DIRECTORY = ^TImageResourceDirectory;
  _IMAGE_RESOURCE_DIRECTORY = packed record
    Characteristics:DWord;
    TimeDateStamp:DWORD;
    MajorVersion:WORD;
    MinorVersion:WORD;
    NumberOfNamedEntries:WORD;
    NumberOfIdEntries:WORD;
  end;
  TImageResourceDirectory = _IMAGE_RESOURCE_DIRECTORY;
  { 资源目录的格式说明 }

  PIMAGE_RESOURCE_DIRECTORY_ENTRY = ^TImageResourceDirectoryEntry;
  _IMAGE_RESOURCE_DIRECTORY_ENTRY = packed record
    Name:DWORD;         { NameOffset:31,NameIsString:1 }
//    Id:WORD;
    OffsetToData:DWORD; { OffsetToDirectory:31,DataIsDirectory:1 }
  end;
  TImageResourceDirectoryEntry = _IMAGE_RESOURCE_DIRECTORY_ENTRY;
  { 资源目录进入点的格式说明 }

  PIMAGE_RESOURCE_DIRECTORY_STRING = ^TImageResourceDirectoryString;
  _IMAGE_RESOURCE_DIRECTORY_STRING = packed record
    Length:WORD;
    NameString:CHAR;
  end;
  TImageResourceDirectoryString = _IMAGE_RESOURCE_DIRECTORY_STRING;
  { 资源目录名的格式说明 }

  PIMAGE_RESOURCE_DIR_STRING_U = ^TImageResourceDirStringU;
  _IMAGE_RESOURCE_DIR_STRING_U = packed record
    Length:WORD;
    NameString:WCHAR;
  end;
  TImageResourceDirStringU = _IMAGE_RESOURCE_DIR_STRING_U;

  { unicode形式的资源目录名的格式说明 }

  PIMAGE_RESOURCE_DATA_ENTRY = ^TImageResourceDataEntry;
  _IMAGE_RESOURCE_DATA_ENTRY = packed record
    OffsetToData:DWORD;
    Size:DWORD;
    CodePage:DWORD;
    Reserved:DWORD;
  end;
  TImageResourceDataEntry = _IMAGE_RESOURCE_DATA_ENTRY;
  { 资源目录数据进入点的格式说明 }

const
  IMAGE_RESOURCE_NAME_IS_STRING = $80000000;
  { 检测TImageResourceDirectoryEntry.Name的最高为是否设立,
    是则说明剩下的31位指向IMAGE_RESOURCE_DIR_STRING_U的偏移,
    否则说明剩下的31位为一个整数ID。 }
  IMAGE_RESOURCE_DATA_IS_DIRECTORY = $80000000;
  { 检测TImageResourceDirectoryEntry.OffsetToData的最高为是否设立,
    是则说明剩下的31位指向另一个IMAGE_RESOURCE_DIRECTORY的偏移,
    否则说明剩下的31位指向IMAGE_RESOURCE_DATA_ENTRY的偏移。 }

  { 以下是文件属性具体值常量说明 }
  { File Characteristics }
  IMAGE_FILE_RELOCS_STRIPPED           = $0001; // Relocation info stripped from file.
  IMAGE_FILE_EXECUTABLE_IMAGE          = $0002; // File is executable.
  IMAGE_FILE_LINE_NUMS_STRIPPED        = $0004; // Line nunbers stripped from file.
  IMAGE_FILE_LOCAL_SYMS_STRIPPED       = $0008; // Local symbols stripped from file.
  IMAGE_FILE_AGGRESIVE_WS_TRIM         = $0010; // Agressively trim working set
  IMAGE_FILE_LARGE_ADDRESS_AWARE       = $0020; // App can handle >2gb addresses
  IMAGE_FILE_BYTES_REVERSED_LO         = $0080; // Bytes of machine word are reversed.
  IMAGE_FILE_32B99v_MACHINE             = $0100; // 32 bit word machine.
  IMAGE_FILE_DEBUG_STRIPPED            = $0200;  
  // Debugging info stripped from file in .DBG file
  IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP   = $0400;  
  // If Image is on removable media, copy and run from the swap file.
  IMAGE_FILE_NET_RUN_FROM_SWAP         = $0800;  
  // If Image is on Net, copy and run from the swap file.

  IMAGE_FILE_SYSTEM                    = $1000; // System File.
  IMAGE_FILE_DLL                       = $2000; // File is a DLL.
  IMAGE_FILE_UP_SYSTEM_ONLY            = $4000; // File should only be run on a UP machine
  IMAGE_FILE_BYTES_REVERSED_HI         = $8000; // Bytes of machine word are reversed.

  { 以下是文件头机器属性值的具体说明 }
  { Machine }
  IMAGE_FILE_MACHINE_UNKNOWN           = $0;
  IMAGE_FILE_MACHINE_I386              = $014c; // Intel 386.
  IMAGE_FILE_MACHINE_R3000             = $0162; // MIPS little-endian, $160 big-endian
  IMAGE_FILE_MACHINE_R4000             = $0166; // MIPS little-endian
  IMAGE_FILE_MACHINE_R10000            = $0168; // MIPS little-endian
  IMAGE_FILE_MACHINE_WCEMIPSV2         = $0169; // MIPS little-endian WCE v2
  IMAGE_FILE_MACHINE_ALPHA             = $0184; // Alpha_AXP
  IMAGE_FILE_MACHINE_SH3               = $01a2; // SH3 little-endian
  IMAGE_FILE_MACHINE_SH3E    
上一篇:OpenBSD 可加载内核模块编程完全指南 人气:267
下一篇:1.1 Turbo C语言概述 人气:265
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-8-20 25175 学生成绩管理查询系统 v2.
2008-8-20 乘风电影程序 v3.7 Acc
2008-8-20 乘风电影程序 v3.7 Sql
2008-8-20 XML文章系统 v1.08 build 080820
2008-8-20 老Y文章管理系统 v2.0 build 080
2008-8-20 OA企业智能办公自动化系统边缘特
2008-8-20 欣颐免费时尚发廊美发厅全站程序
2008-8-20 凌风简单留言板 v1.0
2008-8-20 政府工作日志系统
2008-8-16 iLaba Player(小喇叭播放器) v2.
2008-8-16 DoubleClickFix 鼠标双击修正工具
2008-8-16 CrystalCPUID 4.15.2.451
2008-8-16 VeryCD 电驴(easyMule) 1.0.4 Bu
2008-8-16 uTorrent 1.8 Build 11813 - Sta
2008-8-16 比特精灵(BitSpirit) v3.3.2.287
2008-8-16 StayInTune音叉 v1.0 破解版
2008-8-16 iChing《周易》汉化补丁 v1.0
2008-8-16 Starmap星空图v1.0汉化破解版
  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵