3.0 熟悉IDAPro静态反汇编器
IDA Pro 是一种功能强大且灵活的反汇编工具,可以在许多领域中发挥作用,例如漏洞研究、逆向工程、安全审计和软件开发等,被许多安全专家和软件开发者用于逆向工程和分析二进制代码。它支持大量的二进制文件格式和CPU架构,并提供了强大的反汇编和反编译功能。使用IDA Pro,用户可以查看和编辑汇编代码、查看函数和程序结构,并分析代码执行逻辑和漏洞。此外,IDA Pro还具有脚本编程和插件扩展功能,使用户能够轻松自定义和改进其功能。

IDA官方网站:https://hex-rays.com/
IDA的启动非常简单,只需要双击打开ida.exe即可,打开后读者可看到如下图所示的提示界面,当然读者如果需要逆向分析64位应用程序则需要打开文件内的ida64.exe即可,一般而言读者可通过New按钮来选择新建一个反汇编任务,也可以直接通过Go按钮来直接进入反汇编工具主页,当然如果读者有以前分析过的工程项目则可以通过Previous按钮快速跳转到待分析项目中;

我们以New为例,当打开后则提示读者需要选择一个被分析文件,当选择后会自动弹出如下所示的选项卡,选项卡中已经为我们识别出待分析程序的相关内容,读者只需要点击OK按钮即可打开IDA桌面环境;

当读者成功加载了被分析文件,则IDA会呈现出如下图所示的,其中最左侧的Functions列表代表的是当前IDA所分析出的内部函数,这些函数片段通常是编程者自己的一些子过程以及一些第三方API接口,桌面的右侧最大的部分则是IDA的主要工作台,其中IDA View-A代表的是当前被分析程序的反汇编代码,Hex View-1则是十六进制格式的机器码,Structures代表的是IDA所解析出来的结构体参数,Enums代表的是枚举类型的定义数据,Imports是导入表,Exports则是导出表。在IDA的最底部则是输出信息,此处的信息有IDA自身信息,也有程序调试信息等;

在桌面的最顶端是IDA的彩色水平带也叫做导航带,导航带中是被加载文件地址空间的线性视图,默认情况下它会呈现出二进制文件的整个地址范围,读者可以右击导航带内任何位置,并选择一个可用的缩放选项,放大或缩小显示的地址范围,同时导航带中会存在一个黄色的指针,当点击后会提示用户当前指针所对应的文件位置,该导航带对于代码分析可以起到很好的预览目的。

在IDA窗口中读者最需要关注的窗口则是IDA View-A反汇编窗口,在反汇编窗口中读者可根据自身需求对代码进行分析,其次IDA窗口中可实现动态绘图的功能,当读者需要对特定区域中特定函数进行绘图时只需要选中该函数的头部,并右键选择GraphView按钮,则可将当前函数绘制成图;

当绘制成流程图以后,读者可通过按下Ctrl+鼠标中键滚动以此来实现对流程图的放大和缩小,在绘图模式下读者也可以通过点击不同的分支结构从而实现跳转到不同位置处,在绘图模式下,一般而言绿色线条代表跳转为真,红色线条代表跳转为假,而蓝色线条则代表无条件跳转,另外按下空格还可实现汇编与绘图窗口的灵活切换,如下图所示;

除了简单的绘图功能外IDA还提供了F5插件,运用该插件可对特定区域反汇编代码生成C语言格式的流程代码,读者只需要选中一段内存代码片段,并按下F5即可看到如下伪代码输出格式;

