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智能小助手)
公众号二维码

posted @ 2025-07-26 22:16  qife  阅读(2)  评论(0)    收藏  举报