IDA Pro 权威指南阅读摘要1

文件加载
使用File->Open命令打开一个新文件时,会看到加载对话框。
Binary File (二进制文件)是加载类型列表的最后一个选项,它是IDA加载无法识别的文件的默认选项。
在Processor Type下拉菜单中可以指定在反汇编过程中使用的处理器模块(在IDA的procs目录中)。
多数情况下,IDA将根据它从可执行文件的头中读取到的信息,选择合适的处理器。
如果同时选择了二进制文件输入格式和一种x86系列处理器,Loading Segment(加载段)和Loading Offset(加载偏移量)字段将处于活动状态。

使用二进制文件加载器
如果选择使用二进制加载器,没有文件头信息引导分析过程。
需要使用二进制加载器的情形包括:分析从网络数据包或日志文件中提取出来的ROM镜像和破解程序负载。
如果选择一个x86类型的处理器,则必须在加载对话框的Loading Segment和Loading Offset字段中指定基址信息。
IDA会提醒用户指定文件中的一个地址作为入口点。

基本IDA导航
IDA将生成并显示一个完整的交叉引用列表。多数情况下,到导航到感兴趣的位置,只需双击鼠标。
反汇编程序时,程序的每个位置都分配到了一个虚拟地址。只要提供希望访问的位置的虚拟地址,就可以导航到程序的任何地方,但是大量地址不容易记住。早期的程序员给他们希望引用的程序位置分配符号名称。
在分析阶段,IDA会通过检查二进制文件的符号表生成符号名称,或根据二进制文件引用位置的方式自动生成一个名称。
在各种子窗口中,双击一个名称,IDA将跳转到反汇编窗口中被引用的位置。

快速库识别和鉴定技术
库快速识别和鉴定技术,简称FLIRT,IDA用于识别库代码的一组技术。核心是各种模式匹配算法。

跳转表与分支语句
C语言的switch语句经常成为编译器优化的目标。

========

在Windows上安装IDA时,IDA会创建注册表项 HKEY_CURRENT_USER\Software\Hex-Rays\IDA。

Load new file 对话框
    如果同时选择了二进制文件输入格式和一种x86系列处理器,Loading Segment(加载段)和Loading Offset(加载偏移量)字段将处于活动状态。
    在最初的加载过程中,如果忘记指定基址,可以在任何时候使用Edit-Segments-Rebase Program命令来修改IDA镜像的基址。
    Kernel Options(核心选项)按钮用于配置特定的反汇编分析选项,IDA可利用这些选项改进递归下降过程。

IDA 数据库文件
    将选定的可执行文件加载到内存中,随后,IDA会创建一个数据库,其组件分别保存在4个文件中,这些文件的名称与选定的可执行文件的名称相同,扩展名分别为.id0、.id1、.nam和.til。.id0是一个二叉树形式的数据库,.id1文件包含描述每个程序字节的标记。.nam文件包含与IDA的Names窗口中显示的给定程序位置有关的索引信息。.til文件用于存储与一个给定数据库的本地类型定义有关的信息。

函数窗口
    用于列举在数据库中识别的每一个函数。一个条目如下:
malloc        .text        00BDC260 00000180 R...B..
    此条目解释如下:
    可以在二进制文件中虚拟地址为00BDC260的.text部分找到malloc函数;
    该函数长384字节,十六进制为180字节;
    它返回调用方R,并使用EBP寄存器B引用它的局部变量;
    
结构体窗口
    结构体窗口用于显示IDA决定在一个二进制文件中使用的任何复杂的数据结构(如C结构体和联合)的布局。
    在分析阶段,IDA会查询它的函数类型签名扩展库,设法将函数的参数类型与程序使用的内存匹配起来。

