当前位置: 首页 > news >正文

张家港网站制作公司为什么需要网站开发

张家港网站制作公司,为什么需要网站开发,个人主页设计规划文案,网站建设与维护典型案例文章目录 前言一、什么是Windows PE格式节表#xff1f;二、解析节表并显示1.节表数据结构以及字段描述2.节表的属性3.解析4.显示 前言 通过分析和解析Windows PE格式#xff0c;并使用qt进行图形化显示 一、什么是Windows PE格式节表#xff1f; PE格式的节表#xff08… 文章目录 前言一、什么是Windows PE格式节表二、解析节表并显示1.节表数据结构以及字段描述2.节表的属性3.解析4.显示 前言 通过分析和解析Windows PE格式并使用qt进行图形化显示 一、什么是Windows PE格式节表 PE格式的节表Section Table是一个数组它包含了PE文件中各个节Section的信息。每个节表项都是一个IMAGE_SECTION_HEADER结构体它包含了关于节的名称、大小、属性等信息。 二、解析节表并显示 1.节表数据结构以及字段描述 Name节的名称最多8个字符以空字符填充。 VirtualSize节在内存中的大小以字节为单位。 VirtualAddress节在内存中的起始RVA相对虚拟地址。 SizeOfRawData节在文件中的大小以字节为单位。 PointerToRawData节在文件中的起始偏移量以字节为单位。 PointerToRelocations节的重定位表在文件中的起始偏移量以字节为单位。 PointerToLinenumbers节的行号表在文件中的起始偏移量以字节为单位。 NumberOfRelocations节的重定位表中的项数。 NumberOfLinenumbers节的行号表中的项数。 Characteristics节的属性如可读、可写、可执行等。 struct IMAGE_SECTION_HEADER {BYTE Name[IMAGE_SIZEOF_SHORT_NAME];union {DWORD PhysicalAddress;DWORD VirtualSize;} Misc;DWORD VirtualAddress;DWORD SizeOfRawData;DWORD PointerToRawData;DWORD PointerToRelocations;DWORD PointerToLinenumbers;WORD NumberOfRelocations;WORD NumberOfLinenumbers;DWORD Characteristics; };2.节表的属性 PE格式的节表中的每个节都有一个属性字段Characteristics它是一个位掩码用于指定节的各种属性。以下是一些常见的节属性及其具体值 IMAGE_SCN_CNT_CODE表示节包含可执行代码。具体值为0x00000020。 IMAGE_SCN_CNT_INITIALIZED_DATA表示节包含初始化的数据。具体值为0x00000040。 IMAGE_SCN_CNT_UNINITIALIZED_DATA表示节包含未初始化的数据。具体值为0x00000080。 IMAGE_SCN_MEM_EXECUTE表示节可以执行。具体值为0x20000000。 IMAGE_SCN_MEM_READ表示节可以读取。具体值为0x40000000。 IMAGE_SCN_MEM_WRITE表示节可以写入。具体值为0x80000000。 IMAGE_SCN_MEM_SHARED表示节可以在多个进程之间共享。具体值为0x10000000。 IMAGE_SCN_MEM_DISCARDABLE表示节可以被丢弃以释放内存。具体值为0x02000000。 IMAGE_SCN_MEM_NOT_CACHED表示节不应被缓存。具体值为0x04000000。 IMAGE_SCN_MEM_NOT_PAGED表示节不应被分页。具体值为0x08000000。 这些属性可以组合使用以指定节的具体属性。例如如果一个节同时包含可执行代码和可读数据那么它的属性字段将包含IMAGE_SCN_CNT_CODE和IMAGE_SCN_MEM_READ标志。在处理PE文件时可以通过检查节的属性字段来确定节的具体用途和行为。 3.解析 bool PEParser::parserFileData(const QByteArray fileData) {//判断是否是MZ开头的文件if (fileData.left(2) ! MZ){return false;}//解析DOS头parserDOSHeader(fileData.left(sizeof(IMAGE_DOS_HEADER)));//DOSStub数据m_dosStubData fileData.mid(sizeof(IMAGE_DOS_HEADER), m_dosHeader.e_lfanew - sizeof(IMAGE_DOS_HEADER));long peAddress m_dosHeader.e_lfanew;if (fileData.mid(peAddress, 2) ! PE){return false;}m_fileData fileData;//去除前4个字节的PE头标识long fileHeaderIndex peAddress 4;//记录文件头索引m_fileHeaderIndex fileHeaderIndex;//解析标准PE文件头paserFileHeader(fileData.mid(fileHeaderIndex, sizeof(IMAGE_FILE_HEADER)));//解析扩展PE文件头long optionHeaderIndex fileHeaderIndex sizeof(IMAGE_FILE_HEADER);//记录扩展PE文件头索引m_optionHeaderIndex optionHeaderIndex;//解析扩展PE文件头parserOptionHeader(fileData.mid(optionHeaderIndex, m_fileHeader.SizeOfOptionalHeader));//解析节表long sectionHeaderIndex optionHeaderIndex m_fileHeader.SizeOfOptionalHeader;//节表结构在文件中开始的偏移m_sectionHeaderIndex sectionHeaderIndex;//解析节表parserSectionHeader(fileData.mid(sectionHeaderIndex,m_fileHeader.NumberOfSections * sizeof(IMAGE_SECTION_HEADER)));return true; }void PEParser::parserSectionHeader(const QByteArray sectionHeader) {m_sections.clear();for (int i 0; i m_fileHeader.NumberOfSections; i){int index i * sizeof(IMAGE_SECTION_HEADER);QByteArray sectionData sectionHeader.mid(index, sizeof(IMAGE_SECTION_HEADER));const IMAGE_SECTION_HEADER *header reinterpret_castconst IMAGE_SECTION_HEADER *(sectionData.data());m_sections.append(*header);}emit sendSectionHeader(m_sections); }4.显示 void MainWindow::showSectionHeader(const QListIMAGE_SECTION_HEADER sections) {ui-tableWidget_sections-clearContents();ui-tableWidget_dataDirectories-setRowCount(0);for (int i 0; i sections.size(); i){ui-tableWidget_sections-insertRow(i);ui-tableWidget_sections-setItem(i, 0, new QTableWidgetItem(QString::asprintf(%s, sections[i].Name)));ui-tableWidget_sections-setItem(i, 1, new QTableWidgetItem(QString::asprintf(%08lX, sections[i].VirtualAddress)));ui-tableWidget_sections-setItem(i, 2, new QTableWidgetItem(QString::asprintf(%08lX, sections[i].Misc.VirtualSize)));ui-tableWidget_sections-setItem(i, 3, new QTableWidgetItem(QString::asprintf(%08lX, sections[i].PointerToRawData)));ui-tableWidget_sections-setItem(i, 4, new QTableWidgetItem(QString::asprintf(%08lX, sections[i].SizeOfRawData)));ui-tableWidget_sections-setItem(i, 5, new QTableWidgetItem(QString::asprintf(%08lX, sections[i].Characteristics)));} }
http://www.dnsts.com.cn/news/131289.html

