本文档提供了 HackingTool 基类 的全面概述,它是 hackingtool 框架中所有独立工具的基础。本文档解释了该类的结构、关键属性、方法以及如何扩展它来创建自定义工具。有关工具集合的组织方式,请参阅 HackingToolsCollection 类。
HackingTool 类 为在框架内定义、安装、运行和管理黑客工具提供了标准化的接口。它处理通用功能,例如显示信息、管理安装命令以及为所有工具提供一致的用户界面。
来源: core.py26-138
HackingTool 类定义了几个必须由子类设置的类属性,以自定义行为
| 属性 | 类型 | 描述 |
|---|---|---|
TITLE | str | 工具的标题,显示在菜单中 |
DESCRIPTION | str | 工具功能的描述 |
INSTALL_COMMANDS | List[str] | 安装工具的 shell 命令 |
INSTALLATION_DIR | str | 工具安装的目录 |
UNINSTALL_COMMANDS | List[str] | 卸载工具的 shell 命令 |
RUN_COMMANDS | List[str] | 运行工具的 shell 命令 |
OPTIONS | List[Tuple[str, Callable]] | 工具的自定义选项 |
PROJECT_URL | str | 工具项目页面的 URL |
来源: core.py28-40
构造函数初始化一个 HackingTool 实例,并提供可选参数
options: 除了默认的“安装/运行”之外的附加菜单选项installable: 工具是否可安装(添加“安装”选项)runnable: 工具是否可运行(添加“运行”选项)来源: core.py42-54
这些方法负责显示有关工具的信息并向用户呈现菜单选项。 show_options 显示可用操作的菜单并处理用户输入。
来源: core.py56-90
这些方法负责工具的安装过程
before_install: 安装开始前调用install: 执行 INSTALL_COMMANDS 中的命令after_install: 安装完成后调用来源: core.py92-103
这些方法负责工具的卸载过程
before_uninstall: 卸载前调用,返回一个布尔值指示是否继续uninstall: 执行 UNINSTALL_COMMANDS 中的命令after_uninstall: 卸载完成后调用来源: core.py105-117
这些方法负责工具的执行过程
before_run: 执行前调用run: 执行 RUN_COMMANDS 中的命令after_run: 执行完成后调用来源: core.py119-130
这些方法提供实用函数
is_installed: 检查工具是否已安装(未实现)show_project_page: 在 Web 浏览器中打开工具的项目页面来源: core.py132-137
HackingTool 类是框架中所有独立工具的基类。它在整体类层次结构中的位置如下:
来源: core.py26-138 core.py140-176 tools/ddos.py9-134 tools/webattack.py8-112
以下是通过扩展 HackingTool 类 来实现基本工具的方法
UFONet 类扩展了 HackingTool 类,并重写了类属性以定义工具的标题、描述、安装命令、运行命令和项目 URL。基类提供了安装和运行该工具的功能。
一些工具需要为 run 方法提供自定义行为,这可以通过重写它来实现
在 Dirb 类中,重写了 run 方法以提示用户输入,然后使用该输入调用 dirb 命令
有些工具可能无法安装或运行。这可以在构造函数中指定
在 Skipfish 类中,重写了构造函数以设置 installable=False
这会从工具菜单中删除“安装”选项。
HackingTool 类在整个框架中被广泛用于定义独立工具。然后使用 HackingToolsCollection 类将这些工具分组到集合中。
来源: tools/ddos.py135-137 tools/webattack.py101-112 tools/exploit_frameworks.py48-55 tools/other_tools.py32-46
要创建自定义工具,请扩展 HackingTool 类并重写必要的属性和方法
示例
然后将其添加到集合中
来源: tools/ddos.py9-44 tools/webattack.py8-29 tools/ddos.py135-137