二进制分析实战,支付宝逆向注册分析

大多数计算机程序都是用C或C++等高级语言编写的,无法直接执行。在使用它们之前,必须将它们编译成包含计算机可以执行的机器语言的二进制可执行文件。但是您如何知道您编译的程序是否与高级源代码具有相同的语义?令人不安的答案是您不知道。

高级语言和二进制机器语言之间存在巨大的语义鸿沟,因此很少有人知道它们之间是如何关联的。大多数程序员对他们的程序在幕后所做的事情了解有限,只是相信编译后的程序会按预期运行。因此,许多编译器错误、微妙的实现错误、二进制级后门和恶意寄生站点可能会被忽视。

更糟糕的是,工业、银行和嵌入式系统包含无数的二进制程序和库,随着时间的推移,其源程序可能会丢失或私有。这意味着这些程序和库无法使用传统方法修复。在源代码级别应用补丁或评估安全性。即使对于大型软件公司来说,这也是一个严重的问题。例如,微软最近发布了一个精心设计的二进制补丁来解决Microsoft Office 公式编辑器程序中的缓冲区溢出问题。

如何在二进制级别分析和修改程序。

《二进制分析实战》

它可以消除你的疑虑。

无论您是安全研究人员、恶意软件分析师、程序员,还是只是对二进制分析感兴趣的人,这些技术都可以帮助您了解并深入了解您每天创建和使用的二进制文件。

本书的主要目标是让您成为一名全面的二进制分析器,并熟悉该领域的所有重要主题,包括二进制检测、污点分析和符号执行等基础和高级主题。本书无意成为一本全面的资源,因为二进制分析的领域和工具变化很快,一本全面的书可能很快就会过时。相反,本书的目的是让您了解所有重要主题并帮助您更加独立地学习。同样,本书并未涵盖逆向工程x86 和x86-64 代码(附录A 中介绍了基础知识)或分析这些平台上的恶意软件的所有复杂问题。关于这些主题已经有很多专门的书籍,因此这里没有必要重复它们的内容。

本书分为四个部分。

第1 部分“二进制格式”

介绍对于理解本书其余部分非常重要的二进制格式。如果您已经熟悉ELF 和PE 二进制格式以及libbfd,则可以跳过本节中的一章或多章。

第一章“二进制简介”

提供二进制程序分析的概述。

第2 章“ELF 格式”

介绍Linux 上使用的ELF 二进制格式。

第3 章“PE 格式概述”

PE 和Windows 使用的二进制格式的简要说明。

第4 章“使用libfd 创建二进制加载器”

演示如何使用libbfd 解析二进制文件并构建本书其余部分中使用的二进制加载器。

第2 部分“二元分析基础知识”

包含基本的二进制分析技术。

第5 章“Linux 二进制分析”

介绍适用于Linux 的基本二进制分析工具。

第6 章“反汇编和二进制分析的基础知识”

涵盖基本分解技术和基本分析模式。

第7 章,“简单的ELF 代码插入技术”

在本章中,您将首次了解如何使用寄生代码插入和十六进制编辑等技术来修改ELF 二进制文件。

第3 部分“高级二进制分析”

介绍高级二进制分析技术。

第8 章“自定义反汇编”

演示如何使用Capstone 创建自定义反汇编工具。

第9 章“二进制仪器”

本文向您展示如何使用Pin 修改二进制文件。 Pin是一个成熟的二进制工具平台。

第10章“动态污染分析的原理”

我们介绍动态污点分析的原理,这是一种非常先进的二进制分析技术,可让您跟踪程序内的数据流。

第11章“基于libdft的动态污点分析”

了解如何使用libdft 构建您自己的动态污点分析工具。

第12章“符号执行的原理”

仅用于符号执行。这是另一种先进技术,可用于自动推断复杂程序的属性。

第13 章,“使用Triton 实现符号执行”

演示如何使用Triton 构建实用的符号执行工具。

第4 部分“附录”

包含可能有用的资源。

附录A,“x86 汇编快速入门”

