IDA pro 7.0版本

from:freebuf

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

首先,IDA pro的长相如下:

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

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

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

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

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

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

蓝色:表示代码段。

棕色:表示数据段。

红色:表示内核。

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

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

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

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

(1)IDA View-A

(2)Hex View-1

(3)Structures

(4)Enums

(5)Imports

(6)Exports

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

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

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

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

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

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

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

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

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

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

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

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

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

4.Serach 是用来搜索的。

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

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

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

8.Windows,

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


使用IDA的一个大体步骤:

1.装入文件或程序

2.指令断点

3.程序运行

4.分析堆栈

5.添加监视

6.进行地址分析

7.单步跟踪

8.找到bug

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


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

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

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

IDA 逆向工程 反汇编使用的更多相关文章

  1. Panopticon跨平台的逆向工程反汇编工具

    http://www.freebuf.com/sectool/104045.html Panopticon 使用GPLv3授权许可,其免费. 项目文档:https://panopticon.re. 问 ...

  2. 04 复制删除行为IDA反汇编

     (很久以前的学习记录,放到博客上来)   (IDA5.0版的不知道为何反汇编进去每一行被截断的景象,惨不忍睹......明明是个正版的.只好回来用拷过来的破解版,依然有一些叽里呱啦的问题,懒得管了, ...

  3. 【逆向工具】IDA使用3-全局变量、数组、结构体

    全局变量 测试代码 全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建.全局变量是可以被本程序所有对象或函数引用.下面这段代码中将int.float.char变量定义在main函数之外. / ...

  4. 【逆向工具】IDA使用2-VS2015版本release查找main函数入口,局部变量

    VS2015版本release查找main函数入口 vc++开发的程序main或WinMain函数是语法规定的用户入口,而不是应用程序入口.入口代码是mainCRTstartup.wmainCRTSt ...

  5. IDA error of " positive sp value has been found"

    问:用IDA静态分析,函数结尾出现 endp ; sp-analysis failed 用F5调不出伪代码,不知道是什么原因,请问有什么解决办法没有? 答:endp ; sp-analysis fai ...

  6. 【转】IDA Pro7.0使用技巧总结

    俗话说,工欲善其事,必先利其器,在二进制安全的学习中,使用工具尤为重要,而IDA又是玩二进制的神器,以前在使用IDA的时候,只是用几个比较常用的功能,对于IDA的其他功能没有去研究,于是本着学习的精神 ...

  7. obdg反汇编破解crackme

    obdg是一个反汇编软件 直接将要反汇编的exe文件拖入或者file->open打开文件,等待一段时间就会显示出来 界面中分别为汇编代码(程序内存内容),寄存器内容,数据内存内容,栈内容 代码界 ...

  8. 使用IDA pro逆向ARM M系核心的Bin固件

    使用IDA pro逆向ARM M系核心的Bin固件 ​ 物联网和智能设备这两年还是比较火的,我们的手中或多或少都有了几个智能设备,比如手环,智能手表,或者门锁什么之类的东西,但是同学们在做逆向的时候, ...

  9. IDA PRO:庆祝成立创新 30 周年

    今天,IDA 已经三十岁了.为了纪念周年纪念,我们将描述史诗旅程的开始和主要里程碑. 背景 在 1990 年代初期,DOS 是最流行的 PC 操作系统,主要是 8086,偶尔有 80286(80386 ...

随机推荐

  1. 理解 Redis(6) - List 值

    list 值就是一组根据插入顺序排列的字符串, 从左向右排列, 左边为头(head), 右侧为尾(tail). 左边为顶部, 右边为底部. 下图为 list 值的示意图: 从左侧开始向键为 num 的 ...

  2. hdu 3864 D_num Pollard_rho算法和Miller_Rabin算法

    D_num Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem De ...

  3. Spring @Configuration 和 @Bean 注解

    @Configuration 和 @Bean 注解 带有 @Configuration 的注解类表示这个类可以使用 Spring IoC 容器作为 bean 定义的来源.@Bean 注解告诉 Spri ...

  4. d3 data()数据绑定中的key函数

    官网https://github.com/d3/d3-selection/blob/master/README.md#selection_data var data = [ {name: " ...

  5. Inception Network

    1. 下图为一个Inception 模块,即将输入的图像通过多种过滤器或者池化操作后,全部再给拼起来形成新的图像. 2. Inception 网络就是讲将多个Inception模块连起来而已,如下图的 ...

  6. Golang socket

    1.本例子实现了一个简单的TCP echo.客户端发送Hello,服务端回应World. 参考:<Socket编程> 2.服务端代码 package main import ( " ...

  7. maven配置环境变量失败解决办法

    配置maven路径什么的统统正确,最后测hi不成功.在网上搜索了好多资料方法都解不了 具体问题具体对待吧,如果有和我类似的小伙伴,可以尝试一下我的这个办法,在maven路径后面加/bin path变量 ...

  8. echart 圆滑初始化化

    圆滑:主题下载对应主题js引入后注入对应名称参数方可使用主题 初始化:tab点击的时候初始化图表涉及到tab切换到的需要延迟加载否则默认宽度为100px 1.创建macarons.js文件 2.页面添 ...

  9. python sshtunnel 简单介绍

    背景,公司的很多服务包括数据库访问都需要通过跳板机访问,为日常工作及使用带来了麻烦,特别数python直接操作数据更是麻烦了,所以一直想实现python 通过跳板机访问数据库的操作. 安装 pip3. ...

  10. Top 命令解析

    TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中C ...