尽管 IDA 最初是为交互式使用而创建的,并试图尽可能自动化逆向工程中繁琐的部分,但它仍然无法为您完成所有工作,而手动完成仍然必要的工作。为了解决这个问题,IDA 附带了 IDC 和 IDAPython 脚本引擎,可以用于自动化一些重复性任务。
IDC 示例
虽然 IDC 已经比较陈旧,但它的优点是内置于 IDA 中,不需要任何额外的软件。它也是 IDA Free中唯一可用的脚本语言。有关一些 IDC 脚本示例,请参见 IDA 安装位置中的 idc
目录:
请注意,其中一些文件不是独立的脚本,而是由 IDA 用于各种任务,例如自定义启动操作(ida.idc
,onload.idc
)或批量分析(analysis.idc
)。
在我们的下载中心的“用户贡献”部分下,也有一些用户贡献的脚本。请注意,由于它们的年代和统一 IDA API 和 IDC 的大API 重构,其中一些可能需要调整才能在最新的 IDA 版本中运行。
IDAPython 示例
IDAPython 项目从一开始就有示例,您可以在源代码库中找到它们,但我们也将它们与 IDA 一起提供,在 python/examples
目录中。
提供的 index.html
可以在浏览器中打开,以查看示例列表及其简短描述,还可以查看使用的 IDAPython API/关键字列表,以帮助您找到特定 API 使用的示例。
我们的用户还创建了无数的 IDAPython 脚本和插件示例。其中一些可以在插件竞赛页面和插件库中找到,而更多的可能在代码共享网站(GitHub、GitLab 等)或个人作者的网站和博客上找到。通常,在网上搜索 API 名称可以带您找到其使用示例。
除了仅用于演示目的的示例外,IDA 还附带了一些基于 Python 的加载器和处理器模块。可以通过在 IDA 的 loader
和 procs
目录下查找 .py
文件找到它们。
原文始发于微信公众号(二进制磨剑):IDA 技巧(124)scripting-examples
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论