HackingTool开发者指南:如何5分钟给工具箱贡献一个新工具
【免费下载链接】hackingtoolALL IN ONE Hacking Tool For Hackers项目地址: https://gitcode.com/GitHub_Trending/ha/hackingtool
HackingTool 是一款集 20 个分类、185+ 安全工具于一身的"全能型黑客工具箱"。本文是 HackingTool 开发者指南,带你用约 5 分钟走通"给工具箱贡献一个新工具"的完整流程:从理解架构、编写工具类,到注册进主菜单并提交,零基础也能上手。
先认识 HackingTool:你的新工具将放在哪里
HackingTool 的架构非常直观,整个工具箱由三层组成:
| 层级 | 所在位置 | 职责 |
|---|---|---|
| 🎯 主入口 | hackingtool.py | 渲染主菜单、搜索(/)、标签过滤(t)、任务推荐(r) |
| 📂 分类 | tools/ | 每个.py文件对应一个分类,如 tools/mobile_security.py |
| ⚙️ 基类 | core.py | HackingTool(单个工具)与HackingToolsCollection(分类集合) |
新工具的正确位置是tools/目录下某个分类文件——每个工具只是一个继承自HackingTool的类,几行代码即可完成。
5分钟上手:4步完成一个新工具的贡献
第 1 步:获取代码并本地跑起来
克隆仓库到本地,安装后即可运行,确认菜单正常显示:
git clone https://gitcode.com/GitHub_Trending/ha/hackingtool cd hackingtool sudo python3 install.py hackingtool环境要求:Python 3.10+,支持 Linux / Kali / macOS。若依赖有变化,安装脚本会自动处理 requirements.txt。
第 2 步:看懂两个核心基类(2分钟)
整个工具箱的"骨架"都在 core.py 里:
HackingTool:单个工具的基类,定义了Install / Run / Update / Open Folder四个标准动作和菜单循环;HackingToolsCollection:分类的基类,持有一个TOOLS列表,负责渲染分类内的工具表格。
一个工具类只需声明这些类属性(参考 tools/steganography.py 中的真实写法):
| 属性 | 作用 | 必填 |
|---|---|---|
TITLE | 菜单中显示的工具名 | ✅ |
DESCRIPTION | 一行功能说明,显示在列表右侧 | ✅ |
INSTALL_COMMANDS | 安装命令列表,按顺序执行 | ✅ |
RUN_COMMANDS | 运行命令列表 | 可选 |
PROJECT_URL | 项目主页,启用"Open Project Page"选项 | 推荐 |
SUPPORTED_OS | 如["linux", "macos"],不兼容时自动隐藏 | 可选 |
TAGS | 如["osint", "web"],参与t标签过滤 | 推荐 |
REQUIRES_ROOT/REQUIRES_WIFI | 能力标记 | 可选 |
ARCHIVED+ARCHIVED_REASON | 工具失效后移入 98 归档子菜单 | 可选 |
第 3 步:编写你的工具类
打开对应分类文件(例如 tools/others/ 下的某个文件),新增一个类即可,通常不到 10 行:
class MyAwesomeTool(HackingTool): TITLE = "MyAwesomeTool" DESCRIPTION = "一句话说明它能做什么" INSTALL_COMMANDS = ["sudo apt-get install my-awesome-tool -y"] RUN_COMMANDS = ["my-awesome-tool --help"] PROJECT_URL = "工具作者的官方主页地址" SUPPORTED_OS = ["linux", "macos"] TAGS = ["web"]然后把实例加入该文件的分类集合:
class MyCategoryTools(HackingToolsCollection): TITLE = "My Category" TOOLS = [MyAwesomeTool(), ...] # 追加到 TOOLS 列表如果工具需要交互式菜单(比如让用户选择模式),只需重写run(),用 core.py 提供的validate_input()做输入校验即可,参考 tools/steganography.py。
第 4 步:注册进主菜单(如果是新分类)
给现有分类添加工具无需改主菜单。只有新增分类时,才需要在 hackingtool.py 中做两处登记:
from tools.my_category import MyCategoryTools # ① 导入 tool_definitions = [ ... ("My Category", "🧰", "My Category"), # ② 主菜单项 ] all_tools = [ ... MyCategoryTools(), # ③ 实例化 ]两处列表需一一对应(顺序即菜单编号),改完后重启hackingtool,新分类就会出现在主菜单网格中。
第 5 步:本地验证后提交
- 运行
python3 tools/my_category.py可直接单独调试该分类; - 进入主菜单,用
/关键词搜索确认你的工具能被搜到; - 在分类内确认
✔ 已安装 / ✘ 未安装状态正常,Install、Run、Update三个动作可用; - 提交变更并发起合并请求,附上工具名称、来源和测试截图即可。
让贡献更专业的 3 个细节
- 🏷写好
TAGS:主菜单输入t可按标签过滤,标签会参与任务推荐(r)。命名参考现有习惯,如osint、scanner、c2、forensics(见 hackingtool.py 中的自动推导规则)。 - 🐧声明
SUPPORTED_OS:macOS 上不兼容的工具会自动隐藏并显示提示,避免用户误点。 - 🗄失效工具请归档而非删除:设置
ARCHIVED = True并填写ARCHIVED_REASON,工具会进入分类内的 98 号归档子菜单,保持历史可追溯。
常用文件速查表
| 文件 | 用途 |
|---|---|
| hackingtool.py | 主菜单与分类注册表tool_definitions/all_tools |
| core.py | HackingTool基类与全部可声明属性 |
| tools/ | 所有分类文件,每个文件末尾都是对应的*Tools集合类 |
| tools/tool_manager.py | 系统/项目自身的更新与卸载实现 |
| install.py | 安装脚本(自动建 venv、装依赖) |
| constants.py | 安装路径、版本与仓库地址等常量 |
常见问题 FAQ
Q:只贡献一个小脚本也可以吗?A:完全可以。HackingTool 中不少工具本身就是单个脚本,只要封装成HackingTool子类即可。
Q:工具依赖sudo或网卡,要特殊处理吗?A:声明REQUIRES_ROOT = True或REQUIRES_WIFI = True,并把sudo写进INSTALL_COMMANDS即可,基类的update()会自动识别git clone / pip / go / gem等多种安装方式来执行更新。
Q:如何验证我的改动没有破坏其他分类?A:直接运行hackingtool遍历一遍主菜单,再对每个分类输入97前检查工具列表渲染正常即可——菜单是数据驱动的,改一个文件不会影响其他分类。
⚠️ 请仅将贡献用于授权范围内的安全测试与学习研究。
按上面的 4 步走一遍,你就能在 5 分钟内把一个新工具装进 HackingTool 的 185+ 工具矩阵中。动手试试吧!
【免费下载链接】hackingtoolALL IN ONE Hacking Tool For Hackers项目地址: https://gitcode.com/GitHub_Trending/ha/hackingtool
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考