IDA-逆向分析-工具教程-IDA简介-反汇编工具-功能窗口

这篇具有很好参考价值的文章主要介绍了IDA-逆向分析-工具教程-IDA简介-反汇编工具-功能窗口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.IDA简介

介绍了IDA反汇编原理分为,线性扫描反汇编和递归下降反汇编。比较了两者的优点和缺点。线性扫描反汇编算法采用一种非常简单的方法来确定需要反汇编的指令的位置:一条指令结束、另一条指令开始的地方。因此,确定起始位置最为困难。常用的解决办法是,假设程序中标注为代码(通常由程序文件的头部指定)的节所包含的全部是机器语言指令。反汇编从一个代码段的第一个字节开始,以线性模式扫描整个代码段,逐条反汇编每条指令,直到完成整个代码段。线性扫描算法的主要优点,在于它能够完全覆盖程序的所有代码段。线性扫描方法的一个主要缺点,是它没有考虑到代码中可能混有数据。
递归下降采用另外一种不同的方法来定位指令。递归下降算法强调控制流的概念。控制流根据一条指令是否被另一条指令引用来决定是否对其进行反汇编。递归下降算法的一个主要优点在于,它具有区分代码与数据的强大能力。作为一种基于控制流的算法,它很少会在反汇编过程中错误地将数据值作为代码处理。递归下降算法的主要缺点在于,它无法处理间接代码路径,如利用指针表来查找目标地址的跳转或调用。然而,通过采用一些用于识别指向代码的指针的启发(heuristics)式方法,递归下降反汇编器能够提供所有代码,并清楚地区分代码与数据。代码与数据在内存空间没有明确的区分,载入的二进制文件,在没有充分信息的情况下,反汇编有可能出错,这时需要手动指定代码起始位置。

2.逆向与反汇编工具

2.1.文件识别工具

file 命令是一个标准的实用工具,大多数*NIX 风格的操作系统和Windows 下的Cygwin①或MinGw②工具都带有这个实用工具。file 试图通过检查文件中的某些特定字段来确认文件的类型。file 能够识别大量的文件格式,包括数种ASCII 文本文件、各种可执行文件和数据文件。file
执行的幻数检查由幻数文件(magic file)所包含的规则控制。

2.2.PE Tools

PE Tools①是一组用于分析Windows 系统中正在运行的进程和可执行文件的工具。在进程列表中,用户可以将一个进程的内存映像转储到某个文件中,也可以使用PE Sniffer实用工具确定可执行文件由何种编译器构建,或者该文件是否经过某种已知的模糊实用工具的模糊处理。

2.3.PEiD

PEiD①是另一款Windows 工具,它主要用于识别构建某一特定Windows PE 二进制文件所使用的编译器,并确定任何用于模糊Windows PE 二进制文件的工具。

3.IDA 窗口

3.1.二进制加载器

如果选择使用二进制加载器,需要比平常做更多的工作。由于没有文件头信息引导分析过程,你必须手动执行通常由更加强大的加载器自动完成的任务。需要使用二进制加载器的情形包括:分析从网络数据包或日志文件中提取出来的ROM镜像和破解程序负载。

3.2.创建数据库

值得注意的是,一旦IDA 为某个可执行文件创建数据库,它就不再需要访问这个可执行文件,除非你希望使用IDA 的集成调试器调试这个可执行文件本身。从安全角度看,这是一项有用的功能。

3.3.反汇编窗口

反汇编窗口也叫IDA-View窗口,它是操作和分析二进制文件的主要工具。分文文本窗口和图形窗口,图形窗口将汇编代码按模块进行分块显示。IDA使用不同的彩色箭头区分函数块之间各种类型的流。根据测试条件,在条件跳转位置终止的基本块可能会生成两种流:Yes边的箭头(是的,执行分支)默认为绿色,No边的箭头(不,不执行分支)默认为红色。只有一个后继块的基本块会利用一个正常边(默认为蓝色)指向下一个即将执行的块。平移。首先,除了使用“图形概况”窗口迅速定位图形外,你还可以通过单击和拖动图形视图的背景来定位图形。分组和折叠块。最后,你可以对块分组,每个块单独分组,或者与其他块一起分组;并可将分组后的块折叠起来,以减少显示的混乱程度。折叠块特别有用,可以帮助你追踪已经分析过的块。要折叠块,可以右击块的标题栏,然后在出现的菜单上选择“Group Nodes”。通常,虚拟地址以[区域名称]:[虚拟地址]这种格式显示,如.text:004011C1。

3.4.函数窗口

这一行信息特别指出:用户可以在二进制文件中虚拟地址为00BDC260的.text部分找到malloc函数;该函数长为384字节(十六进制为180字节),它返回调用方(R),并使用EBP寄存器(B)引用它的局部变量。

