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世界的成员 ...
随机推荐
- Symbol Table Applications
符号表应用 在计算机发展的早期,符号表帮助程序员从使用机器语言的数字地址进化到在汇编语言中使用符号名称:在现代应用程序中,符号名称的含义能够通行于跨域全球的计算机网络.快速查找算法曾经并继续在计算机领 ...
- react如何引入外部文件的整理
1 引入组件 首先就应该是安装了,安装在环境中后通过 import { Select, Button, Icon, QueueAnim } from 'antd'; 就可以把需要的组件引用进来了~ 2 ...
- $Gauss$消元
$Gauss$消元 今天金牌爷来问我一个高消的题目,我才想起来忘了学高消... 高斯消元用于解线性方程组,也就是形如: $\left\{\begin{matrix}a_{11}x_1+a_{12}x_ ...
- ES6标准入门之变量的解构赋值简单解说
首先我们来看一看解构的概念,在ES6标准下,允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称作解构,简而言之粗糙的理解就是变相赋值. 解构赋值的规则是,只要等号右边的值不是对象或者数组 ...
- curl_init 接口
<?php// +----------------------------------------------------------------------// | ThinkPHP [ WE ...
- 开源http协议库curl和wget的区别和使用
curl和wget基础功能有诸多重叠,如下载等. 在高级用途上的curl由于可自定义各种请求参数所以长于模拟web请求,用于测试网页交互(浏览器):wget由于支持ftp和Recursive所以长于下 ...
- 支持-webkit-前缀的浏览器修改滚动条样式
//血槽宽度 ::-webkit-scrollbar { width:8px; height:8px; } //拖动条 ::-webkit-scrollbar-thumb { background-c ...
- php实现远程网络文件下载到服务器指定目录(方法二)
<?php // maximum execution time in seconds set_time_limit (24 * 60 * 60); //if (!isset($_POST['su ...
- centos安装redis并设置开机启动
1.通过yum安装: yum install redis 2.设置redis.conf中daemonize为yes.设置密码: requirepass 3.安装完后的启动脚本是完善的,/etc/ini ...
- WPF listview Test Message list
UI: <Window x:Class="WoZhuLianyuanTool.SendContentsWind" xmlns="http://schemas.mic ...