在做lab2的时候,偶然的情况下,发现了IDA pro这样一个反汇编工具,总的来说对于lab2这样的小实验读懂代码的大体功能是有作用的,但对于想要具体明白某一条指令的执行过程,又显得不足,到最后还是需要逐条分析,可能自己还是功力不够,IDA pro的一些功能不会使用.....同时过度依赖IDA Pro是不利于学习反汇编,毕竟本来应该由自己分析的地方由IDA pro执行了,要明确IDA Pro只是一个工具!

百度百科对IDA pro 的介绍   https://baike.baidu.com/item/IDA%20Pro

这里我使用的版本是IDA pro 6.6 来自CSDN一位大佬的分享(淘宝买的CSDN金币,逃~),当时的安装程序依旧丢失,这里直接将程序打包压缩,发到百度网盘上。

链接:https://pan.baidu.com/s/12P-LU9TDToLrdTWFMl8QRw
提取码:i66j

解压后打开是这样的,选择idap.exe打开(可以创建一个快捷方式到桌面上),这是32位的执行程序,下面那个idap64.exe是64位执行程序,这里我们选择32的是为了使用该工具按F4键生产C类代码查看的功能。

打开idaq后,会有一些提示窗口,注意看提示,一路OK。

之后像其他编译器一样打开需要执行的文件,这里是bomb炸弹,注意这里的炸弹文件是隐藏扩展名或者扩展名是exe的文件。

之后一路选择默认选项,点击OK。

这时候进入的IDA的主界面。

这时候根据每个小窗口的名字也大概能弄懂作用了,最左侧的小窗口的作用是将该程序所用到的函数,这里有我们熟悉的mian和拆弹的各个阶段phase_1等等。

点击函数名,在IDA View-A界面下显示该部分的反汇编代码。在IDA View-A窗口下按F4键就能得到反汇编生成的C类代码了

以phase_1为例,该题很简单,甚至生成代码的时候直接将答案显示出来了。同时点击左侧的Instructions会有右侧的C++代码执行情况对应,点击右侧的C++代码也会有左侧的Instructions对应。

同时在IDA View-A窗口下可以查看某些地址或 变量所存储的内容。以phase_6为例,我们想要知道那6个结点所存储的内容,直接可以点开。

点击node1后,

注意IA-32的小端存储方式,我们能够得到其存储内容node1 = {0x6d, 0x01, 0x804c180}。

后面的题目都是按照这样的方法来查看反汇编后大致的执行过程。

这里附上一位大佬全程使用IDA Pro做lab2的博客https://blog.csdn.net/neverever01/article/details/78403412

关于IDA pro使用的博客我找到的好像都不是很好入门,像这篇https://www.52pojie.cn/thread-886103-1-1.html

希望有大佬给一篇入门级别的说明。

IDA Pro 在CSAPP lab2中的使用的更多相关文章

  1. android调试系列--使用ida pro调试so

    1.工具介绍 IDA pro: 反汇编神器,可静态分析和动态调试. 模拟机或者真机:运行要调试的程序. 样本:阿里安全挑战赛第二题:http://pan.baidu.com/s/1eS9EXIM 2. ...

  2. 第5章 IDA Pro

    5.1 加载一个可执行文件 默认情况下IDA Pro的反汇编代码中不包含PE头或资源节,可以手动指定加载. 5.2 IDA Pro接口 5.2.1 反汇编窗口模式 二进制模式/图形模式: 图形模式:红 ...

  3. 安卓动态调试七种武器之孔雀翎 – Ida Pro

    安卓动态调试七种武器之孔雀翎 – Ida Pro 作者:蒸米@阿里聚安全 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的,人是 ...

  4. 计算机病毒实践汇总六:IDA Pro基础

    在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 1. IDA使用 (1)搜索.下载并执行IDA Pro,对可执行程序lab05-01.dll进行装载,分别以图形 ...

  5. Ubuntu下安装IDA pro

    预备 由于IDA pro只能装在32位环境下,如果是64位Ubuntu,需要运行如下命令安装32位的必备库. sudo dpkg --add-architecture i386 sudo apt-ge ...

  6. android调试系列--使用ida pro调试原生程序

    1.工具介绍 IDA pro: 反汇编神器,可静态分析和动态调试. 模拟机或者真机:运行要调试的程序. 样本:自己编写NDK demo程序进行调试 2.前期准备 2.1  准备样本程序(假设已经配置好 ...

  7. IDA Pro使用技巧

    DA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window). IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头 ...

  8. IDA Pro使用(静态分析+动态调试)

    链接:http://skysider.com/?p=458 IDA Pro使用(静态分析+动态调试) 1.静态分析 IDA FLIRT Signature Database —— 用于识别静态编译的可 ...

  9. ida pro 使用

    交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA.是目前最棒的一个静态反编译软件,为众多0day世界的成员 ...

随机推荐

  1. October 27th, 2017 Week 43rd Friday

    The only thing predictable about life is its unpredictability. 人生唯一可以预知的,就是它的变化莫测. Is it really unpr ...

  2. Python在Win10系统的安装和使用配置

    Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言等等. 下载 ...

  3. Opatching PSU in Oracle Database 11g Release 2 RAC on RHEL6

    Opatching PSU in Oracle Database 11g Release 2(11.2.0.4) RAC on RHEL6 1) 升级opatch工具 1.1) For GI home ...

  4. Android MaterialDesign之水波点击效果的几种实现方法

    什么是水波点击的效果? 下面是几种不同的实现方法的效果图以及实现方法   Video_2016-08-31_003846 如何实现? 方法一 使用官方提供的RippleDrawable类 优点:使用方 ...

  5. java 计算百分数方法

    俗话说好记性不如烂笔头,故记之. DecimalFormat decimalFormat = new DecimalFormat("##.00%"); System.out.pri ...

  6. 【华为机试】找最高分(通过此题熟悉牛客网Node输入输出)

    来源:牛客网 老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问.当然,老师有时候需要更新某位同学的成绩. 输入描述: 输入包括多组测试数据.每组输入第一行是两个正整数N和M(0 ...

  7. php初进一个项目组,使用几个函数帮忙熟悉流程

    初进一个项目组的时候,可能对他的框架啊神马不熟悉的.有时候类里又有各种魔术方法的使用,IDE还跳转不过去对象的方法.这时候很多php内置函数就可以帮上些忙了. 1. instanceof 2. get ...

  8. 【本地服务器】用nginx进行反向代理处理(windows)

    在通过json-server搭建本地服务器得到 http://localhost:3000/todos   的基础上,要想将接口改为www.test.com/todos这样的形式 ,则需要用nginx ...

  9. MAC下配置ssh让SourceTree通过秘钥访问远程仓库

    问题描述 由于TortoiseGit没有MAC版本,我们使用了SourceTree来替代. 在帮同事解决Mac下的Git的时候,碰到一个问题:SourceTree无法使用ssh方式提交代码,这是由于没 ...

  10. Luogu P3227 [HNOI2013]切糕

    %%ZZKdalao上课讲的题目,才知道网络流的这种玄学建模 我们先想一想,如果没有D的限制,那么想当于再每一根纵轴上选一个权值最小的点再加起来 我们对应在网络流上就是每一根纵轴上的点向它下方的点用权 ...