3.5.输出窗口

输出窗口是显示你为IDA开发的任何脚本和插件的输出的主要窗口。

3.6.十六进制窗口

可以与反汇编代码窗口同步显示。如下图所示:
IDA-逆向分析-工具教程-IDA简介-反汇编工具-功能窗口

3.7.导出窗口

如果是exe文件,就只有一个入口函数,如果是dll文件,就有许多导出函数供其它模块调用。
IDA-逆向分析-工具教程-IDA简介-反汇编工具-功能窗口

3.8.导入窗口

导入窗口的功能与导出窗口的功能正好相反。它列出由被分析的二进制文件导入的所有函数。只有在二进制文件使用共享库时,IDA才需要用到导入窗口。静态链接的二进制文件不存在外部依赖关系,因此不需要导入其他内容。导入窗口中的每个条目列出一个导入项目(函数或数据)的名称,以及包含该项目的库的名称。由于被导入的函数的代码位于共享库中,窗口中每个条目列出的地址为相关导入表条目的虚拟地址。

3.9.结构体窗口

结构体窗口用于显示IDA决定在一个二进制文件中使用的任何复杂的数据结构(如C结构体和联合)的布局。在分析阶段,IDA会查询它的函数类型签名扩展库,设法将函数的参数类型与程序使用的内存匹配起来。

3.10.枚举窗口

枚举窗口有点类似于结构体窗口。如果IDA检测到标准枚举数据类型(C enum),它将在枚举窗口中列出该数据类型。你可以使用枚举来代替整数常量,提高反汇编代码的可读性。

3.11.Strings 窗口

Strings窗口中显示的是从二进制文件中提取出的一组字符串,以及每个字符串所在的地址。与双击Names窗口中的名称得到的结果类似,双击Strings窗口中的任何字符串,反汇编窗口将跳转到该字符串所在的地址。

3.12.Names 窗口

名称是指对一个程序虚拟地址的符号描述。在最初加载文件的过程中,IDA会根据符号表和签名分析派生出名称列表。名称可以按字母排序,也可以按虚拟地址排序(升序或降序)。用户可通过Names窗口迅速导航到程序列表中的已知位置。双击Names窗口中的名称,可立即跳转到显示该名称的反汇编视图。

3.13.段窗口

段窗口显示的是在二进制文件中出现的段的简要列表。需要注意的在,在讨论二进制文件的结构时,IDA术语段(segment)常称为节(section)。请不要将这里的术语段与实施分段内存体系结构的CPU中的内存段混淆。该窗口中显示的信息包括段名称、起始和结束地址以及许可标志。

3.14.签名窗口

IDA利用一个庞大的签名库来识别已知的代码块。签名用于识别由编译器生成的常用启动顺序,以确定可能已被用来构建给定二进制文件的编译器。签名还可用于将函数划归为由编译器插入的已知库函数,或者因为静态链接而添加到二进制文件中的函数。

3.15.类型库窗口

类型库窗口在概念上与签名窗口类似。类型库保存IDA积累的一些信息,即IDA从最常用的编译器的头文件中搜集到的有关预定义数据类型和函数原型的信息。通过处理头文件,IDA可确定常用库函数所需的数据类型,并为反汇编代码提供相应的注释。同样,IDA还可从这些头文件中了解复杂数据结构的大小和布局。所有这些信息都收集在TIL文件(<IDADIR/til目录>)中,并可在任何时候应用于你分析的二进制文件。

3.16.函数调用窗口

在任何程序中,一个函数可以调用其他函数,也可以被其他函数调用。实际上,建立一个图形来说明调用方与被调用方之间的关系,是一个相当简单的任务。这样的图形叫做函数调用图形或函数调用树(我们将在第9章介绍如何在IDA中生成这类图形)。有时候,我们并不需要查看程序的完整调用图形,而只对指定函数的“近邻”感兴趣。如果Y直接调用X,或者X直接调用Y,则称Y是X的近邻。

4.作者答疑

− − − − − − − − 插 ∗ 件 ∗ 开 ∗ 发 − − − − − − − − p h 99 o n e = 1 8 9 2 8 8 9 9 7 2 8 W e i 88 X i n = 1 8 9 2 8 8 9 9 7 2 8 Q 99 Q = 3 1 2 1 1 7 2 7 1 --------插*件*开*发--------\\ ph99one= \begin{matrix} 1 & 8 &9 & 2 &8 & 8 &9 & 9 &7 & 2 &8 \end{matrix}\\ Wei88Xin= \begin{matrix} 1 & 8 &9 & 2 &8 & 8 &9 & 9 &7 & 2 &8 \end{matrix}\\ Q99Q= \begin{matrix} 3 & 1 &2 & 1 &1 & 7 &2 & 7 &1 \end{matrix} ph99one=18928899728Wei88Xin=18928899728Q99Q=312117271文章来源地址https://www.toymoban.com/news/detail-497898.html

