飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 374|回复: 0

[其它] [IDA使用技巧]#010: 处理数组

[复制链接]
  • TA的每日心情
    开心
    2019-3-15 11:00
  • 签到天数: 262 天

    [LV.8]以坛为家I

    发表于 2024-3-14 11:36:25 | 显示全部楼层 |阅读模式
    本帖最后由 梦幻的彼岸 于 2024-3-14 11:48 编辑

    翻译:梦幻的彼岸
    IDA中使用数组表示同一类型的多个项目的序列:基本类型(字节、字、双字等)或复杂类型(例如结构)。
    创建数组
    创建一个数组:
    • 创建第一个项目;
    • 从上下文菜单中选择 "Array...[数组]",或按 *;
    • 至少填写 "Array size[数组大小"]字段,然后单击 "OK[确定]"。

    步骤 1 是可选的;如果当前位置没有数据项,则将创建一个字节数组。
    提示:如果在按下 * 之前选择了一个范围,数组大小 将预先填入符合所选范围的项目数。

    数组参数
    数组参数会影响数组在列表中的显示方式,可以在首次创建数组时设置,也可以在之后的任何时间按 * 键设置。

    • 数组大小:数组中元素的总数;
    • 一行中的项目数:一行中要打印的项目数(最多)。0 表示打印适合反汇编行的最大数量;
    • 元素打印宽度:每个元素打印多少个字符。与前一个参数一起可用于将数组格式化为漂亮的表格。例如
      每行 8 项,打印宽度-1:
      db 1, 2, 3, 4, 5, 6, 7, 8db 9, 10, 11, 12, 13, 14, 15, 16db 17, 18, 19, 20, 21, 22, 23, 24db 25, 255, 255, 255, 255, 255, 255, 26db 27, 28, 29, 30, 31, 32, 33, 34db 35, 36, 37, 38, 39, 40, 41, 42print width 0:
      db   1,  2,  3,  4,  5,  6,  7,  8db   9, 10, 11, 12, 13, 14, 15, 16db  17, 18, 19, 20, 21, 22, 23, 24db  25,255,255,255,255,255,255, 26db  27, 28, 29, 30, 31, 32, 33, 34db  35, 36, 37, 38, 39, 40, 41, 42print width 5:
      db     1,    2,    3,    4,    5,    6,    7,    8db     9,   10,   11,   12,   13,   14,   15,   16db    17,   18,   19,   20,   21,   22,   23,   24db    25,  255,  255,  255,  255,  255,  255,   26db    27,   28,   29,   30,   31,   32,   33,   34db    35,   36,   37,   38,   39,   40,   41,   42
    • 使用 "dup "结构:对于支持该结构的汇编程序,具有相同值的重复项目将合并为一个 dup 表达式,而不是单独打印每个项目;
    • dup off:  db 0FFh, 0FFh, 0FFh, 0FFh, 0FFh, 0FFh
    • dup on:db 6 dup(0FFh)
    • 有符号元素:整数项目将被视为有符号数字;
    • 显示索引:每一行的第一个项目的数组索引将打印在注释中。
    • 创建为数组:如果未选中,IDA 将把数组转换为单独的项。
    创建多个字符串字面形式
    数组参数对话框中的最后一个选项在处理多个字符串字面量时非常有用。例如,如果我们有这样一个字符串表:
    首先,创建一个字符串。
    然后,使用前面介绍的方法之一选中它和下面的所有字符串。
    调用Edit[编辑] > "Array...[数组]"或按 *。数组的大小将设置为选区的总长度。在对话框中取消选中 "Create as array创建为数组"。单击 "确定"。


    我们会得到一个格式很好的字符串表!
    这种方法也适用于 Unicode (UTF-16) 字符串。

    评分

    参与人数 1威望 +1 飘云币 +1 收起 理由
    黑色夜心情 + 1 + 1 PYG有你更精彩!

    查看全部评分

    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表