2024-12-18 10:54| 发布者: 西瓜太郎| 查看: 30| 评论: 0|来自: https://www.secureblink.com/blogs/top-9-reverse-engineering-hacking-tools-for-cyber-security-experts
对一款应用程序进行反编译,无论其开发所用的编程语言是什么,目的是获取其源代码或其中任何部分,这一过程被称作逆向工程。简而言之,它是一个将某物拆解以便解读、构建副本以便修正的过程。逆向工程代码有助于定位任何程序中的安全风险,还可利用它来解读任何恶意应用程序,进而破坏它们。
然而,并非只有网络安全专家掌握这方面知识,因为它确实是抵御网络攻击的最佳武器之一。
有些试图破解敏感数据或加密密钥的黑客,常常会选择逆向工程作为一种手段,来找出在整个系统中何处存在隐藏漏洞。
这会导致敏感数据完全暴露,包括硬编码到应用程序中的应用程序编程接口(API)密钥、网址以及 API 密钥,开发者用于测试的开发服务器、非标准端口号对应的网址,以及硬编码到应用程序文件及其子目录中的若干私钥,除非那些潜在的复杂细节是显而易见的。此外,他们还会在已编译的代码中人为制造漏洞,以检测其反编译能力。并且倾向于查找与他们动机相关的、传达错误信息的字符串。现在这取决于逆向工程是出于何种目的而实施的。
逆向工程涉及一系列步骤,比如数据汇编、对元素及功能进行记录、评估数据、记录控制流、提取流程结构、审查提取出的设计、生成逆向工程文档。
尽管企业为了找出系统中任何可能存在的安全漏洞,也会将逆向工程作为一种防火墙形式,来构建抵御任何网络威胁的防线。对恶意软件及其他威胁因素进行逆向工程,是杀毒软件生产企业的标准流程。
从另一方面来看,实施逆向工程很复杂,因为它涉及大量工具集,其用途远不止修复漏洞。
所以,为了在进行逆向工程时提高效率,黑客们会使用逆向工程黑客工具来简化整个流程。
从实时追踪正在运行的应用程序、将二进制代码拆解为汇编代码,到管理及编辑可执行文件中的二进制文件或嵌入式资源,有众多逆向工程黑客工具,依据其用途,大致可分类如下:
·反汇编器。
·调试器。
·数据包追踪器与分析器。
·脚本工具。
·文件分析器。 1.十六进制编辑器Hex Editor 十六进制编辑器(Hex Editor)是一套适用于微软Windows系统的十六进制开发工具,它将先进的二进制编辑功能与文字处理器的简便性及多功能性相结合。它主要用于处理构成计算机文件的基础二进制数据。 此外,你可以在一个扇区或文件内进行查找、替换、比较、计算校验和、添加智能书签、色彩映射以及生成字符分布情况等操作。十六进制编辑器还支持拖放功能,并且能够与所有版本的Windows操作系统集成。 基于不同的功能和应用场景,存在多种十六进制编辑器,有些能够以可视化方式显示文件的内部结构。因此,你可能需要在自己最常用的工作空间中进行便捷的十六进制编辑操作。 数据检查器(Data Inspector)非常适合用于解读、查看以及编辑十进制和二进制数值。可以利用算术、逻辑、ASCII程序以及按位运算来辅助对数据集进行操作。 集成结构查看器(Integrated Structure Viewer)让你能够以最直观、最充分的方式编辑和查看数据。该结构查看器可确认信息结构、对不同网络的引用,以及诸多原子数据类型,包括字符(char)、字节(byte)、无符号字节(ubyte)、字(word)、无符号字(uword)、长整型(long)、无符号长整型(ulong)、长长整型(longlong)、单精度浮点数(float)、双精度浮点数(double)、OLE日期/时间、DOS时间、DOS日期、文件时间(FILETIME)以及时间戳(time_t)。 【优点】:
在进行任何十六进制计算时都非常方便。
有多种可用选项。 【缺点】:
对用户不太友好。
有时更新方面会存在问题。 2.OllyDbg 一款适用于微软 Windows 系统的 32 位汇编级调试器。其二进制代码计算认知特性使其在通常无法获取源代码的情况下极具适用性。此外,OllyDbg 是一款共享软件应用程序,不过可以进行下载。
OllyDbg 的一些主要功能特点如下: 1.在不同调试会话间保存补丁,并将其应用到可执行文件中,还能进行补丁升级。 2.定位对象以及库模式。 3.对代码进行分析 —— 追踪记录,查找程序分支、应用程序编程接口(API)调用、表格以及循环、常量和字符串。 4.处理诸如 DNow、MMX 以及获取包括速龙(Athlon)在内的 SSE 数据类型和扩展指令的相关操作。 5.识别复杂配置,比如对特定事件的请求。 6.具备执行跟踪系统,其日志有助于排查运行中的不一致问题。 7.查找错误指令并屏蔽关键字符串。 8.检查并修改内存,还能设置断点,以无形的方式暂停应用程序运行。 9.在不同调试会话间输入标记,将它们重新应用到可执行文件中,并修复升级相关内容。 【优点】:
属于共享软件,但可免费使用。
是一款功能强大的动态调试器。
相较于 IDA 来说,使用相对更简便。
允许直接加载和调试动态链接库(DLL)。
有可用的脚本和插件。 【缺点】:
仅限于微软 Windows 系统。
仅适用于 X86(即 32 位)软件。
不是静态调试器。 3.APKTool
Apktool 是另一种开源选择,主要用于 Android 逆向工程,可以将资源解码为几乎其原始形式。可以进行修改,并将其转换回二进制 APK/JAR 文件。
此外,Apktool 还允许逐步调试 smali 代码,并且由于项目文件的结构以及对一些重复性操作的自动化,使得处理应用程序变得更加容易。使用该程序需要 Java 7 。 【优点】:
在逆向 Android 应用文件方面高效
可在网上免费使用
社区支持良好 【缺点】:
不如 JEB 反编译工具普遍 4.WireShark
Wireshark 是一个知名的网络和网络领域的工具。它是免费和开源的,是一个 Web 调试器,可以拦截和修改 HTTP 请求,并且可以记录 HTTPS 请求。它用于数据包分析和网络故障排除。 【优点】:
免费且开源的 Web 调试器
支持跨平台 【缺点】:
对于初学者来说,可能会感到压力山大 5.Scylla
Scylla 不是一个独立的工具,而更倾向用于重构 Windows 的x86 和x64 文件的工具。它还具有全 Unicode 支持,并且与 Windows 7 、8 和10 完全兼容。 【优点】:
一个开源的产品
支持 x64 和x86 【缺点】:
缺乏更新
有时会有错误 6.Dex2jar
Dex2jar 是一个 API,用于扫描 Dalvik Executable(.dex/.odex)格式。它与 Android 和Java .class 文件兼容。
Dex2jar 包括以下几个组件:
Dex-reader 用于扫描 Dalvik Executable(.dex/.odex)格式。它具有类似 ASM 的轻量级 API
Dex-translator 用于执行转换工作。它读取 dex 指令以 dex-or 格式,经过一些优化后,转换为 ASM 格式
Dex-用于它使用 Dex-translator 表示 dex 指令
Dex-tools 用于处理.class 文件
示例:修改应用程序、解混淆一个.jar 文件。 【优点】:
可以读取 Dalvik Executable 格式
轻量级 API 【缺点】:
只与 Android 和Java .class 文件兼容 7.CCF CCF 是一个免费的便携式可执行编辑器,支持.NET 文件结构。 CCF 支持 32 位和 64 位PE 文件。 CCF 由NTCore 开发,还可用于解压缩 UPX 打包器。 【优点】:
免费的 PE 编辑器
也支持.NET 文件
支持 PE 32 位和 64 位
包含 PE 重建器
可用于解压缩 UPX 【缺点】:
免费版本自 2012 年以来未更新 8.Oracle VM VirtualBox Oracle VM VirtualBox 是一个开源的虚拟化解决方案,在 Windows 、Mac 、Linux 等不同平台上皆可使用,用于在安全环境中分析恶意软件。 【优点】:
免费且开源
活跃的开发社区
支持虚拟机操作系统 【缺点】:
VMware 相比,功能略差 9.BinaryNinja 目前没有反编译器,但计划在将来的“高级”版本中加入。 Binary Ninja 由Vector 35 开发,以其易用性而自豪,使得自动化比其他解决方案更容易理解。尽管易于使用,但该软件在反向工程本地主机中仍然存在一些问题。 【优点】:
简单易用
包含反汇编器 【缺点】:
不是调试器或反编译器
有时无法加载用户界面
免费版本有限 |