在做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. 3.2Python的循环结构语句:

    返回总目录 目录: 1.while循环 2.for循环 3.循环保留字:break与continue 循环总览: (一)while循环: (1)单个while循环: while 条件:     循环体 ...

  2. 阿里八八Alpha阶段Scrum(1/12)

    任务分配 叶文滔:整体框架UI设计.作为组长进行任务协调 俞鋆:后端服务器及数据库搭建 王国超:日程模块多日显示部分设计 黄梅玲:日程模块单日显示部分设计 林炜鸿:日程模块文本添加部分设计 张岳.刘晓 ...

  3. 极限编程核心价值:勇气(Courage)

    原文:https://deviq.com/courage 极限编程核心价值:简单(Simplicity) 极限编程核心价值:沟通(Communication) 极限编程核心价值:反馈(Feedback ...

  4. 【剑指offer】数值的整数次方

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mmc_maodun/article/details/25506085 转载请注明出处:http:// ...

  5. ES6标准入门之变量的解构赋值简单解说

    首先我们来看一看解构的概念,在ES6标准下,允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称作解构,简而言之粗糙的理解就是变相赋值. 解构赋值的规则是,只要等号右边的值不是对象或者数组 ...

  6. Kubernetes1.91(K8s)安装部署过程(七)--coredns安装

    为了是集群内的服务能使用dns进行服务解析,集群内需要使用dns服务器,可以按照kube官方dns,即kubedns或者其他的dns,比如coredns, 本例中按照的为coredns,按照简单,编辑 ...

  7. JCR分区(WOS或Thomson Reuters或汤姆森 路透)和中科院分区(附网址及查询方法)

    https://blog.csdn.net/Sunflower02/article/details/81187569

  8. HDU 3592 World Exhibition(线性差分约束,spfa跑最短路+判断负环)

    World Exhibition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  9. 写个定时任务更新svn

    最近学了点shell编程,寻思锻炼下写一个.平常你学习或者看别人讲,自己不练习肯定不行,基本上一动手准出错哈哈.等自己去实践,才会知道哪里有问题,哪里容易出错,哪里要注意什么的. 因为我们每个人有自己 ...

  10. odoo 之报date<form string=''product lc''> 错误

    原因是: </page> </notebook> </form> <div class="oe_chatter"> <fiel ...