IDA Pro 权威指南阅读摘要1相关推荐

  1. 《HTTP权威指南》摘要

    目录 前言 第一章 HTTP 概述 第二章 URL 与资源 第三章 HTTP 报文 报文流 状态码 100~199:信息提示 200~299:成功 300~399:重定向 400~499:客户端错误 ...

  2. MyCat权威指南阅读笔记(基础篇)

    1.1何为数据切分? 简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主 机)上面,以达到分散单台设备负载的效果. 数据的切分(Sharding)根据其切分规 ...

  3. Postfix权威指南-阅读笔记-架设和维护邮箱服务器

    PostFix权威指南 目录 文章目录 适用人群 前言 1. 简介 Internet E-mail传递流程 2.基础概念 在线说明书 模拟SMTP对话 常见响应状态码 4.基本的配置与管理 默认安装目 ...

  4. HTTP权威指南阅读笔记五:Web服务器

    Web服务器会做些什么: 1.建产连接:接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭. 1)处理新连接 2)客户端主机名识别 3)通过ident确定客户端用户 ident在组织内 ...

  5. Hadoop权威指南阅读笔记

    2019独角兽企业重金招聘Python工程师标准>>> 1.MR和关系型数据 MR和传统的关系型数据库处理的数据是不同,传统关系型数据库处理的是较结构化数据,对于半结构化和非机构话数 ...

  6. HTTP权威指南阅读笔记一:HTTP概述

    HTTP协议版本: 1.HTTP/0.9:HTTP的1991原型版本称为HTTP/0.9.这个协议有很多严重的缺陷,只应该用与与老客户端的交互.HTTP/0.9只支持GET方法,不支持多媒体内容的MI ...

  7. Tomcat权威指南-读书摘要系列6

    6. Tomcat 安全防护 使用SecurityManager 在Tomcat中,决定安全策略的配置文件是$CATALINA_HOME/conf/catalina.policy,在用-securit ...

  8. JS权威指南阅读笔记

    2019独角兽企业重金招聘Python工程师标准>>> 词法结构 unicode以\u为前缀,其后跟随4个十六进制数 标识符必须以字母.下划线或$开始,后续字符可以是字母.数字.下划 ...

  9. MSIL权威指南阅读 - CLR基础

    CLR运行库. CLR是供.NET应用程序使用的运行时环境.在.NET应用程序和底层操作系统之间提供操作层. CLR指定规则保证.NET应用程序的互操作性,别成为公共语言规范CLS,CLI. CLS( ...

最新文章

  1. SQL进阶随笔--case用法(一)
  2. 斯坦福iOS7公开课4-6笔记及演示Demo
  3. Git完整入门教程(从0开始)
  4. nginx安装配置http、tcp代理
  5. Nginx全局块的工作进程的两个指令
  6. asp.net 应用数据缓存 -- Cache对象使用
  7. 如何用 Linq 进行多重 Orderby ?
  8. 一个问题让我直接闭门思过!!!拼多多面试必问项之List实现类:LinkedList
  9. VB与Java颜色值的转换
  10. 【AI视野·今日CV 计算机视觉论文速览 第198期】Fri, 14 May 2021
  11. php phonegap,PHP数据是无休止的加载,jquery,phonegap
  12. SaxReader解析xml文件--绕过多层for循环
  13. 国内外实行HACCP情况(转载)
  14. Linux设置自动关机
  15. 递归算法的时间复杂度计算
  16. jquery管理数据
  17. 计算机网络之网络应用--DNS应用
  18. 单片机学习和应用百问大全
  19. C4D R19 图文安装教程
  20. ios/swift之尺寸和机型判断

热门文章

  1. 多线程高并发 底层锁机制与优化的最佳实践——各种锁的分类 || synchronized 关键字 倒底锁的是什么东西?|| CAS与ABA问题||锁优化||轻量级锁一定比重量级锁的性能高吗
  2. 什么是Vue.js?||为什么要学习流行框架||框架和库的区别?||MVC和MVVM的关系图解
  3. Python 技术篇-利用pdfkit库实现html格式文件转换PDF文档实例演示
  4. MySql提示服务已经启动成功但又提示can’t connect to MySQL server解决方法,mysql服务自动停止处理方法
  5. GRPC java实现demo
  6. stm32换芯片编译
  7. ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 A题 Visiting Peking University
  8. [YTU]_2619 (B 友元类-计算两点间距离)
  9. 10.1 分别通过函数和重载运算符来实现复数相加
  10. Maximum Depth of Binary Tree