Python 逆向工程:2025 年能破解什么?-3. 分步演练:逆向工程的实际应用

时间:2025-03-13 07:15:08

假设您刚刚收到一个疑似恶意的已编译 Python 可执行文件。以下是如何处理它:

3.1 初步评估

  1. 文件分析:使用 PEiD 或 Linux 命令等工具确定可执行文件是否与 PyInstaller 一起打包。file
file suspect.exe
  1. 提取字节码:运行 PyInstaller Extractor:
python pyinstxtractor.py suspect.exe

这将创建一个包含文件的文件夹(例如 )。suspect.exe_extracted.pyc

info:

有关逆向工程工具的完整列表,请查看 GitHub 上的 awesome-malware-analysis 存储库。

3.2 反编译与分析

  1. 反编译:将提取的文件转换为 Python 源代码:.pyc
uncompyle6 output_dir suspect.exe_extracted/module.pyc

检查代码中的混淆模式。

  1. 代码审查:

    手动检查变量名称、函数调用和字符串作。使用 IDE 功能重命名模糊处理的元件,以便清晰明了。

  2. 动态分析:

    在沙箱(或受控 VM)中运行可执行文件,并捕获内存转储或解密的输出以供进一步检查。

3.3 处理解密例程

  1. 识别解密函数:查找处理字符串并输出纯文本的函数。
  2. 模拟解密:使用仿真框架(请参阅上面的 IDAPython 脚本)单独运行这些函数。
  3. 文件调查结果:将模糊处理的字符串替换为解密版本,并添加内联注释。这不仅有助于了解恶意软件,还有助于记录您的逆向工程过程。

info:

最近研究的统计数据表明,正确绕过混淆可以将逆向工程时间缩短多达 40%。每个解密的字符串都是一场胜利!