zoukankan      html  css  js  c++  java
  • IDA 逆向工程 反汇编使用

    IDA pro 7.0版本

    from:freebuf

    用到的工具有IDA pro 7.0  ,被反汇编的是百度云(BaiduNetdisk_5.6.1.2.exe)。

    首先,IDA pro的长相如下:

    image.png

    共有(File , Edit , Jump , Search , View , Debugger , Options , Windows , Help)9个模块,还有下面的诸多小菜单。

    现在我们点击File,选择Open打开一个文件,这里我们选择百度云盘PC端安装程序,出现如下图示:

    image.png

    这里我们直接默认OK即可。

    此时,我们看到的视图是这样的:

    image.png

    然后我们对各个部分进行标号,单独进行介绍:

    image.png

    第一部分表示的是对不同代码块使用不同的颜色进行区分,我们可以直接点击相应的颜色块进行不同代码块的定位。

    蓝色:表示代码段。

    棕色:表示数据段。

    红色:表示内核。

    第二部分表示该程序的函数表,双击后可查看详细信息。

    image.png

    该函数对应的IDA View-A如下:

    image.png

    第三部分对应的就是整体程序或者某个函数的图标概述形式,可以大体把握功能和结构的走向。对整体的脱壳逆向有很大的帮助。

    image.png

    第四部分主要可以显示以下6部分信息:

    (1)IDA View-A

    (2)Hex View-1

    (3)Structures

    (4)Enums

    (5)Imports

    (6)Exports

    其中IDA View-A表示的就是某个函数的图标架构,可以查看程序的逻辑树形图,把程序的结构更人性化地显示出来,方便我们的分析。

    具体表示形式,上文中有截图可参考。

    在Hex View-1中可以查看16进制代码,方便定位代码后使用其他工具修改,具体表示如下图所示:

    image.png

    在Stuuctures中可以查看程序的结构体:

    image.png

    在Enums中可以查看枚举信息:

    image.png

    在Imports中可以查看到输入函数,导入表即程序中调用到的外面的函数:

    image.png

    在Exports中可以查看到输出函数:

    image.png

    以上就是IDA主面板中的各个部分的功能介绍了。

    接下来我们介绍9个菜单模块,即:

    File , Edit , Jump , Search , View , Debugger , Options , Windows , Help

    image.png

    1.File 是用来打开,新建,装载一个应用程序的,这大家都知道的。

    2.Edit 是用来编辑反汇编代码的,可以复制,筛选什么的。

    3.Jump 是用来跳转的,可以有很多种类型的跳转,比如跳转到上一个位置或者下一个位置,跳转到某个指定的地址。还可以根据名字,函数来进行跳转,跳转到一个新的窗口,跳转某一个偏移量等等,总之很多了,具体大家可以慢慢积累了。这个模块就比较重要了。

    4.Serach 是用来搜索的。

    5.View 是用来选择显示方式的,或者显示某一特定模块信息的。比如以树形逻辑图显示,或者16进制形式显示。还可以单独显示某一特定信息,比如输入或者输出表等。

    6.Debugger ,调试器被集成在IDA中,首先我们使用IDA装入文件,来生成数据库,用户可以使用反汇编功能,查看所有反汇编信息,这些均可以在调试器中进行和使用。

    image.png

    7.Options ,在这里可以进行一下常规性的设置。

    8.Windows,

    9.Help,使用IDA的一些帮助文档,检查更新等等。


    使用IDA的一个大体步骤:

    1.装入文件或程序

    2.指令断点

    3.程序运行

    4.分析堆栈

    5.添加监视

    6.进行地址分析

    7.单步跟踪

    8.找到bug

    9.使用硬件断点进行bug确认


    本期就介绍到这里了,IDA有很多高级功能,会在之后的实战文章中进行讲解。

    下一期我们将讲解《逆向动态调试之Ollydbg的使用》。

    学完汇编,IDA,Ollydug我们就可以进行简单的逆向分析了。

  • 相关阅读:
    js高程之作用域
    js继承的实现(原型/链、函数伪装)
    tween.js的API实践
    JavaScript高程第三版笔记(1-5章)
    flex布局使用方法简要汇总
    three.js中物体旋转实践之房门的打开与关闭
    遇见贵人的科学方法(通向财富自由学习笔记七)
    "活在未来" VS “活在当下”(通向财富自由学习笔记六)
    记CBS一次动人心魄的数据保卫战
    你的人生最重的枷锁是什么?(通向财富自由学习笔记五)
  • 原文地址:https://www.cnblogs.com/bonelee/p/9984874.html
Copyright © 2011-2022 走看看