IDA 技巧(3) IDA 中的选择 Selection

admin 2024年4月5日13:08:33评论3 views字数 889阅读2分57秒阅读模式

IDA 中的选择 Selection

什么是”选择“?如下图所示,用鼠标选中的部分就叫“选择”

IDA 技巧(3) IDA 中的选择 Selection

在 IDA 中选择东西的最简单方法与任何文本编辑器相同:

  • 用鼠标点击并拖动(您也可以在按住左键的同时滚动滚轮来滚动);
  • 按住Shift键并使用光标导航键(← ↑ → ↓ PgUp PgDn Home End等)。
  • 然而,如果您需要选择一个庞大的列表块(例如,数屏幕),这样做可能会很快变得繁琐。在这种情况下,锚点选择将非常有用。

IDA 中的锚点选择

将光标移动到所需选择的开头,然后选择 “Edit” > “Begin selection”(或使用 Alt–L 快捷键)。使用任何方式导航到选择的另一端(光标键、跳转操作、函数窗口、导航栏等)。执行操作(通过上下文菜单、键盘快捷键或全局菜单)。它将从锚点到当前位置应用于选择。

简单说就是,用 Alt+L 创建一个锚点,再用任何方式去结束选择的位置,这样就能快速选择非常大一段内容。

IDA 中的操作与操作作用的对象(范围操作)

什么是“操作”?如下图的 Undefine 菜单项就是一个操作。

IDA 技巧(3) IDA 中的选择 Selection

在IDA中执行操作时,默认情况下仅将其应用于光标下的项目或当前地址(取决于操作)。

然而,有时您可能希望对更多项目或地址范围执行操作,例如:

  • 取消定义一系列指令;
  • 将一系列未定义的字节转换为字符串文字,如果IDA无法自动执行此操作(例如,字符串不是以null结尾的);
  • 从一系列包含一些中间数据的指令中创建函数(例如,当出现可怕的“函数在指定地址处有未定义的指令/数据”错误时);
  • 仅导出所选函数的反汇编或反编译,而不是整个文件;
  • 将所选的反汇编片段复制到剪贴板。

golang 、 rust 编译的二进制文件中程序所使用的字符串一般不是以 null 结尾的,ida 不能正常识别,这种时候,我们可以选中人工识别的字符串,然后手动的创建一个非 null 结尾的字符串。

例子

一些使用选择功能的操作:

  1. 在“文件 > 生成文件”子菜单中的命令(创建 .ASM、.LST、HTML 或 .C 文件)
  2. 编辑 > 导出数据(Shift–E)

IDA 技巧(3) IDA 中的选择 Selection

(当然也适用于 LazyIDA 这样的插件)

原文始发于微信公众号(二进制磨剑):IDA 技巧(3) IDA 中的选择 Selection

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月5日13:08:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   IDA 技巧(3) IDA 中的选择 Selectionhttps://cn-sec.com/archives/2632726.html

发表评论

匿名网友 填写信息