静态分析:IDA逆向代码段说明 text、idata、rdata、data

2023-05-16

通常IDA对一个PE文件逆向出来的代码中,

存在四个最基本的段text、idata、rdata、data,

四个段为PE文件的结构中对应的段。

一、text段:

该段位程序代码段,在该段一开始就可以看到:

.text:00401000 ; Segment type: Pure code
.text:00401000 ; Segment permissions: Read/Execute

这里的段类型跟权限说明很清楚: 分别为代码段和可读可执行。需要注意的是,borland这里叫做code,而不是text 

二、idata、rdata、data段

从命名上可以看出,三个段全为存放特殊数据的段,但IDA根据PE文件的格式将数据段中不同类型的数据区分开来。

VC开发工具将INC,LIB,RES放在数据段,DELPHI也类似,同时由于Delphi的窗体文件*.dfm在源代码中使用编译指令{$R *dfm}作为res资源放在数据段中,因此像delphi的反汇编工具dede就根据这些窗体资源数据,分析出相当清晰的源代码与窗体事件的对应地址,当然实现代码还是汇编代码。

1) idata段:

该段在一开始一般有类似下面的说明:

.idata:0049B000 ; Section 2. (virtual address 0009B000)
.idata:0049B000 ; Virtual size : 0001717E ( 94590.)
.idata:0049B000 ; Section size in file : 00018000 ( 98304.)
.idata:0049B000 ; Offset to raw data for section: 0009B000
.idata:0049B000 ; Flags 40000040: Data Readable
.idata:0049B000 ; Alignment : default
.idata:0049B000 ;
.idata:0049B000 ; Imports from ADVAPI32.dll
.idata:0049B000 ;
.idata:0049B000 ; ===========================================================================
.idata:0049B000
.idata:0049B000 ; Segment type: Externs
.idata:0049B000 ; _idata

明显是一个Imports函数的代码段,这里集中所有外部函数地址,代码中会先跳到该地址后再执行,PE文件加载器在开始会获取真实的函数地址来修补idata段中的函数地址。

与之对应的exports是edata,

表面上看PE文件对该段的定位是特殊数据段。

2)rdata段

名字上看就是资源数据段,程序用到什么资源数据都在这里,资源包括你自己封包的,也包括开发工具自动封包的。

3)data段

这个段存放程序的全局数据、全局常量等。

 

转载于:https://www.cnblogs.com/caibirdy1985/archive/2011/10/17/4232969.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

