IDA Pro 在CSAPP lab2中的使用
在做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中的使用的更多相关文章
- android调试系列--使用ida pro调试so
1.工具介绍 IDA pro: 反汇编神器,可静态分析和动态调试. 模拟机或者真机:运行要调试的程序. 样本:阿里安全挑战赛第二题:http://pan.baidu.com/s/1eS9EXIM 2. ...
- 第5章 IDA Pro
5.1 加载一个可执行文件 默认情况下IDA Pro的反汇编代码中不包含PE头或资源节,可以手动指定加载. 5.2 IDA Pro接口 5.2.1 反汇编窗口模式 二进制模式/图形模式: 图形模式:红 ...
- 安卓动态调试七种武器之孔雀翎 – Ida Pro
安卓动态调试七种武器之孔雀翎 – Ida Pro 作者:蒸米@阿里聚安全 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的,人是 ...
- 计算机病毒实践汇总六:IDA Pro基础
在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索.敬请批评指正! 1. IDA使用 (1)搜索.下载并执行IDA Pro,对可执行程序lab05-01.dll进行装载,分别以图形 ...
- Ubuntu下安装IDA pro
预备 由于IDA pro只能装在32位环境下,如果是64位Ubuntu,需要运行如下命令安装32位的必备库. sudo dpkg --add-architecture i386 sudo apt-ge ...
- android调试系列--使用ida pro调试原生程序
1.工具介绍 IDA pro: 反汇编神器,可静态分析和动态调试. 模拟机或者真机:运行要调试的程序. 样本:自己编写NDK demo程序进行调试 2.前期准备 2.1 准备样本程序(假设已经配置好 ...
- IDA Pro使用技巧
DA Pro基本简介 IDA加载完程序后,3个立即可见的窗口分别为IDA-View,Named,和消息输出窗口(output Window). IDA图形视图会有执行流,Yes箭头默认为绿色,No箭头 ...
- IDA Pro使用(静态分析+动态调试)
链接:http://skysider.com/?p=458 IDA Pro使用(静态分析+动态调试) 1.静态分析 IDA FLIRT Signature Database —— 用于识别静态编译的可 ...
- ida pro 使用
交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA.是目前最棒的一个静态反编译软件,为众多0day世界的成员 ...
随机推荐
- webpack分离css单独打包
这篇文章过期了,webpack4.x已经不这么用了,最新的可以看这个地址webpack实战场景系列 原文地址:http://www.izhongxia.com/posts/44724.html CHA ...
- Alpha冲刺报告(8/12)(麻瓜制造者)
今日已完成 邓弘立: 完成了对主页UI控件的更新 符天愉: 没有完成留言模块,只是完成了留言的查询并且将留言多级回复格式化,同时和队友一起部署了商品发布的接口 江郑: 经过了这几天的编码,需求方面的数 ...
- PyQt5--QSlide
# -*- coding:utf-8 -*- ''' Created on Sep 20, 2018 @author: SaShuangYiBing Comment: ''' import sys f ...
- linux结束程序内存不会马上释放的解决方法
Linux下频繁读写文件时,内存资源被耗尽,当程序结束后,内存不会释放需要清除缓存.Linux缓存有dentry,buffer cache,page cache. 注:Dentry用来加速文件路径 ...
- C语言:值传递,地址传递和引用传递(example:值交换)
于C语言中值传递.地址传递和引用传递的我个人理解. 通过一个例子:swap(交换两个整型变量的值)来表现! #include <stdio.h> void swap1(int* a,int ...
- python openpyxl.md
Openpyxl 创建一个工作簿 下面是创建一个工作簿.而每个工作簿至少一个工作表我们可以通过active获取正在运行的工作表. In [1]: from openpyxl import Workbo ...
- Mapreduce运行过程分析(基于Hadoop2.4)——(二)
4.3 Map类 创建Map类和map函数.map函数是org.apache.hadoop.mapreduce.Mapper类中的定义的,当处理每一个键值对的时候,都要调用一次map方法,用户须 ...
- centos 7 安装jira 破解
http://blog.csdn.net/itjinglun/article/details/52240479
- Linux下MySQL安装与操作
sudo apt-get update //用于更新源,获取软件包列表 sudo apt-get upgrade //用于升级指定软件包 install //安装 remove //移除软件包 aut ...
- 开启Node.js的大门
其实也没什么好说的,简而言之,就是如何配置node.js环境,然后进行开发.博主最近比较堕落,觉得什么事情也没有就不知道想干什么,想融入一些事情又觉得没大神指引,于是自娱自乐开始自己玩node.js, ...