Pipal 密码分析工具的模块化检查器与分割器系统详解
检查器与分割器 - Pipal 的模块化改造
这是关于新版模块化检查器和分割器系统的说明文档。由于开发尚未完成,系统可能还会调整,我将尽量保持本文档的同步更新。
您可以从 GitHub 仓库的modular
分支获取新代码。对于这个模块化方案有任何疑问、建议或意见,请随时联系我。
检查器
检查器是 Pipal 最核心的组件,负责对密码执行分析操作。最初所有检查器都内嵌在主脚本中,导致维护困难和扩展障碍。现在它们被解耦为独立的模块化组件。
其配置方式类似于 Apache 在某些 Linux 发行版中处理虚拟主机的方式:
checkers_available
目录存放所有可用检查器checkers_enabled
目录存放启用中的检查器
通过创建符号链接即可激活检查器。这种设计允许用户按需启用功能,例如不需要 Hashcat 掩码分析的用户可以节省处理器资源。虽然对小规模密码列表影响不大,但对海量数据处理时优势明显。
新版检查器的另一优势是易于扩展。以checkers_available/windows_complexity_checker.rb
为例,仅需 25 行代码就能实现 Windows 默认复杂度规则的检查。要创建自定义规则,只需复制该文件、修改正则表达式、更新名称和描述文本,最后创建符号链接即可。
对于基于列表的检查更简单,参考 15 行代码的colour_checker.rb
,只需提供名称、词表和描述即可自动生成检查器。
使用--list-checkers
参数可查看所有可用检查器的简要说明。未来计划扩展该功能,支持显示每个检查器的详细说明文档。
分割器
当需要处理包含额外字段(如用户名)的密码文件时,分割器就派上用场了。默认情况下系统将每行视为独立密码,但自定义分割器可以识别密码和其他数据字段。
示例分割器pipe_pass_user.rb
处理管道符分隔的文件格式(密码|用户名),其核心是一个包含静态方法split
的类,该方法将每行拆分为密码和用户名:密码作为主返回值,用户名存入关联数组。目前只有username.rb
检查器能处理这个附加字段,它会分析用户名与密码的关联性,其他检查器则自动忽略额外数据。
同一时间只能启用一个分割器,通过在主目录创建指向custom_splitter.rb
的符号链接来激活指定分割器。更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码

评论