到了这里,关于IDA-逆向分析-工具教程-IDA简介-反汇编工具-功能窗口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用IDA查看汇编代码,结合安卓系统生成的Tombstone文件,分析安卓app程序崩溃问题

    目录 1、IDA工具介绍 2、产品及问题场景描述 3、查看Tombstone文件

    2024年02月13日
    浏览(32)
  • 安天逆向教程——常用汇编语句

          反汇编时更多关注这些条件分支。如果看懂这些条件分支,会对程序的大体逻辑有一个整体的了解。 至于程序里面的细节,有时会省略掉。往往关键的跳转理解了甚至进行一点点的改动,就会使得程序发生翻天覆地的变化。    

    2024年02月16日
    浏览(22)
  • 【iOS逆向与安全】越狱检测与过检测附ida伪代码

    首先在网上查找一些检测代码 放入项目运行,用 ida 打开后 F5 得到下面的 用 frida hook hook stat hook md5 frida-trace -UF -i \\\"CC_MD5\\\" -f xxxxxxx.xxx.xxxx fishhook 下面是网上找的源码

    2024年02月03日
    浏览(24)
  • 【Android 逆向】ApkTool 工具使用 ( ApkTool 简介 | ApkTool 解包和打包 )

    之前写的 ApkTool 相关博客 : 【Android 安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx ) 【Android 逆向】Android 逆向工具 ( Apktool | IDA | Python ) 【Android 逆向】APK 文件处理脚本 ApkTool.py ( 脚本简介 | 用法 | 分析 APK 文件 ) 参考 【Android 安全】DEX 加密 ( 常用

    2023年04月08日
    浏览(71)
  • 61.网游逆向分析与插件开发-游戏增加自动化助手接口-游戏红字公告功能的逆向分析

    内容来源于: 易道云信息技术研究院VIP课 上一节内容:游戏公告功能的逆向分析与测试-CSDN博客 码云地址(master分支):https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号:63e04cc40f649d10ba2f4fa313ca65cc78f46516 代码下载地址,在 SRO_EX 目录下,文件名为:SRO_Ex-游戏红字公告功能的逆

    2024年01月23日
    浏览(34)
  • 逆向分析 工具、加壳、安全防护篇

    软件安全是信息安全领域的重要内容,设计到软件相关的加密、解密、逆向分析、漏洞分析、安全编程以及病毒分析等。 哈喽,大家好,我是《有勇气的牛排》(全网同名)🐮🐮🐮 有问题的小伙伴欢迎在文末/评论,点赞、收藏/是对我最大的支持!!!。 1.1 加壳 加壳(可

    2024年02月02日
    浏览(27)
  • Android APP逆向分析工具和方法汇总

    受益于移动设备的广泛普及,移动应用近年来得到了蓬勃发展。基于移动设备集成的各类传感器,众多功能丰富的移动应用被开发出来,聚集了大量高价值用户隐私数据,包括用户身份信息、地理位置信息、账户资料信息等。用户在享受移动应用带来便利的同时,其隐私安全

    2024年02月12日
    浏览(36)
  • 【软件逆向】如何逆向Unity3D+il2cpp开发的安卓app【IDA Pro+il2CppDumper+DnSpy+AndroidKiller】

    课程作业要求使用反编译技术,在游戏中实现无碰撞。正常情况下碰撞后角色死亡,修改为直接穿过物体不死亡。 il2CppDumper。 DnSpy。 IDA Pro。 AndroidKiller。 一、使用il2CppDumper导出程序集 将{my_game}.apk后缀修改为{my_game}.zip,使用解压工具解压至文件夹{my_game}。(my_game为apk的文件

    2024年02月05日
    浏览(32)
  • Android查看签名信息系列 · 使用逆向分析工具JadxGUI获取签名

    前言 Android查看签名信息系列之使用逆向分析工具JadxGUI获取签名,通过这种方式,可以获取到的签名信息包括:MD5、SHA1、SHA-256、公钥(模数)等信息 实现方法 1、进入JadxGUI目录下的lib文件夹内,找到jadx-gui-1.4.7.jar文件 2、双击jadx-gui-1.4.7.jar进入图形界面,或者cmd进入lib所在路径

    2024年02月03日
    浏览(32)
  • 汇编语言调试工具:DosBox及debug安装配置使用教程

            学习汇编语言时,需要进入dos模式并使用debug工具调试。但是64位win10系统没有自带这些工具。因此,需要额外安装DosBox和debug.exe两个软件。本文介绍如何下载、安装、配置这两个工具软件。  简介 DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的

    2024年02月11日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包