逆向是复杂的。然而,软件开发人员经常在面临一项具有挑战性的任务时转向反向工程:增强软件安全性、使软件与第三方组件兼容、维护遗留代码,等等。

在本文中,我们将描述我们的软件逆向程序在工作中所依赖的主要工具,并展示如何使用这些工具的实际示例。本文对于熟悉汇编语言和网络交互原则的读者以及具有使用API函数进行Windows编程的经验的读者非常有用。

1. IDA Pro,Hex Rays

IDA Pro是最好和最受欢迎的逆向工程软件工具之一。它是一种交互式反汇编程序,具有内置命令语言 ( IDC ),并支持多种处理器和操作系统的多种可执行格式。IDA Pro 还有大量的插件可以进一步扩展反汇编器的功能。

IDA Pro 的主要优点是它允许您以交互方式更改显示数据的任何元素:

  • 给函数、变量、数据结构等命名。
  • 更改数据表示(如数字、各种编码的字符串、数据结构)
  • 搭建图表和代码流程图,简化对反汇编代码的理解
  • 使用 C++ 中有关函数参数和结构定义的类型信息,以便自动命名参数和变量
  • 自动识别和命名汇编代码中的标准库函数
  • 以及更多

截图 1.IDA Pro 界面

除了反汇编器本身,让我们也仔细看看一些 IDA 插件。

  • Hex-Rays 反编译器
  • 这个插件可以将原生处理器代码变成更易读的、类似 C 的版本。Hex-Rays Decompiler 生成的 C 代码相当准确,可与人类逆向工程师生成的代码相媲美。无论架构如何,它都能正确反编译由各种 C++ 编译器生成的代码。但是,Hex-Rays Decompiler 在处理复杂的汇编代码时可能会出现问题,其中原始代码是通过添加内联汇编或进行一些手动优化来专门修改的。
  • Lighthouse
  • 该插件使您能够标记反汇编程序中的执行路径。因此,您可以了解哪些代码段参与了执行,以及它们是否涉及某些算法或功能。
  • 基本上,这个插件将代码覆盖工具的报告加载到 IDA 数据库中,并根据代码的执行次数标记代码片段。这使得在浏览反汇编时可以清楚地看到代码的哪一部分值得您注意。
  • ClassInformer
  • 此插件旨在用于 Visual Studio 构建的二进制文件,并搜索存储在可执行文件数据部分中的 RTTI 信息。RTTI 信息允许插件查找 C++ 类的类名和虚拟方法,并为用户命名。此外,ClassInformer 可以为您提供找到的类的列表。
  • BinDiff 由 zynamix
  • 该工具使用 IDA 引擎将二进制文件作为汇编代码而不是字节流进行比较。BinDiff 可以将同一程序的两个版本的代码差异确定为添加、删除或替换的指令列表。更改也可以表示为代码流图。
  • IDA-功能标注器
  • 该插件分析导入的函数和调用它们的函数,然后按标签对它们进行分组:密码学相关、注册表相关、网络相关等。这样的分组可以更容易地找到负责特定操作的代码部分。
  • ida-x86emu
  • 该插件模拟反汇编代码的执行,而无需在调试器中运行正在分析的应用程序。使用此插件,您可以模拟执行任何代码的结果,而无需修改系统中的某些内容。您需要做的就是指定 CPU 寄存器的起始值。然后,您可以逐步执行。

2. CFF Explorer

CFF Explorer是一套用于可移植可执行 (PE) 编辑的工具,其中包括:

  • PE 和 HEX 编辑器
  • 资源编辑器
  • 导入编辑器
  • 签名扫描仪
  • 地址转换器
  • 反汇编器
  • 依赖分析器
  • 和更多

截图 2. CFF Explorer 界面

3. API Monitor

API Monitor是一个用于拦截应用程序和服务进行的 API 函数调用的应用程序。该工具还可以显示输入和输出数据。

默认情况下,API Monitor 包含超过 13,000 个 API 函数和 1,300 多个 COM 接口方法的定义。