针对IDA工具的使用技巧还有许多,此处仅仅只是抛砖引玉带读者入门,如果需要获取更多关于IDA工具的使用方法,还得通过不同的积累学习,本章不可能将IDA中的每一个细节都概括到;
3.0 熟悉IDAPro静态反汇编器的更多相关文章
- C++ 基于Capstone实现反汇编器
Capstone是一个反汇编框架,提供了一个简单.轻量级的API接口,可透明地处理大多数流行的指令体系,包括x86/x86-64.ARM及MIPS等.Capstone支持C/C++和Python,并且 ...
- longblogV1.0——我的静态博客发布系统
longblogV1.0——我的静态博客发布系统 环境依赖: python3-markdown 作者:IT小小龙个人主页:http://long_python.gitcafe.com/电子邮箱:lon ...
- 转: MyEclipse 10.0,9.0,8.0 下添加jadClipse反编译插件
MyEclipse 10.0,9.0,8.0 下添加jadClipse反编译插件 (2012-11-19 15:36:35) 转载▼ 标签: myeclipse jad 反编译 插件 it 分类: M ...
- 基于ARM处理器的反汇编器软件简单设计及实现
写在前面 2012年写的毕业设计,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性 ...
- vs2010下编译osip2和eXosip2的4.0.0版的静态库及搭建开发环境
转载于:http://blog.csdn.net/lbc2100/article/details/48293911 本文为参考网上的动态库的方式,进行静态库的实现,在此对动态库的作者表示感谢. 第一步 ...
- (二)SpringBoot2.0基础篇- 静态资源的访问及Thymeleaf模板引擎的使用
一.描述 在应用系统开发的过程中,不可避免的需要使用静态资源(浏览器看的懂,他可以有变量,例:HTML页面,css样式文件,文本,属性文件,图片等): 并且SpringBoot内置了Thymeleaf ...
- ASP.NET Core 1.0基础之静态文件处理
来源 这些HTML , CSS files, image files, 和JavaScript这些静态文件,是ASP.NET能够直接响应给客户端的.本文详述下ASP.NET和静态文件的关系. Serv ...
- 使用springboot 2.0后,静态资源默认路径无法访问
原因在于:META-INF/resources / resources / static / public 都是spring boot 认为静态资源应该放置的位置,会自动去寻找静态资源 然而,在2.0 ...
- ubuntu16.0.4 设置静态ip地址
由于Ubuntu重启之后,ip很容易改变,可以用以下方式固定ip地址 1.设置ip地址 vi /etc/network/interface # The loopback network interfa ...
- 【转】编译Lua5.3.0的iOS静态库
This is a tutorial on how to compile Lua 5.3.0 as an iOS static library (liblua.a) on Mac OS X 10.10 ...
随机推荐
- 【网络爬虫学习】Python 爬虫初步
本系列基于 C语言中文网的 Python爬虫教程(从入门到精通)来进行学习的, 部分转载的文章内容仅作学习使用! 前言 网络爬虫又称网络蜘蛛.网络机器人,它是一种按照一定的规则自动浏览.检索网页信息的 ...
- 一些 Codeforce Content 补题记录
Codeforces Round #651 (Div. 2) 1370A. Maximum GCD 给定一个 n,求(1~n)中任意组合对的最大的公约数. 思路:如果 \(n\) 是偶数,那么最大公约 ...
- uni-app 预览pdf文件
安卓uni-app实现pdf文件预览功能: 1.https://mozilla.github.io/pdf.js/getting_started/#download下载 放在根目录下, 2.新建一个w ...
- 《DREEAM Guiding Attention with Evidence for Improving Document-Level Relation Extraction》阅读笔记
代码 原文地址 预备知识: 1.什么是K-L散度(Kullback-Leibler Divergence)? K-L散度,是一种量化两种概率分布P和Q之间差异的方式,又叫相对熵.在概率学和统计 ...
- Laravel - 路由的多层嵌套
Route::group(['prefix'=>'admin'],function(){ Route::get('/',function(){ return view('admin.articl ...
- 【秘籍揭秘】如何高速下载游戏、Switch资源?省时省力一网打尽!
百度云盘SVIP合租啦亲爱的考研党和游戏玩家们,我今天要分享的是一份独家秘籍!你是不是常常为下载游戏或Switch资源而烦恼?是不是经常遇到下载速度慢.限速等问题,让你等待无尽?别担心,我有一个绝密的 ...
- [转帖]idea配置tomcat参数,防止nvarchar保存韩文、俄文、日文等乱码
描述下我的场景: 数据库服务器在远程机器上,数据库使用的Oracle,字符集是ZHS16GBK,但保存韩文.俄文.日文等字段A的数据类型是nvarchar(120),而nvarchar使用的是Unic ...
- [转帖]HAProxy 在 TiDB 中的最佳实践
https://docs.pingcap.com/zh/tidb/stable/haproxy-best-practices 本文介绍 HAProxy 在 TiDB 中的最佳配置和使用方法.HAPro ...
- [转帖]Export Prometheus metrics from SQL queries
https://github.com/albertodonato/query-exporter query-exporter is a Prometheus exporter which allows ...
- [转帖]Oracle JDBC中的语句缓存
老熊 Oracle性能优化 2013-09-13 在Oracle数据库中,SQL解析有几种: 硬解析,过多的硬解析在系统中产生shared pool latch和library cache liatc ...