静态分析:IDA逆向代码段说明 text、idata、rdata、data 的相关文章

  • 验证用户输入

    我的用户将在这样的地方输入一些字节 Yellow arrow points to his input Orange arrow points to my button 大约半个小时后 我开始意识到这比我想象的要乏味得多 问题 我是否需要编写
  • Python/Matplotlib - 快速更新轴上的文本

    我在 wxpython 窗口中有一个 matplotlib 图 画布 我想在鼠标移动时更新绘图上的一些信息 我已连接到 motion notify event 来获取此信息 在下面的代码中 绘制了大量随机数据 然后在窗口的状态栏中显示光标的
  • 在 VB.NET 中确定文件大小

    如何确定文本文件的大小 我知道我可以只计算字符数 但文件将有几 MB 大 Dim myFile As New FileInfo file txt Dim sizeInBytes As Long myFile Length
  • 将选定区域的文本复制到剪贴板

    我对 C 和一般编程还很陌生 我想知道是否有办法实现以下功能 在我的 C 程序中有一个textbox named tb1 and button named bt1 当我点击bt1 我的光标将变为 选择器 我切换到需要从中获取值的程序 我选择
  • 如何从sparkContext读取特定行

    您好 我正在尝试使用 Spark 从文本文件中读取特定行 SparkConf conf new SparkConf setAppName appName setMaster master sc new JavaSparkContext co
  • 我可以将多行文本的每一行换行到一个跨度中吗?

    我一直在试图弄清楚如何做到这一点 如果可能的话 并且画了一个空白 我有一些文本将换行为多行 我想检测每一行 并将其包装在一个跨度中 最后 我想为循环数组中的每个范围分配一个类 例如 div I have some text that wra
  • 从具有特定模式的 txt 文件创建 Pandas DataFrame

    我需要基于以下结构的文本文件创建一个 Pandas DataFrame Alabama edit Auburn Auburn University 1 Florence University of North Alabama Jackson
  • 正则表达式从文本文件中提取文本块?

    我需要使用正则表达式从 Python 文本文件中提取标题及其下方的文本块 但我发现这很困难 我转换了这个PDF https www docdroid net rduS8oC pdfsam doc pdf文本 现在看起来像这样 到目前为止 我
  • 追加到 txt 文件中的现有行

    我有一个程序可以将一个人的姓名及其分数存储在 python 的 txt 文件中 例如这是我当前的代码 name input Name score input Score file name student scores txt file o
  • 用于图像中文本检测的霍夫变换算法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 霍夫变换算法是用于文本行检测和边缘检测的算法之一 霍夫变换算法可以用于检测图像中的文本吗 这道题在java中的流程或者实现应该是怎样的
  • jquery脉动文本

    我正在使用 jquery 来使文本脉动 一切都很好 但我无法理解某些事情 我只想脉动 x 次 然后停止 我正在使用以下代码来使类产生脉动 document ready function function pulsate pulsate an
  • 如何仅将列表中每个字符串的标题大写?

    整个问题 编写一个函数 该函数将字符串列表作为参数 并返回一个包含每个大写字符串作为标题的列表 也就是说 如果输入参数是 apple pie brownies chocolate dulce de leche eclairs 你的函数应该返
  • 旋转时键盘隐藏

    我正在开发 iPad 应用程序 在其中一个视图中 我有一个子视图 它在按钮点击事件时出现和消失 子视图包含一个UITextView 默认情况下 我将其设置为第一响应者 以便在视图出现时键盘立即出现 子视图也会消失UIKeyboardWill
  • CSS:变换:翻译(-50%,-50%)使文本模糊[重复]

    这个问题在这里已经有答案了 我想将我的div我使用这种方法 但它使我的文本在div blurry div top 50 left 50 webkit transform translate 50 50 transform translate
  • 如何在 UNIX / Linux 操作系统下使用 sed 替换带有换行符 (\n) 的模式?

    我有一个 txt 文件 其中包含 Some random text here This file has multiple lines Should be one line I use sed q N s n sl g t q file1
  • 是否可以使用 Google BERT 来计算两个文本文档之间的相似度?

    是否可以使用 Google BERT 来计算两个文本文档之间的相似度 据我了解 BERT 的输入应该是有限大小的句子 一些作品使用 BERT 来计算句子的相似度 例如 https github com AndriyMulyar semant
  • 如何突出显示最靠近鼠标的文本行?

    我有一篇很长的文本 我想为用户提供阅读帮助 当前行应该突出显示 为了更简单 我将只使用鼠标的 Y 坐标 这样 鼠标指针就不会妨碍 我有一个带有 id 的大 DIVcontent它用类填充整个宽度和一个小 DIVcontent对于文本 请参阅
  • 是否可以在 gnuplot 中设置标签相对于键的位置?

    我的情节的本质是这样的 绝对的标签并不能真正发挥作用 我无法限制 y 中的范围 所以想知道是否有办法将我的标签文本包含在键内或将其相对于键放置 即下面 set term png enhanced size 1024 768 set titl
  • CSS - 将文本保留在图像下方

    我正在尝试创建一个简单的图片库 有人告诉我使用 float left 但是当我这样做时 页脚中的所有文本都会射到第一张图像 我已经搜索了大约一个小时试图找到解决方案 但我找不到任何东西 我尝试过使用边距 边框 不同的对齐方式和各种不同的小东
  • 如何声明文本字段只能包含整数?

    在 swift 中 我试图创建一个文本字段 该文本字段将允许启用按钮 但仅当文本字段包含整数时 我怎样才能做到这一点 两件事情 指定键盘类型以仅显示数字键盘 所以 设置keyboardType to numberPad 然而 这还不足以阻止

