Angr符号执行练习–XorDDoS某样本字符串解密

💡 原文中文,约12300字,阅读约需30分钟。
📝

内容提要

本文对XorDDoS样本进行了静态分析和动态模拟,利用r2pipe模块获取函数信息和交叉引用,并结合angr进行函数调用模拟,重点分析了dec_conf()和encrypt_code()的解密过程,展示了如何提取加密字符串及其解密结果。

🎯

关键要点

  • 本文对XorDDoS样本进行了静态分析和动态模拟。
  • 使用r2pipe模块获取函数信息和交叉引用。
  • 重点分析了dec_conf()和encrypt_code()的解密过程。
  • dec_conf()用于解密字符串,实际调用encrypt_code()完成解密。
  • 样本中含有多个加密字符串,dec_conf()的参数包括加密字符串的地址和长度。
  • 使用angr模拟调用dec_conf()和encrypt_code(),提供了两种模拟方法。
  • 通过r2pipe模块进行静态分析,获取函数入口、出口地址及交叉引用。
  • 结合r2pipe和angr,完成对XorDDoS样本的分析和解密过程。
  • XorDDoS家族仍在活跃,本文旨在作为Angr符号执行的练习目标。

延伸问答

XorDDoS样本的主要分析方法是什么?

主要通过静态分析和动态模拟,结合r2pipe和angr进行分析。

dec_conf()函数的作用是什么?

dec_conf()用于解密字符串,实际调用encrypt_code()完成解密。

如何使用r2pipe模块进行静态分析?

使用r2pipe模块可以获取函数入口、出口地址及交叉引用,分析调用参数。

angr模拟调用dec_conf()的两种方法是什么?

可以使用call_state和callable两种方法进行模拟调用。

XorDDoS家族的现状如何?

XorDDoS家族仍在活跃,但流行变种已移除原始版本的rootkit部分。

encrypt_code()函数的解密机制是什么?

encrypt_code()函数通过简单的异或操作来解密字符串。

➡️

继续阅读