为不熟悉x86汇编语言的读者提供简要介绍。

附录B,“使用libelf 实现PT_NOTE 覆盖”

第7 章提供了所使用的elfinject 工具的实现细节,并介绍了libelf。

附录C“二进制分析工具列表”

包含可用二进制分析工具的列表。

什么是二进制分析?为什么需要它?二进制分析是分析计算机二进制程序(称为二进制文件)及其包含的机器代码和数据的科学和艺术。换句话说,所有二进制分析的目标都是发现(并可能改变)—— 二进制程序的真实属性。换句话说,发现二进制程序实际上做了什么,而不是我们认为它们应该做什么。许多人将二进制分析与逆向工程和反汇编联系起来,这至少部分正确。尽管反汇编是许多形式的二进制分析的重要第一步,但逆向工程是二进制分析的常见应用,并且通常是记录专有软件或恶意软件行为的唯一方法。然而,二进制分析的领域远远不止于此。从广义上讲,二进制分析技术可以分为两类,或其组合:

静态分析。

静态分析技术分析二进制文件而不运行它们。这种方法有两个优点。首先,它可以一次性分析整个二进制文件,其次,它不需要特定的CPU 来运行二进制文件。例如,您可以静态分析x86 计算机上的ARM 二进制文件。这种方法的缺点是静态分析无法了解二进制文件在执行过程中的状态,这使得分析变得非常困难。

动态分析。

与静态分析相反,动态分析执行二进制文件并在运行时分析它们。这种方法通常比静态分析更容易,因为它提供了对整个运行时状态的完整理解,包括变量的值和条件分支的结果。但是,由于您只能看到执行的代码,因此这种方法可能会错过程序中有趣的部分。

静态分析和动态分析各有其优点和缺点,本书将教您这两种方法的技巧。除了被动二进制分析之外,您还将学习二进制检测技术来修改二进制文件,而无需源代码。二进制检测依赖于反汇编等分析技术,可用于辅助二进制分析。鉴于二进制分析和仪器技术之间的共生关系,本书涵盖了这两个领域。

如前所述,您可以使用二进制分析来记录和测试源代码程序。然而,即使源代码可用,二进制分析对于查找在二进制级别比在源代码级别更明显的细微错误也特别有用。许多二进制分析技术对于高级调试也很有用。本文介绍了可以在这些场景中使用的二进制解析技术。

为什么二进制分析很难二进制分析很困难,比源代码级别的等效分析要困难得多。事实上,许多二进制分析任务本质上是不确定的,这意味着不可能构建一个始终为这些问题返回正确结果的分析引擎。为了了解未来的挑战,这里列出了二进制分析的原因。的难度。不幸的是,这个列表并不完整。

没有任何符号信息。

当您使用高级语言(例如C 或C++)编写源代码时,您可以为变量、函数、类和其他结构指定有意义的名称。这些名称称为符号信息,或简称为符号。正确的命名约定使源代码更容易理解,但它们在二进制级别上并不真正相关。因此,二进制文件中的符号通常会被删除,从而使代码更难以理解。

无类型信息。

高级语言的另一个特点是定义良好的变量类型(如int、float、string)和更复杂的数据结构(如struct类型)。相反,类型没有在二进制级别显式声明,因此很难推断数据的用途和结构。

没有高级抽象。

现代程序分为类和函数,但编译器丢弃了这些高级信息。这意味着二进制文件看起来是一大块代码和数据,而不是一个结构良好的程序,因此将其恢复为更高级别结构的过程是复杂且容易出错的。

混合代码和数据。

二进制文件可以(并且确实)包含与可执行代码混合的数据。这使得将数据解释为代码变得更容易。反之亦然,但这可能会导致错误的结果。

位置相关的代码和数据。

由于二进制文件不可修改,因此即使添加一条机器指令也可能会导致代码移位问题,从而使代码中其他位置的内存地址和引用无效。因此,任何类型的代码或数据修改都是非常困难的,并且很容易破坏二进制文件。

