IDA Pro 权威指南学习笔记(八) - 基本 IDA 导航
导航目标
在分析阶段,IDA 会通过检查二进制文件的符号表生成符号名称,或根据二进制文件引用位置的方式自动生成一个名称
反汇编窗口中显示的任何名称都是导航目标
双击任何一个符号,IDA 将跳转到相应的位置

这些是已经命名的导航目标

上面划红线的是交叉引用,也是导航目标
交叉引用通常被格式化成一个名称和一个十六进制偏移值
双击交叉引用文本,IDA 将跳转到引用位置

双击标有 1 的值,反汇编窗口将跳转到相应的位置,因为它们都属于给定二进制文件中的合法虚拟地址
双击标有 2 的值则不会有任何效果
跳转地址
如果反汇编窗口中没有可供双击导航的名称,可以使用反汇编窗口滚动条上下滚动窗口来找想要访问的地址
如果仅仅知道一个已命名的位置,如一个名为 foobar 的子程序,可以选择对函数窗口按字母排序,滚动到想要的名称,然后再双击该名称
也可以使用 IDA 的 Search 菜单的搜索功能
跳转到一个已知的反汇编位置,可以用 Jump 菜单下的 Jump to Address 选项,快捷键为 G

导航历史记录
IDA 具有前进和后退导航功能,基于浏览反汇编窗口的顺序
每次导航到反汇编窗口中的一个新位置,当前的位置就会添加到位置列表中
Jump -> Jump to Previous Position 命令使反汇编窗口跳转到当前位置的前一个位置,快捷键为 Esc
在反汇编窗口以外的其他窗口中,使用 ESC 键会关闭当前窗口,可以使用 View -> Open Subviews 命令重新打开关闭的窗口
Jump -> Jump to Next Position 命令将反汇编窗口移动到列表中的下一个位置,快捷键为 Ctrl+Enter
工具栏上有前进和后退按钮,每个按钮旁边还有一个历史记录下拉列表

IDA Pro 权威指南学习笔记(八) - 基本 IDA 导航的更多相关文章
- IDA Pro 权威指南学习笔记(七) - 其他 IDA 显示窗口
默认情况下 IDA 不会打开这些窗口,可通过 View -> Open Subviews 命令打开 Strings 窗口(Strings) Strings 窗口中显示的是从二进制文件中提取出的一 ...
- IDA Pro 权威指南学习笔记(十二) - IDA 中的注释
注释有助于以一种更高级的方式描述汇编语言指令序列 IDA 提供了几种不同类型的注释,每种注释适用于不同的目的 使用 Edit -> Comments 命令的选项,可以为反汇编代码清单中的任何一行 ...
- IDA Pro 权威指南学习笔记(一) - 启动 IDA
启动 IDA 启动 IDA,有一个欢迎界面 之后有一个对话框 选择 New 将启动一个对话框来选择将要分析的文件 选择 Go 将使 IDA 打开一个空白的工作区 如果要选择分析的文件,可以直接拖到 I ...
- IDA Pro权威指南学习笔记(一)
一直不懂逆向,最近刚好不忙,于是学习逆向,用来做笔记,顺便和大家分享交流. 参考书籍<IAD PRO权威指南> 工具: PETools: ETools 是另一款很好的PE文件编辑工具,以前 ...
- IDA Pro 权威指南学习笔记(十四) - 操纵函数
IDA 无法定位一个函数调用,由于没有直接的方法到达函数,IDA 将无法识别它们 IDA 可能无法正确确定函数的结束部分,需要手动干预,以更正反汇编代码中的错误 如果编译器已经将函数分割到几个地址范围 ...
- IDA Pro 权威指南学习笔记(五) - IDA 主要的数据显示窗口
在默认配置下,IDA(从 6.1 版开始)会在对新二进制文件的初始加载和分析阶段创建 7 个显示窗口 3 个立即可见的窗口分别为 IDA-View 窗口.函数窗口和消息输出窗口 可以通过 View - ...
- IDA Pro 权威指南学习笔记(十三) - 基本代码转换
IDA提供的代码转换包括: 1.将数据转换为代码 2.将代码转换为数据 3.指定一个指令序列为函数 4.更改现有函数的起始或结束地址 5.更改指令操作数的显示格式 代码显示选项 通过 Options ...
- IDA Pro 权威指南学习笔记(十一) - 名称与命名
多数情况下,要修改一个名称,只需单击想要修改的名称(使其突出显示),并使用快捷键 N 打开更名对话框 右击需要修改的名称,并在出现的上下文菜单中选择 Rename 选项,也可以更改名称 参数和局部变量 ...
- IDA Pro 权威指南学习笔记(九) - 数据搜索
Search -> Next Code 命令将光标移动到下一个包含指令的位置 Jump -> Jump to Function 命令可以打开所有函数,可以迅速选择一个函数并导航到该函数所在 ...
随机推荐
- Java中级面试题——(上)
List和Set比较,各自的子类比较 对比一:Arraylist与LinkedList的比较 1.ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高 ...
- 文本数据预处理:sklearn 中 CountVectorizer、TfidfTransformer 和 TfidfVectorizer
文本数据预处理的第一步通常是进行分词,分词后会进行向量化的操作.在介绍向量化之前,我们先来了解下词袋模型. 1.词袋模型(Bag of words,简称 BoW ) 词袋模型假设我们不考虑文本中词与词 ...
- How to input the newline in Numbers of Mac?
newline control+enter
- AngularX 路由总结
路由是 Angular 应用程序的核心,它加载与所请求路由相关联的组件,以及获取特定路由的相关数据.这允许我们通过控制不同的路由,获取不同的数据,从而渲染不同的页面. Installing the r ...
- kmp学习小结
KMP 简要说明 \(kmp\)是一个非常神奇的东西.它的\(fail(next)\)数组\(f[i]\)就表示\(1\)~\(i\)这个串的最长公共前缀后缀长度.根据这个\(fail\)数组,在匹配 ...
- BZOJ2687 交与并/BZOJ2369 区间【决策单调性优化DP】【分治】
Description 对于一个区间集合 {A1,A2--Ak}(K>1,Ai不等于Aj(i不等于J),定义其权值 S=|A1∪A2∪--AK|*|A1∩A2--∩Ak| 即它们的交区间的长度乘 ...
- (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
if (this == null) Console.WriteLine("this is null"); 这句话一写,大家一定觉得荒谬,然而 if 内代码的执行却是可能的!本文讲介 ...
- 让一个 csproj 项目指定多个开发框架
可移植类库.共享项目..NET Standard 项目都能够帮我们完成跨多个 .NET SDK 的单一项目开发,但它们的跨 SDK 开发都有些限制.现在,我们又有新的方式能够跨多个 .NET SDK ...
- WinForm窗体继承自定义的模板窗体出错
在开发Winform程序的时候,我们往往需要根据需要做一些自定义的控件模块,这样可以给系统模块重复利用,或者实现更好的效果等功能.而今天自定义一个窗体,然后子窗体继承的时候出现了一点问题. 问题: 在 ...
- luvit 被忽视的lua 高性能框架(仿nodejs)
备注: luvit 开放模式和nodejs 一样,但是因为生态以及小众语言的问题,使用的人比较少,但是从目前 来看更新速度还是比较快的,但是从现有lua 开发框架来说一般倾向于使 ...