相关文章:

  • 网站专题策划案例织梦cms手机版
  • html5 网站开发实战装修第三方平台网站建设
  • 台州网站建设方案优化怎样注册自己网站
  • seo网站优化报价仓库管理系统app
  • 苏州网站建设创意展示型网站建设的建议
  • 那个网站做调查问卷能赚钱网站建设数据技术
  • php 开源企业网站crm客户管理系统哪个好
  • 网站选服务器文件我想网站建设
  • 洪梅镇网站建设公司自创字 网站
  • 网站开发跟软件开发网络服务器的功能
  • 台州建站程序游戏开发赚钱吗
  • 云浮住房和城乡建设部官方网站深圳平湖网站开发
  • 建一个网站素材哪里来旅游最新政策
  • 做网站前端需要懂得南联网站建设哪家好
  • 广西建设安全员证查询网站免费建站系统博客
  • 做影视免费网站违法吗wordpress评论数
  • 沈阳住房城乡建设部网站wordpress 虎嗅 小兽
  • 网站建设项目价格在广州开发一个营销网站多少钱
  • 温州网站推广有哪些方法两学一做网站网站
  • 营销型网站建站企业网站seo优化交流
  • 网站推广方法100种珠海七中科技制作
  • 查楼盘剩余房源的网站河南省住房与建设注册中心网站
  • 博业建站网网站建设支出及维护费应怎样做账
  • 建设工程造价网优化服务内容
  • 站长工具的使用seo综合查询运营17173金币交易平台
  • 商业设计网站自己做游戏需要学什么
  • 南京建设厅官方网站建网站的费用是多少
  • 耐思尼克的建站宝盒0460网站之家
  • 北京做企业网站多少钱企业网络搭建及应用实验报告
  • 明年做啥网站能致富高要网站制作