抑制Angr模拟执行期间某些日志

💡 原文中文,约2300字,阅读约需6分钟。
📝

内容提要

本文讨论了如何在Angr脚本中抑制INFO级别的日志输出。通过将特定日志记录器的级别设置为ERROR,可以减少不必要的日志信息。文章提供了多个案例,展示了如何定位和修改相关代码以实现日志抑制。

🎯

关键要点

  • 通过将特定日志记录器的级别设置为ERROR,可以抑制Angr脚本中的INFO级别日志输出。
  • 在Python的site-packages目录下,可以找到与Angr相关的多个依赖模块。
  • 使用powershell命令可以获取特定时间内修改的目录,以便查找相关代码。
  • 案例1中,通过查找cle older.py中的_map_object函数,可以抑制INFO级别的日志输出。
  • 案例2中,通过查找cleackends oreigns ext_init__.py中的make_extern函数,可以抑制INFO级别的日志输出。
  • 案例3中,通过查找cleackends oreign ext.py中的__init__函数,可以抑制INFO级别的日志输出。
  • 在搜索特征字符串时,要注意格式串的可能形式,以避免漏报。

延伸问答

如何在Angr脚本中抑制INFO级别的日志输出?

可以通过将特定日志记录器的级别设置为ERROR来抑制INFO级别的日志输出。

在哪些文件中可以找到与Angr相关的代码?

可以在Python的site-packages目录下找到与Angr相关的多个依赖模块。

如何使用powershell命令查找修改过的目录?

可以使用powershell命令获取特定时间内修改的目录,例如:`Get-ChildItem -Directory | Where-Object { $_.LastWriteTime -ge $t -and $_.LastWriteTime -lt $t.AddMinutes(1) }`。

案例1中如何抑制特定的INFO日志?

在案例1中,可以通过设置`logging.getLogger('cle.loader').setLevel(logging.ERROR)`来抑制该日志。

案例2中涉及到哪个函数来抑制日志?

案例2中涉及到`cle/backends/externs/__init__.py`中的`make_extern`函数来抑制日志。

在处理日志时需要注意什么?

在搜索特征字符串时,要注意格式串的可能形式,以避免漏报。

➡️

继续阅读