赞
踩
逆向是复杂的。然而,软件开发人员经常在面临一项具有挑战性的任务时转向反向工程:增强软件安全性、使软件与第三方组件兼容、维护遗留代码,等等。
在本文中,我们将描述我们的软件逆向程序在工作中所依赖的主要工具,并展示如何使用这些工具的实际示例。本文对于熟悉汇编语言和网络交互原则的读者以及具有使用API函数进行Windows编程的经验的读者非常有用。
IDA Pro是最好和最受欢迎的逆向工程软件工具之一。它是一种交互式反汇编程序,具有内置命令语言 ( IDC ),并支持多种处理器和操作系统的多种可执行格式。IDA Pro 还有大量的插件可以进一步扩展反汇编器的功能。
IDA Pro 的主要优点是它允许您以交互方式更改显示数据的任何元素:
截图 1.IDA Pro 界面
除了反汇编器本身,让我们也仔细看看一些 IDA 插件。
CFF Explorer是一套用于可移植可执行 (PE) 编辑的工具,其中包括:
截图 2. CFF Explorer 界面
API Monitor是一个用于拦截应用程序和服务进行的 API 函数调用的应用程序。该工具还可以显示输入和输出数据。
默认情况下,API Monitor 包含超过 13,000 个 API 函数和 1,300 多个 COM 接口方法的定义。
截图 3. API Monitor 的 API Capture Filter 接口
WinHex是一个十六进制编辑器,它为 Windows 提供了一组丰富的功能和开发工具。
WinHex 可以显示软件文件的校验和或代码,这是普通文本编辑器无法做到的。
截图 4. WinHex 界面
Hiew是一个专注于处理代码的二进制文件编辑器。它具有用于 x86、x86-64 和 ARM 的内置反汇编器以及用于 x86 和 x86-64 的汇编器。
Hiew 的主要特点包括:
截图 5. Hiew 界面
Fiddler 是一个代理,您可以使用它来拦截在应用程序和服务器之间传输的 HTTP/HTTPS 流量,对其进行监控和分析。Fiddler 可以在系统范围内拦截 HTTP/HTTPS 流量。您还可以添加插件(例如 wbxml 视图,它可以解码 wbxml)并在不同的视图中显示请求/响应。
截图 6. Fiddler 界面
Fiddler 有一个内置的十六进制编辑器,可以根据选定的请求生成请求或创建自定义请求。此外,Request to Code 插件允许您准备好在 C#、Visual Basic 或 Python 中执行请求的代码。
是一个用于转储正在运行的应用程序进程并恢复 PE 导入表的应用程序。在它的帮助下,您可以获得完全恢复的可以由操作系统运行的 PE 文件。
截图 7. Scylla 界面。图片来源:堆栈交换
Relocation Section Editor是用于编辑 PE 文件中的重定位表的应用程序。此工具的主要目的是在修补可重定位代码的情况下修改重定位表。但它通常用于在恢复受保护文件时完全删除重定位表。
受保护的文件实际上只包含解包器代码的重定位表。实际代码的重定位表通常隐藏在解包器数据中。因此,如果正在恢复转储,有两种方法可以为真实代码恢复丢失的重定位表:
截图 8. Relocation Section Editor 界面
PEiD 是检测封隔器的最佳逆向工程工具之一。通过分析熵,PEiD 可以检测应用程序是否被打包。
还有各种有用的插件可以帮助分析 PE 文件。例如,KANAL(PEiD 的 Krypto Analyzer)插件分析 PE 文件中是否存在已知的加密算法。
截图 9. PEiD 接口
这些是 Apriorit 的逆向工程师在处理 Windows 逆向项目时经常使用的九种工具。如您所见,这些逆向工程软件中的每一个都解决了一组非常独特的特定任务。在下一节中,我们将提供实际示例,展示这些工具中的每一个在 Windows 逆向中的作用和重要性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。