由于上述挑战,我们在实践中经常面临分析结果不准确的情况。二进制分析的一个重要部分是寻找创造性的方法来构建即使出现解析错误也可以使用的工具。

谁应该阅读这本书? 本书面向安全工程师、学术安全研究人员、逆向工程师、恶意软件分析师和对二进制分析感兴趣的计算机科学专业的学生。

此外,本书涵盖了更高级的知识,需要一些编程和计算机系统的基础知识。要充分利用本书,您需要:

能够使用C 和C++ 进行有效编程。

了解操作系统的内部结构,比如什么是进程,什么是虚拟内存。

了解如何使用Linux shell(尤其是bash)。

x86/x86-64 汇编程序的使用知识。如果您还不了解汇编,请务必先阅读附录A。

如果您以前从未编程过或者不喜欢深入研究计算机系统的底层细节,那么这本书可能不适合您。

本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/554305.html

(0)
上一篇 2024年5月25日
下一篇 2024年5月25日

相关推荐

  • 和平精英汽车皮肤去哪买?

    和平精英汽车皮肤去哪买? 打开和平精英,点击右边的商城,就可以购买心仪的皮肤啦! 和平精英皮肤去哪里买可靠? 可靠。淘宝上卖的和平精英玛莎拉蒂皮肤是真的的,你下单购买后,会直接把皮肤发送到你的游戏账号上的,这个完全不用担心的。因为我自己买过,朋友也买过,所以我觉得还挺靠谱,但是我建议你找淘宝销量高的,购买的人多的下单,也可以看看评价,看看差评,差评太多的就别…

    游戏快讯 53分钟前
  • 和平精英打狙教学? 和平精英打海岛上分容易还是雨林?

    和平精英打狙教学? 步骤/方式1 想要成为一个合格的狙击手那么这几点是必不可少的:一是合适的枪械,二是学会利用地形,三是学会卡点,四是设置键位的应用以及狙击技巧。 第一、首先推荐大家栓动狙击枪选择M24。相对于Kar98K来说,M24装备狙击枪扩容弹匣后,能够多容纳2发子弹! 步骤/方式2 第二、地形选择 和平精英中地形各种各样, 选择一个好的地形更利于狙击…

    游戏快讯 3小时前
  • 和平精英海岛配方? 和平精英海岛攻略?

    和平精英海岛配方? 十克茶叶,十克水,20克柠檬即可制作海岛冰茶 和平精英海岛攻略? 和平精英海岛的攻略 和平精英王牌局海岛的运营思路: 1.整局游戏的时间把控 时间对于整场游戏来说十分的重要,就拿跑毒来说。很多小伙伴一开始被满地的物资所吸引,拼命的搜索物资而忘记了缩圈的时间。 往往第一个圈有很多特种兵喜欢边吃毒边跑圈,遇到了资源区还会打个药继续搜,其实这个…

    游戏快讯 5小时前
  • 和平精英冒险等级怎么升?

    和平精英冒险等级怎么升? 和平精英冒险等级可以通过多种方式升级,例如完成游戏任务、拥有更高的战斗胜率、获得更多的击杀数等等。但是升级的难度会随着等级的提高而逐渐增加,需要不断提高自己的技能和战斗能力。此外,还可以通过购买游戏内的道具来提高冒险等级,但这需要一定的经济投入。总之,升级冒险等级需要耐心和持续的努力。 和平精英最高等级玩家? 段位划分规则:英勇青铜…

    游戏快讯 6小时前
  • 和平精英怎么把物品放到车里?

    和平精英怎么把物品放到车里? 首先,在地图里找到可以放物资的绿皮车。 然后,坐到车里点击背包里面的东西选择要放的物品就好了。 最后,想要取出坐在车上点击就可以取出来了。 和平精英怎么把巡查取消? 怎么把巡查取消了? 我都回答是还没有取消,他必须要达到一定的要求,就是上王牌,要连续在五个赛季里面都上了王牌,他就会给你重新获得巡查员的机会。所以说和平精没有把巡查…

    游戏快讯 8小时前