前言
逆向重点是分析和理解计算机程序、二进制文件或者其他软件的逆向工程技术。在CTF比赛中,参赛者通常会收到一个或多个二进制文件、程序、固件或者其他类型的软件,他们的任务是分析这些文件,识别潜在的漏洞或安全问题。
学逆向需要会密码学,汇编语言,python,c语言
环境安装
静态分析工具
静态分析无需实际执行该程序。它通过检查程序的结构、语法、数据流和控制流,以识别潜在的问题、漏洞、错误或安全问题。这种分析通常在程序编译或解释阶段进行,而不需要实际运行程序
IDA PRO
IDA Pro是一款强大的反汇编工具,它可以静态和动态去分析程序,下载地址:
https://hex-rays.com/ida-free/
Ghidra
Ghidra 是由美国国家安全局研究局创建和维护的软件逆向工程 (SRE) 框架 。该框架包括一套功能齐全的高端软件分析工具,使用户能够在包括 Windows、macOS 和 Linux 在内的各种平台上分析编译代码。功能包括反汇编、汇编、反编译、绘图和脚本,以及数百个其他功能。Ghidra 支持多种处理器指令集和可执行格式,并且可以在用户交互和自动化模式下运行。用户还可以使用 Java 或 Python 开发自己的 Ghidra 扩展组件和/或脚本。
下载地址:
https://github.com/NationalSecurityAgency/ghidra/releases
之前写过Ghidra的安装和使用教程
https://blog.csdn.net/qq_45894840/article/details/124556441?spm=1001.2014.3001.5502
动态分析工具
动态分析是一种用于分析计算机程序、应用程序或系统行为的方法,通过运行实际的程序并监控其执行过程来收集信息和数据。与静态分析不同,动态分析涉及程序的实际执行,以便更深入地理解程序的行为、性能和潜在问题
x64dbg
x64dbg 是一款开源的调试器,用于分析和调试Windows 操作系统上的二进制文件,包括应用程序和系统进程,下载地址:
https://x64dbg.com/
gdb
gdb是一个linux的动态调试器,可以调试各种二进制文件
安装:
apt install gdb
我们还需要安装pwndbg插件,方便调试程序
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
./setup.sh
cd ..
mv pwndbg ~/pwndbg-src
echo "source ~/pwndbg-src/gdbinit.py" > ~/.gdbinit_pwndbg
成功安装插件后,使用gdb调试程序会显示插件名称
Android分析工具
jadx是用于将Android应用的DEX文件反编译为可读的Java源代码的工具,下载地址:
https://github.com/skylot/jadx/releases/tag/v1.4.7
DLL分析工具
dnSpy是一款开源的.NET程序集反编译器和调试器,用于分析和修改.NET Framework和.NET Core应用程序的程序集文件,下载地址:
https://github.com/dnSpy/dnSpy/releases/tag/v6.1.8
JAVA分析工具
JD-GUI是一款用于反编译Java字节码文件的免费开源工具,下载地址:
https://java-decompiler.github.io/
总结
目前常用的工具就这些,之后就开始实战教学了