截图 3. API Monitor 的 API Capture Filter 接口

4.WinHex

WinHex是一个十六进制编辑器,它为 Windows 提供了一组丰富的功能和开发工具。

WinHex 可以显示软件文件的校验和或代码,这是普通文本编辑器无法做到的。

截图 4. WinHex 界面

5. Hiew

Hiew是一个专注于处理代码的二进制文件编辑器。它具有用于 x86、x86-64 和 ARM 的内置反汇编器以及用于 x86 和 x86-64 的汇编器。

Hiew 的主要特点包括:

  • 查看和编辑逻辑和物理驱动器
  • 按模板搜索汇编命令
  • 键盘宏
  • 内置64位计算器
  • 创建自定义插件的工具

截图 5. Hiew 界面

6.Fiddler

Fiddler 是一个代理,您可以使用它来拦截在应用程序和服务器之间传输的 HTTP/HTTPS 流量,对其进行监控和分析。Fiddler 可以在系统范围内拦截 HTTP/HTTPS 流量。您还可以添加插件(例如 wbxml 视图,它可以解码 wbxml)并在不同的视图中显示请求/响应。

截图 6. Fiddler 界面

Fiddler 有一个内置的十六进制编辑器,可以根据选定的请求生成请求或创建自定义请求。此外,Request to Code 插件允许您准备好在 C#、Visual Basic 或 Python 中执行请求的代码。

7.锡拉

是一个用于转储正在运行的应用程序进程并恢复 PE 导入表的应用程序。在它的帮助下,您可以获得完全恢复的可以由操作系统运行的 PE 文件。

截图 7. Scylla 界面。图片来源:堆栈交换

8.重定位部分编辑器

Relocation Section Editor是用于编辑 PE 文件中的重定位表的应用程序。此工具的主要目的是在修补可重定位代码的情况下修改重定位表。但它通常用于在恢复受保护文件时完全删除重定位表。

受保护的文件实际上只包含解包器代码的重定位表。实际代码的重定位表通常隐藏在解包器数据中。因此,如果正在恢复转储,有两种方法可以为真实代码恢复丢失的重定位表:

  1. 强制将应用程序加载到两个不同的基地址,然后比较转储以查看正在修补的代码部分并制作新的重定位表。
  2. 完全删除重定位表,并在 PE 文件头中指定该文件不可重定位。

截图 8. Relocation Section Editor 界面

9. PEID

PEiD 是检测封隔器的最佳逆向工程工具之一。通过分析熵,PEiD 可以检测应用程序是否被打包。

还有各种有用的插件可以帮助分析 PE 文件。例如,KANAL(PEiD 的 Krypto Analyzer)插件分析 PE 文件中是否存在已知的加密算法。

截图 9. PEiD 接口

这些是 Apriorit 的逆向工程师在处理 Windows 逆向项目时经常使用的九种工具。如您所见,这些逆向工程软件中的每一个都解决了一组非常独特的特定任务。在下一节中,我们将提供实际示例,展示这些工具中的每一个在 Windows 逆向中的作用和重要性。