随机推荐

  • 详解摄像头各个引脚的作用关系

    智能手机摄像头原理图解教程 http wenku baidu com link url 61 KSK7Go57xYfrwtUjOoXU8D23D rUtKzjeMAxd0h Hrdf7G fu5V8o 7oXgP7TY4EFwkniKrcM
  • 如何借助 OVN 来提高 OVS 在云计算环境中的性能

    众所周知 xff0c OpenvSwitch 以其丰富的功能和不错的性能 xff0c 已经成为 Openstack 部署中最受欢迎的虚拟交换机 由于 Openstack Neutron 的架构引入了一些性能问题 xff0c 比如 neutr
  • 从域环境搭建到域渗透

    转发 xff1a 从域环境搭建到域渗 透 xff08 上 xff09 从域环境搭建到域渗 透 xff08 下 xff09 转载于 https www cnblogs com little kwy p 11622550 html
  • 域渗透基础之环境搭建(单域到组件域林)

    转发 xff1a https www e learn cn content qita 2484245 之前练习域渗透的环境被我弄丢了 重新搭建一个完整的域环境吧 域渗透的基础还是环境的搭建 xff0c 单域到域树再到域林 单域环境搭建 创建
  • React + TypeScript 实现泛型组件

    泛型类型 TypeScript 中 xff0c 类型 xff08 interface type xff09 是可以声明成泛型的 xff0c 这很常见 interface Props lt T gt content T 这表明 Props 接
  • python创建数组的方法

    一 直接定义法 xff1a 1 直接定义 span class hljs attribute matrix 61 span class hljs string 0 1 2 3 span span 2 间接定义 span class hljs
  • Typo: In word 拼写检查

    Settings gt Inspections gt Spelling gt Typo 评写检查 xff0c 转载于 https www cnblogs com nicknailo p 9140014 html
  • 关于Verilog中begin···end语句执行顺序

    Verilog中分阻塞赋值和非阻塞赋值两种 xff0c 组合逻辑多用阻塞赋值 xff0c 此时使用begin end语句 xff0c 将一条执行完再执行下一句 xff0c 即顺序执行 而时序逻辑多是并行执行 xff0c 多用非阻塞赋值 xf
  • xxxxxx

    Files jasenkin CultureSilverlightSample rar 转载于 https www cnblogs com jasenkin archive 2011 02 23 1961904 html
  • 设置elementUI的table组件滚动条位置

    1 设置table的ref为tableList 2 设置滚动至顶部 this refs tableList bodyWrapper scrollTop 61 0 3 设置滚动至底部 this refs tableList bodyWrapp
  • golang结构体数组

    转自 https www liaotaoo cn 200 html code package main import 34 fmt 34 type student struct id int name string score int fu
  • 2019清北学堂学习笔记

    暴力求解法 迭代加深搜 适用于搜索树深度不确定的时候 xff0c 可以使用迭代加深搜 步骤 xff1a 1 枚举maxd表示最深枚举深度 xff1b 2 假设当前深度为g n xff0c 乐观估计至少要h n 层才能到达叶子节点 xff0c
  • 日记-致我那易逝的时光

    9月 28日 第一次在机房里写日记 xff0c 踩着这几百块钱的电脑桌 xff1b 看着这几十块钱的显示屏 xff1b 敲着这几块钱的键盘 xff1b 烧着这几毛钱的 Central Processing Unit xff1b 捏着这几分钱
  • linux node安装教程

    官网下载 http nodejs cn 解压 tar xvf node v10 14 1 linux x64 tar gz mv node v10 14 1 linux x64 node 环境变量配置 vim etc profile exp
  • 洛谷P1230智力大冲浪 题解

    题目描述 小伟报名参加中央电视台的智力大冲浪节目 本次挑战赛吸引了众多参赛者 xff0c 主持人为了表彰大家的勇气 xff0c 先奖励每个参赛者m元 先不要太高兴 xff01 因为这些钱还不一定都是你的 xff1f xff01 接下来主持人
  • 根据hash值找到bt种子的磁力下载链

    根据hash值找到bt种子的磁力下载链 画皮2 hash E5757D533B3690774519E6A80021E43C03A58C0B 磁力 下载链接 如下 xff1a magnet xt 61 urn btih E5757D533B3
  • 操作系统中的P-V操作(转)

    信号量是最早出现的用来解决进程同步与互斥问题的机制 也可实现进程通信 xff0c 包括一个称为信号量的变量及对它进行的两个原语操作 信号量为一个整数 xff0c 我们设这个信号量为 xff1a sem 很显然 xff0c 我们规定在sem大
  • Linux使用storcli工具查看服务器硬盘和raid组信息

    1 简介 MegaCli 是LSI公司官方提供的SCSI卡管理工具 xff0c 由于LSI被收购变成了现在的Broadcom xff0c 所以现在想下载MegaCli xff0c 需要去Broadcom官网查找Legacy产品支持 xff0
  • 四元数运动学笔记(5)IMU驱动的运动误差方程

    1 扩展卡尔曼滤波EKF 1 1线性化卡尔曼滤波 1 2偏差微分方程的推导 1 3线性化卡尔曼滤波的流程 1 4 离散EKF 2 误差状态的运动方程 2 1连续时间的IMU系统动态方程 2 1 1相关变量 2 1 2真实状态运动方程 tru
  • 静态分析:IDA逆向代码段说明 text、idata、rdata、data

    通常IDA对一个PE文件逆向出来的代码中 xff0c 存在四个最基本的段text idata rdata data xff0c 四个段为PE文件的结构中对应的段 一 text段 xff1a 该段位程序代码段 xff0c 在该段一开始就可以看