C/C++汇编学习(二)——学习使用IDA pro

        学习使用IDA Pro是一项很有价值的技能,特别是对于那些对逆向工程和软件安全分析感兴趣的人。以下是一些基本步骤和概念,帮助你熟悉IDA Pro的界面和操作。

1. 熟悉IDA Pro界面和基本操作

主界面布局

 

IDA Pro的主界面包含多个组件,每个组件都有其特定用途:

菜单栏:位于窗口顶部,包含了文件操作、视图设置、插件和帮助等多个下拉菜单。

工具栏:提供了快速访问最常用功能的按钮,如保存文件、搜索、切换视图等。

输出窗口:显示IDA Pro在分析过程中生成的各种信息,如警告、错误、信息等。

子窗口

 

2. 加载执行文件并进行基本的反汇编

  • 加载文件:通过“File”菜单选择“Open”来加载你想分析的执行文件(如.EXE或.DLL文件)。
  • 初始分析:加载文件后,IDA Pro会自动进行初始分析,识别函数、字符串、导入和导出等。
  • 浏览和编辑:在反汇编窗口中,你可以看到汇编代码。你可以浏览代码,添加注释,重命名变量和函数以提高可读性。

3. 理解IDA Pro中的基本分析工具

  • 函数窗口:显示程序中所有识别的函数。双击函数名可以跳转到该函数的汇编代码。
  • 字符串窗口:显示程序中所有识别的字符串。这对于寻找程序中的文本信息非常有用。
  1. 加载文件:首先,确保你已经在IDA Pro中加载了一个可执行文件。IDA Pro会在加载过程中自动进行初步分析,包括识别字符串。

  2. 打开字符串窗口

    • 在IDA Pro的主界面,找到顶部的菜单栏。
    • 点击“View”(查看)菜单。
    • 在下拉菜单中选择“Open subviews”(打开子视图)。
    • 从展开的列表中选择“Strings”(字符串)。

  • 交叉引用(Xrefs):IDA Pro可以显示代码和数据之间的交叉引用,帮助你理解程序的流程和数据使用方式。

                在IDA Pro中,使用交叉引用(Xrefs)功能可以查看程序中某个特定项(如函数、变量或地址)被引用的所有位置。这对于分析程序结构和理解代码的流程非常有用。以下是打开交叉引用窗口的步骤:

  1. 选择一个项

    • 在IDA Pro的反汇编视图中,首先需要选择一个项目,比如一个函数名、变量或者特定的地址。确保你点击的是一个标识符(如函数名)或者地址。
  2. 打开交叉引用窗口

    • 右键单击所选项目。
    • 在弹出的上下文菜单中,选择“Jump to”(跳转到)选项,然后选择“Xref To Operand”(转到操作数引用)。
    • 另一种方式是直接使用快捷键。在大多数情况下,可以使用Ctrl + X快捷键来快速打开与所选项目相关的交叉引用。
  • 图形视图:通过流程图形式展示函数的控制流程,有助于理解程序的逻辑结构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/289526.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pytest-yaml 测试平台-4.生成allure报告,报告反馈企业微信、钉钉、飞书通知

前言 定时任务执行完成后生成可视化allure报告,并把结果发到企业微信,钉钉,飞书通知群里。 生成allure报告 添加定时任务 执行完成后生成allure报告 查看报告详情 报告会显示详细的request 和 response 详细信息 也可以查看log日志 …

Vue3-35-路由-路由守卫的简单认识

什么是路由守卫 路由守卫,就是在 路由跳转 的过程中, 可以进行一些拦截,做一些逻辑判断, 控制该路由是否可以正常跳转的函数。常用的路由守卫有三个 : beforeEach() : 前置守卫,在路由 跳转前 就会被拦截&…

kube-promethues配置钉钉告警

kube-promethues配置钉钉告警 前置:k8s部署kube-promethues 一.配置钉钉机器人 打开钉钉的智能群助手,点击添加机器人 选择自定义机器人 勾选加签,复制后保存 复制webhook地址后点击保存 二.编写dingtalk的yaml部署文件 vi dingta…

74HC595驱动数码管程序

数码管的驱动分静态扫描和动态扫描两种,使用最多的是动态扫描,优点是使用较少的MCU的IO口就能驱动较多位数的数码管。数码管动态扫描驱动电路很多,其中最常见的是74HC164驱动数码管,这种电路一般用三极管作位选信号,用…

pytest conftest通过fixture实现变量共享

conftest.py scope"module" 只对当前执行的python文件 作用 pytest.fixture(scope"module") def global_variable():my_dict {}yield my_dict test_case7.py import pytestlist1 []def test_case001(global_variable):data1 123global_variable.u…

人工智能如何重塑金融服务业