2022年最佳的9种逆向工程工具[持续更新]相关推荐

  1. 微生物文献调研网站与工具---持续更新(2022.09.16)

    全文目录 1. 全文说明 2. 文献查询网站 2.1 常用期刊查询官网 1) 高质量的期刊是值得细细品味,期刊官网可以进行长期订阅跟踪(排名不分先后) 2)文献库检索网站 3)科研工作的持续跟进与最新 ...

  2. Python导入模块的几种方法(持续更新)

    首先,一个模块就是一个文件! 常见导入模块的 3 种方式: (1) import <模块名> 导入所有模块元素,后面用元素需要加模块前缀. (2) from <模块名> imp ...

  3. ChatGPT的N种用法(持续更新中。。。)

    目录 前言 一.语法更正 二.文本翻译 三.语言转换 3-1.Python-->JAVA 四.代码解释-1 五.代码解释-2 六.修复代码错误 七.作为百科全书 八.信息提取 九.好友聊天 十. ...

  4. 【调剂】东北电力大学2022年硕士研究生招生调剂公告(持续更新)

    公众号[计算机与软件考研]每天都会发布最新的计算机考研调剂信息! 点击公众号界面左下角的调剂信息或者公众号回复"调剂"是计算机/软件等专业的所有调剂信息集合,会一直更新的. 根据我 ...

  5. 2022校招 复旦微电子 FPGA开发笔试卷(持续更新...)

    写在最前面 答案只是自己查阅资料后所写,不一定正确,欢迎大家留言讨论 文章目录 [客观题 | 20道单选题] 1. 通用的高级程序设计语言一般都会提供描述数据.运算.控制和数据传输的语言成分,其中控制 ...

  6. (翻译)2022 年免费的 4 个最佳文本到语音在线工具

    出色的文本到语音在线工具可以节省您的时间和挫败感. 在当今快节奏的世界中,通读所有会议记录.文档.电子邮件.课程计划等可能具有挑战性. 将文本转换为语音的工具使这变得容易. 例如,文本到语音在线工具可 ...

  7. 2020年最佳的5种社交媒体的数据抓取/网络爬虫工具

    2020年最佳的5种社交媒体的数据抓取/网络爬虫工具 查看原文章: 2020年最佳的5种社交媒体的网络爬虫工具 社交媒体数据抓取工具通常是指一种自动化网络爬虫工具,可从社交媒体渠道提取数据.它不仅包括 ...

  8. 2022 年最佳开源软件出炉

    点关注公众号,回复"1024"获取2TB学习资源! InfoWorld 公布了 2022 年最佳开源软件榜单. InfoWorld 是致力于引领 IT 决策者走在科技前沿的国际科技 ...

  9. 2022 年最佳 15 款监控工具!你不可错过

    点关注公众号,回复"1024"获取2TB学习资源! 随着过去几十年企业网络的兴起,以及近年来随着虚拟.云和边缘网络的增加,监控工具已经显得越来越重要.在当今大多数企业中,监控混合 ...

  10. 2022年度最佳开源软件榜单出炉!

    因公众号更改推送规则,请点"在看"并加"星标"第一时间获取精彩技术分享 点击关注#互联网架构师公众号,领取架构师全套资料 都在这里 0.2T架构师学习资料干货分 ...

最新文章

  1. 你自己不优秀,认识谁都是个屁
  2. 浅谈python+requests接口自动化框架
  3. layer.load 支持文字内容
  4. SDG、SGD-M实现
  5. ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0
  6. 1数组中重复的数字-面试题目3
  7. mysql快速启动bat
  8. html5标签 不可修改,SEO优化不可忽视的5个Html代码标签
  9. Android Q 将增强未知来源应用安装的安全性
  10. mysql load data infile 上传数据 不显示_第22问:我有带外键的表,你有数据么?
  11. 解决办法:std没有成员initializer_list
  12. 愿你历尽千帆,归来仍少年
  13. 程序员联合开发网 程序员创业指导书
  14. 短信平台市场蒸蒸日上的根本原因
  15. 十大顶级骨传导蓝牙耳机,推荐五款顶流的骨传导耳机
  16. 智能开关继电器-选型篇2
  17. 保存切片找不到html,HTML5切片,结果文件损坏
  18. spring注解校验
  19. 小程序关联公众号推送公众号消息
  20. mmpose系列 (一):hrnet 基于mmpose 训练body+foot 23点关键点

热门文章

  1. Word2016中出现多级标题自动编号不连续问题
  2. Servlet3异步原理
  3. Skyline软件二次开发初级——9如何在WEB页面中的三维地图上进行交互
  4. STM32电机控制--API函数应用
  5. 计算机办公自动化知识试题及答案,2015年计算机办公自动化考试试题及答案
  6. 关于VMWare版本下载选择
  7. viewUrl 终结者
  8. 【Python成长之路】共享平台
  9. 雅虎34条军规(网页优化)
  10. 什么时候都要记得:生活愈是往下,嘴角愈要上扬