首页 > 其他分享 >RE入门第一天---IDA的使用

RE入门第一天---IDA的使用

时间:2024-08-23 09:49:45浏览次数:5  
标签:窗口 函数 代码 --- RE 按下 双击 IDA

一.什么是IDA以及安装

​ IDA全称是交互式反汇编器专业版(Interactive Disassembler Professional),人们其简称为IDA,是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器。IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。

官网安装就完了

IDA Free (hex-rays.com)

img

二.32/64位IDA识别

img

(现在的最新版好像不用识别了,都能打开)

三.常见窗口img

第一个窗口Functions(函数窗口)

ctrl+f可以搜索函数

双击可以显示该函数内容

第二个窗口IDA View-A

有两种模式,

图形模式

img

按下空格键到

文本模式

(线性展示反汇编)

img

G键是地址导航

img

第三个窗口Pseudocode窗口

Tab键切换到伪代码窗口

第四个窗口String窗口

shift+F12到达String窗口
ctrl+F键搜索字符串

img

其他窗口

img

img

四.例题实操

双击打开得到

img

输入之后窗口就关闭了

--->终端打开解决这个情况

./T1.exe

img

随便输入显示错误

ida打开看看怎么回事

一进去没有函数窗口

Shift+F3打开函数窗口

img

搜索主函数main

img

双击主函数进去看看

img

得到flag

flag{YOU_FIND_IT}

img

img

五.提高

N键修改函数信息

img

问题:伪代码双击之后怎样返回伪代码那个窗口

按下Esc返回伪代码窗口

sub_地址可以在函数表中找到

标识符代表了地址,地址中存储了字符串

img

按下U键取消连续定义,得到内存实际样子
按下A键返回连续定义

img

ctrl+X 交叉引用

展示字符串在这个exe被引用的代码

点击OK即可跳转

标签:窗口,函数,代码,---,RE,按下,双击,IDA
From: https://www.cnblogs.com/yanxiao777/p/18375303

相关文章

  • P[ostgreSQL16在Windows下安装
    1.官网下载安装包并安装2.安装时遇到问题Problemrunningpost-installstep.Installationmaynotcompletecorrectlty.Thedatabaseclusterinitialisationfailed.解决方法:安装完成后管理员启动cmd,cd到pg的bin目录输入D:\PostgreSQL\bin>initdb.exe-DD:\database......
  • devexpress gridview master,detail视图 focuseRowHandle 同步选中
    gridview1是主视图,gridview2是其子视图gridview1中的多行就对应了多个gridview2实例,那么通时展开多个gridview1中的多个行,并且在这些展开的行中点不同gridview2的行时,gridview1的焦点行是不会自动切换的的需要做如下处理(这里还包括了了gridview2中的checkboxedit)......
  • python-jose 实现fastapi登录验证
    JWT和Session的区别:JWT:JWT是一种无状态的认证机制。由于JWT令牌包含了用户的身份信息以及相关的元数据,服务端不需要存储任何用户状态信息,只需要验证JWT令牌的真实性和有效性即可。这使得JWT非常适合于构建无状态的分布式系统,因为JWT令牌可以在不同的服务之间轻松共享。Sessio......
  • 拖拽神器:Pragmatic-drag-and-drop!
    前言在前端开发中,拖拽功能是一种常见的交互方式,它能够极大提升用户体验。今天,我们要介绍的是一个开源的前端拖拽组件—pragmatic-drag-and-drop,它以其轻量级、高性能和强大的兼容性,成为了前端开发者的新宠。什么是pragmatic-drag-and-drop?pragmatic-drag-and-drop是由A......
  • re基础
    网络基础1.网络协议OSI七层模型应用层提供应用程序间通信7表示层处理数据格式,数据加密等6会话层建立,维护和管理会话5传输层建议主机端到端连接4网络层寻址和路由选择3数据链路层提供介质访问,链路管理等2物理层比特流传输1TCP/IP协......
  • 在Spring Boot项目中集成Geth(Go Ethereum)
    在SpringBoot项目中集成Geth(GoEthereum)客户端,通常是为了与以太坊区块链进行交互。以下是一些基本的步骤和考虑因素,帮助你在SpringBoot应用程序中集成Geth。安装Geth首先,你需要在你的机器上安装Geth。你可以从官方网站下载适合你操作系统的版本。启动Geth安装完成后......
  • 高效缓存策略——.NET Core 中基于 Redis 的分布式缓存实现
    引言在构建高性能的应用程序时,缓存是不可或缺的技术之一。通过缓存,我们能够显著减少数据库的压力、提升应用的响应速度。而在分布式系统中,分布式缓存则成为了处理高并发和大数据量的理想选择。本文将以Redis为例,介绍如何在.NETCore中实现分布式缓存,帮助开发者打造高效......
  • 博客园-awescnb插件-geek皮肤优化--公众号卡片
    简介博客园-awescnb插件-geek皮肤暂不支持配置展示公众号二维码,此文章目的使用手动注入方式自定义实现公众号卡片效果效果展示公众号卡片动态效果鼠标移入前为公众号指引页鼠标移入后显示公众号二维码切换动画为动态反转首页展示实现在博客日历元素blog-......
  • 干货-并发编程提高——线程池(十二)
    提到线程池就不得不说池化技术,那么什么是池化技术呢?池化技术能够减少资源对象的创建次数,提高程序的性能。特别是高并发下这种提高更加明显。使用池化技术缓存的资源有如下特点:对象的创建时间长对象创建需要大量资源对象创建后可被重复使用有没有点儿像共享单车?一个资......
  • Java学习笔记8-数据类型
    Java中主要有八种基本数据类型:byte、short、int、long、float、double、boolean、char。各种数据类型作用:1、byte:8位、有符号的以二进制补码表示的整数。min:-128(-2^7)。max:127(2^7-1)。default:0。对应包装类:Byte。2、short:16位、有符号的以二进制补码表示的整......