在体验优先的世界中识别金融服务业中的AI使用场景 人工智能(AI)作为主要行业的大型组织的重要业务驱动力,持续受到关注。众所周知,传统金融服务业在采用新技术方面相对滞后,一些组织使用的还是上世纪50年代和60年代发…

华为云Sys-default、Sys-WebServer和Sys-FullAccess安全组配置规则

华为云服务器默认安全组可选Sys-default、Sys-WebServer或Sys-FullAccess。default是默认安全组规则,只开放了22和3389端口;Sys-WebServer适用于Web网站开发场景,开放了80和443端口;Sys-FullAccess开放了全部端口。阿腾云atengyun…

快速搭建知识付费小程序,3分钟即可开启知识变现之旅

产品服务 线上线下课程传播 线上线下活动管理 项目撮合交易 找商机找合作 一对一线下交流 企业文化宣传 企业产品销售 更多服务 实时行业资讯 动态学习交流 分销代理推广 独立知识店铺 覆盖全行业 个人IP打造 独立小程序 私域运营解决方案 公域引流 营销转化 …

使用jieba库进行中文分词和去除停用词

jieba.lcut jieba.lcut()和jieba.lcut_for_search()是jieba库中的两个分词函数,它们的功能和参数略有不同。 jieba.lcut()方法接受三个参数:需要分词的字符串,是否使用全模式(默认为False)以及是否使用HMM模型&…

unity学习笔记----游戏练习04

一、开发阳光生产功能 向日葵的生产过程需要动画和时间 1.生产动画 选中Sunflower,然后选中窗口再选中 创建新的剪辑开始制作动画,向日葵生产动画的过程是一个从暗到亮然后持续一段时间再到暗的过程。因此只需要在对应的时间改变颜色即可。 为了保证是…

Weblogic安全漫谈(二)

前言 继本系列上篇从CVE-2015-4852入手了解T3协议的构造后,本篇继续分析开启T3反序列化魔盒后的修复与绕过。 Weblogic对于10.3.6推出了p20780171和p22248372用于修复CVE-2015-4852,在补丁详情中又提示了p21984589是它的超集,所以可以直接装…

项目框架构建之2:主机程序的搭建

本文是“项目框架构建”系列之2,要编写一个项目框架,就好像一个操作系统似的,得有一些东西可以搭载项目结构,而.net core的主机框架正是可以实现这一目的的好帮手。 简单介绍一下主机程序,我们生产系统中往往需要构建…

清风数学建模笔记-聚类算法

K-maens算法: 算法的原理: 在论文中时,可以把一些可以流程化的算法的流程图加上去 优点: 缺点: 点容易受异常值的影响,且受影响较大 k-means算法: 使用SPSS进行聚类分析: S默认使用…

【JUC】Synchronized及JVM底层原理

Synchronized使用方式 Synchronized有三种应用方式 作用于实例方法,当前示实例加锁进入同步代码前要获得当前实例的锁,即synchronized普通同步方法,调用指令将会检查方法的ACC_SYNCHRONIZED访问标志是否被设置。 如果设置了,执行…

短视频账号矩阵系统saas工具源码技术开发(源头)

一、短视频矩阵系统搭建常见问题? 二、账号矩阵如何打造?(企业号、员工号、达人号裂变) 三、无人直播解决什么问题? 一、短视频矩阵系统搭建常见问题? 1、抖去推的短视频AI矩阵营销软件需要一定的技术水…

大模型学习之书生·浦语大模型1——全链路开源体系

书生浦语大模型全链路开源体系 大模型成为热门关键词 大模型成为发展通用人工智能的重要途径,未来是使用一个模型应对多种任务,多种模态。 书生浦语大模型开源历程 InternLM-7BInternLM-20BInternLM-123B 性能达到LIama2-70B水平 从模型到应用 模型选…

【计算机网络基础】OSI与TCP/IP5层协议

一、OSI七层模型 二、TCP/IP五层协议簇 特点:同层使用相同协议,下层为上层服务 1、应用层(数据/PDU) 协议:HTTP(80)、HTTPS(443)、SSH(22)、DNS…

【计算机网络】网络层

文章目录 网络层提供的服务虚电路数据报服务虚电路与数据报服务比较 虚拟互连网络IP地址IP层次结构IP地址分类特殊地址子网掩码 子网划分变长子网划分超网合并网络规律 IP地址与MAC地址ARP协议ARP欺骗的应用 数据包数据包首部 路由ICMP协议RIP动态路由协议OSPF协议BGP协议 VPNN…

C#上位机与三菱PLC的通信01--搭建仿真环境

1、三菱PLC介绍 三菱PLC是三菱电机生产的主力产品。 它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。三菱PLC在中国…

k8s之pod

1、pod:k8s中最小的资源管理组件,最小化运行容器化应用的资源管理对象 (1)pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合 (2)一个pod中运行一个容器是最常用的方式 &#xff…