用途:从二进制文件中解密并还原被混淆的字符串,通过分析加密模式并生成解密脚本完成去混淆。
前置条件:开始分析前需检查 IDA Pro MCP 是否已连接,使用 MCP 工具验证连接。若不可用,需提示用户打开已加载 MCP 插件的 IDA Pro 并确保 MCP 服务器运行后重试。
工作流程:
- 识别加密字符串:分析用户提供的代码片段或函数,寻找疑似加密字符串的字节数组或数据引用,定位解密例程,通过逆向解密函数判断加密算法。常见模式包括单字节或密钥数组 XOR、自定义替换密码、RC4 等流密码、Base64 与 XOR 组合、带算术变换的栈构造字符串。
- 分析解密例程:使用 IDA Pro MCP 反编译解密函数,识别参数(加密数据指针、长度、密钥),判断算法类型与复杂度。
- 选择解密策略:简单算法(纯计算、无外部依赖,如单/多字节 XOR、ADD/SUB/ROT 变换、简单查找表)编写独立 Python 脚本解密;复杂算法(状态相关、使用库函数或难以重实现,如多轮自定义加密、依赖运行时状态或全局变量、自身高度混淆)使用 Unicorn Engine 直接从二进制模拟解密函数。
- 实现解密:简单解密用 Python 脚本,复杂解密用 Unicorn 模拟。
- 输出结果:以表格形式展示解密字符串及其地址,并询问用户是否生成补丁文件;若同意,将加密字节替换为明文(以 null 结尾),保存为 <original_name>.patched。
限制:依赖 IDA Pro MCP 连接;复杂算法需借助 Unicorn Engine 模拟;资料未提供具体支持的文件格式、平台范围及性能说明。