逆向工程是指解构应用程序的过程,不论使用何种编程语言开发,目的是获得其源代码或其中的任何部分。逆向工程的代码有助于发现任何程序中的安全风险,也能用于解密任何恶意应用以进行干扰。
在寻找破解敏感数据或加密密钥的过程中,黑客们通常选择逆向工程作为一种选项,以找出整个系统中隐藏漏洞的所在之处。这导致了敏感数据的完全暴露,包括被硬编码到应用程序中的 API 密钥、 URL 和API 机密信息,开发人员用于测试的开发服务器 URL,非标准端口号,以及硬编码到应用程序文件及其子目录中的多个私钥等。
逆向工程涉及一系列步骤,包括数据编译、记录元素和功能、评估数据、记录控制流、提取流结构、审查提取的设计、生成逆向工程文档。
从实时跟踪运行的应用程序,解析二进制代码到汇编代码,管理和编辑二进制文件或嵌入式资源在 exe 文件中,逆向工具有各种各样的类型,根据其应用可以分为以下几类:
- 反汇编器
- 调试器
- 数据包跟踪和分析工具
- 脚本工具
- 文件分析工具
以下分享
1.十六进制编辑器
十六进制编辑器是一组用于微软 Windows 的十六进制开发工具,结合了高级的二进制编辑和字处理器的简洁易用性和多功能性。它主要用于操纵构成计算机文件的基本二进制数据。
此外,十六进制编辑器还支持查找、替换、比较、计算校验和、添加智能标签、颜色映射,并在一个扇区或文件中生成字符分布。十六进制编辑器还支持拖放功能,并可与所有的 Windows 操作系统集成,无论其迭代版本如何。
根据其不同的功能和应用,有各种不同类型的十六进制编辑器,有些允许它们以可视化方式显示文件的内部结构。因此,您可能需要在最常用的工作空间中进行快速简单的十六进制编辑。
数据检视器非常适合解释、查看和编辑十进制和二进制值。算术、逻辑、 ASCII 过程和位操作可用于帮助操作数据集。
集成结构查看器使您能够直观而充分地编辑和查看数据。结构查看器验证信息结构、对各种网络的引用,以及许多原子数据类型:char 、byte 、ubyte 、word 、uword 、long 、ulong 、longlong 、float 、double 、OLE 日期/时间、 DOSTIME 、DOSDATE 、FILETIME 和time_t 。
优点:
- 进行任何十六进制计算时非常方便
- 提供多种选项
缺点:
- 用户友好度不太高
- 有时更新问题
2.OllyDbg
OllyDbg 是一个针对 Microsoft Windows 的32 位汇编调试器。任何无法获得源代码的情况下,二进制代码的计算认知使得它在许多情况下都非常适用。此外,OllyDbg 是共享软件应用程序,可以下载使用。
OllyDbg 的一些关键特性如下:
1.保存补丁以在会话之间返回到可执行文件并进行修补升级
2.查找对象和库模式
3.代码分析——跟踪记录、查找过程切换、 API 调用、表和循环常量和字符串
4.DNow 、MMX 和为 Athlon 等SSE 数据类型和扩展提供指令
5.识别高级配置,如对事件的请求
6.用于执行的跟踪系统,日志已知可用于调和冲突
7.查找错误命令和掩盖关键字
8.检查和修改内存,设置断点并在不可见的情况下暂停应用程序
9.在会话之间输入标记,将它们还原到可执行文件并修复更新
优点:
- 共享软件,免费使用
- 功能强大的动态调试器
- 相对于 IDA 来说更容易操作
- 允许直接加载和调试 DLL
- 有脚本和插件可用
缺点:
- 仅限于 Microsoft® 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 开发,以其易用性而自豪,使得自动化比其他解决方案更容易理解。
尽管易于使用,但该软件在反向工程本地主机中仍然存在一些问题。
优点:
- 简单易用
- 包含反汇编器
缺点:
- 不是调试器或反编译器
- 有时无法加载用户界面
- 免费版本有限
如何系统学习网络安全?
网络安全作为数字时代的核心技术基石,已成为保障各行业安全稳定运行的坚实屏障。筑牢网络安全的防线,掌握先进的防护策略和技能正上升为国家与企业发展的战略优先级。
构建稳固的网络安全能力是一个体系的工程,需要从夯实基础理论出发,持续深化到攻防对抗与应急响应的实战层面。
如果你是准备学习网络安全(黑客)或者正在学习,我可以把我自用的360独家内部资料分享给你,包含以下内容你应该能用得上:
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
一、网络安全(黑客)学习路线
网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网络安全教程视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
三、网络安全CTF实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
四、网络安全面试题
最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。
网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。
机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!
这份完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】