![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
=
John the Ripper 介绍
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
![](/icons/18630dd.gif)
=
John the Ripper 是 什 么 东西? 如 果 直 译 其 名 字
![](/icons/18630de.gif)
话 就 是: JOHN
![](/icons/18630de.gif)
撕 裂 者(工 具)
![](/icons/18630dou2.gif)
翻 译
![](/icons/18630de.gif)
很 难 听 吧
![](/icons/18630dou2.gif)
实 际上 它 是
![](/icons/18630yi.gif)
个 工 具 软 件
![](/icons/18630dou.gif)
用 于 在 已 知 密文
![](/icons/18630de.gif)
情 况 下 尝 试 破 解 出 明 文
![](/icons/18630de.gif)
破 解 密码 软 件
![](/icons/18630dou2.gif)
目 前
![](/icons/18630de.gif)
最 新 版 本 是 JOHN 1.4 版
![](/icons/18630dou.gif)
主要 支 持 对 DES、 MD5 两 种 加 密 方式
![](/icons/18630de.gif)
密 文 进行 破 解 工 作
![](/icons/18630dou2.gif)
它 可 以 工 作 于 多 中不 同
![](/icons/18630de.gif)
机 型 以 及 多 种 不 同
![](/icons/18630de.gif)
操作 系 统 的 下
![](/icons/18630dou.gif)
目前 已 经 测 试 过能 够 正 常 运 行
![](/icons/18630de.gif)
操 作 系统 有: Linux x86, FreeBSD x86, Solaris 2.x SPARC, OSF/1 Alpha, DOS, WinNT/Win95
![](/icons/18630dou2.gif)
在 1998 年 年 初
![](/icons/18630dou.gif)
JOHN1.4 已 经针 对 INTEL
![](/icons/18630de.gif)
MMX 处 理 器 进 行 了 针 对 性
![](/icons/18630de.gif)
优化, 速 度 可 快 30% 左 右
![](/icons/18630dou2.gif)
如 果 你 想 了 解最新
![](/icons/18630de.gif)
动 态
![](/icons/18630dou.gif)
请 访 问: http://www.false.com/security/john, 这 里 是 JOHN
![](/icons/18630de.gif)
窝 点
------------------------------
使 用 预 览
------------------------------
以 下 快 速 入 门 针 对 PC 用 户
![](/icons/18630dou2.gif)
假 设 你 已 经 取 得 了 某 个 SHADOW 文 件
![](/icons/18630dou.gif)
并 且被 存 为 SHADOW.TXT 文 件
![](/icons/18630dou2.gif)
在 你
![](/icons/18630de.gif)
硬 盘 中 建
![](/icons/18630yi.gif)
个 新
![](/icons/18630de.gif)
目 录
![](/icons/18630dou.gif)
如 HACK 进 入 这 个 目 录
![](/icons/18630dou.gif)
将 JOHN1.4 在 此 目 录 中 解 开
![](/icons/18630dou.gif)
将 SHADOW.TXT 同 样 拷入 此 目 录
![](/icons/18630dou.gif)
这 样 我 们 就 完 成 了 解 密
![](/icons/18630de.gif)
准 备 工 作
现 在 开 始 进 行 解 密 步 骤:
先 消 灭 FOOL USER
![](/icons/18630dou.gif)
就 是 “笨 蛋 用 户”:
john -single shadow.txt
再 消 灭 稍 微 聪 明
![](/icons/18630yi.gif)
点
![](/icons/18630de.gif)
用 户:
john -wordfile:password.lst -rules shadow.txt
最 后 进 行 大 屠 杀:
john -i:all shadow.txt
当 然 了
![](/icons/18630dou.gif)
第 3 步 可 能 要 你
![](/icons/18630de.gif)
电 脑 跑 上 10000 年
解 释:
第
![](/icons/18630yi.gif)
步 主 要 针 对 笨 蛋 而 进 行
![](/icons/18630de.gif)
![](/icons/18630dou.gif)
原 理 是 根 据 用 户
![](/icons/18630de.gif)
名 称
![](/icons/18630dou.gif)
加 上 常 见
![](/icons/18630de.gif)
变 化 而 猜 测 密 码
![](/icons/18630yi.gif)
般 所 谓
![](/icons/18630de.gif)
笨 蛋 是 这 样
![](/icons/18630de.gif)
![](/icons/18630dou.gif)
比 如 此 用 户 叫 fool
![](/icons/18630dou.gif)
而 他
![](/icons/18630de.gif)
密 码 是 fool123、 fool1、 loof、 loof123、 lofo...
![](/icons/18630dou2.gif)
这 样
![](/icons/18630de.gif)
用 户
![](/icons/18630yi.gif)
般 在
![](/icons/18630yi.gif)
分 钟 内 会 被 全 部 消 灭
第 2 部 是 使 用 字 典 文 件 来 进 行 解 密
![](/icons/18630dou.gif)
不 为 什 么
![](/icons/18630dou.gif)
只 是 因 为 设 置 密 码
![](/icons/18630de.gif)
是 人 而 不 是 机 器
![](/icons/18630dou.gif)
如 人 们 常 用 hello、 superman、 cooler、 asdfgh、 123456 等 作 为 自 己
![](/icons/18630de.gif)
密 码
![](/icons/18630dou2.gif)
而 -rules 参 数 则 在 此 基 础 上 再 加 上 些 变 化
![](/icons/18630dou.gif)
如 字 典 中 有 单 词 cool
![](/icons/18630dou.gif)
则 JOHN 还 会 尝 试 使 用 cooler、 CoOl、 Cool 等 单 词 变 化 进 行 解 密
![](/icons/18630yi.gif)
般 视 SHADOW 中
![](/icons/18630de.gif)
用 户 多 少 及 你
![](/icons/18630de.gif)
字 典 大 小、 你
![](/icons/18630de.gif)
机 器 速 度
![](/icons/18630dou.gif)
解 密 时 间 从 几 小 时 到 几 天 不 等
第 3 步 是 纯 粹
![](/icons/18630de.gif)
碰 运 气 解 法
![](/icons/18630dou.gif)
主 要 原 理 是 遍 历 所 有 可 能
![](/icons/18630de.gif)
密 匙 空 间
![](/icons/18630dou2.gif)
JOHN 会 尝 试 以 95 个 字 母 (因 为 从 键 盘 上 只 能 输 入 95 种 可 能
![](/icons/18630de.gif)
键 值) 进 行 1-8 (8 个 字 母 是 密 码
![](/icons/18630de.gif)
最 长 值
![](/icons/18630dou.gif)
所 有 密 码 中 8 位 以 后
![](/icons/18630de.gif)
部 分 均 不 会 被 使 用
![](/icons/18630dou.gif)
目 前
![](/icons/18630de.gif)
DES 加 密 体 系 就 是 这 样
![](/icons/18630de.gif)
) 个 长 度
![](/icons/18630de.gif)
所 有 组 合
![](/icons/18630dou.gif)
这 是 很 漫 长
![](/icons/18630de.gif)
过 程
![](/icons/18630dou.gif)
我 们 计 算
![](/icons/18630yi.gif)
下: 以 仅 攻 击
![](/icons/18630yi.gif)
个 用 户 为 例
![](/icons/18630dou.gif)
MMX200 微 机
![](/icons/18630yi.gif)
台 (攻 击 速 度 18000 次/秒)
![](/icons/18630dou.gif)
假 设 遍 历 50%
![](/icons/18630de.gif)
密 码 空 间
![](/icons/18630dou.gif)
需 要
![](/icons/18630de.gif)
时 间 为:
(95^8+95^7+95^6+95^7+95^6+.....+95^1)/2/18000
=6.7047809E15/18000
=3.7248783E11秒
=10346884.19小时
=4311201.745天
=11811.5年
还 好 在 JOHN 可 以 进 行 自 动 预设 取 值
![](/icons/18630dou2.gif)
所 以 这 样 破 解 密 码 还 是 可 能
![](/icons/18630de.gif)
![](/icons/18630yi.gif)
般
![](/icons/18630de.gif)
经 验 是 20 个 小 时 可 能 破 解
![](/icons/18630yi.gif)
个
![](/icons/18630dou.gif)
可 能 什 么 都 没 有
本 文 后 面 介 绍
![](/icons/18630de.gif)
经 验 可 以 帮 助 你 尽快 地 进 行 破 解
--------------------------
详 细 功 能 说 明
--------------------------
John the Ripper 1.4 是 目 前比 较 好
![](/icons/18630de.gif)
破 解 密 码 工 具
![](/icons/18630dou.gif)
在 解 密 过 程中 会 自 动 定 时 存 盘, 你 也 可 以 强 迫 中 断解 密 过 程 (用 ctrl+c)
![](/icons/18630dou.gif)
下 次 还 可 以 从 中 断
![](/icons/18630de.gif)
地 方 继 续 进 行 下 去 (john -restore)
![](/icons/18630dou.gif)
任 何时 候 敲 击 键 盘
![](/icons/18630dou.gif)
你 就 可 以 看 到 整 个 解密
![](/icons/18630de.gif)
进 行 情 况
![](/icons/18630dou.gif)
所 有 已 经 被 破 解
![](/icons/18630de.gif)
密码 会 被 保 存 在 当 前 目 录 下
![](/icons/18630de.gif)
JOHN.POT 文 件中
![](/icons/18630dou.gif)
SHADOW 中 所 有 密 文 相 同
![](/icons/18630de.gif)
用 户 会 被 归成
![](/icons/18630yi.gif)
类
![](/icons/18630dou.gif)
这 样 JOHN 就 不 会 进 行 无 谓
![](/icons/18630de.gif)
重复 劳 动 了
![](/icons/18630dou2.gif)
在 程 序
![](/icons/18630de.gif)
设 计 中
![](/icons/18630dou.gif)
关 键
![](/icons/18630de.gif)
密码 生 成
![](/icons/18630de.gif)
条 件 被 放 在 JOHN.INI 文 件 中
![](/icons/18630dou.gif)
你可 以 自 行 修 改 设 置
![](/icons/18630dou.gif)
不 仅 支 持 单 词 类型
![](/icons/18630de.gif)
变 化
![](/icons/18630dou.gif)
而 且 支 持 自 己 编 写 C
![](/icons/18630de.gif)
小
![](/icons/18630chengxu.gif)
限 制 密 码
![](/icons/18630de.gif)
取 值 方 式
![](/icons/18630dou2.gif)
唯
![](/icons/18630de.gif)
遗 憾是: 在 自 动 产 生 密 码
![](/icons/18630de.gif)
遍 历 解 密 方 法中 不 支 持 -rules 选 项
![](/icons/18630dou2.gif)
不 过 还 好 有 方 法 可以 克 服
命令行
![](/icons/18630de.gif)
参数功能解释
-----------------------
命令行方式: john [-功能选项] [密码文件名]
功 能 选 项 (所 有
![](/icons/18630de.gif)
选 项 均 对 大 小 写 不敏 感
![](/icons/18630dou.gif)
而 且 也 不 需 要 全 部 输 入
![](/icons/18630dou.gif)
只 要 在保 证 不 和 其 他 参 数 冲 突
![](/icons/18630de.gif)
前 提 下 输 入即 可
![](/icons/18630dou.gif)
如 -restore 参 数 只 要 输 入 -res 即 可):
-pwfile:[,..] 用 于 指 定 存 放 密 文 所 在
![](/icons/18630de.gif)
文 件 名
![](/icons/18630dou.gif)
(可 以 输 入 多 个
![](/icons/18630dou.gif)
文 件 名
![](/icons/18630yi.gif)
我 “
![](/icons/18630dou.gif)
” 分 隔
![](/icons/18630dou.gif)
也 可 以 使 用 * 或 者 ? 这 两 个 通 配 符 引 用
![](/icons/18630yi.gif)
批 文 件)
![](/icons/18630dou2.gif)
也 可 以 不 使 用 此 参 数
![](/icons/18630dou.gif)
将 文 件 名 放 在 命 令 行
![](/icons/18630de.gif)
最 后 即 可
-wordfile:<字典文件名> -stdin 指 定
![](/icons/18630de.gif)
用 于 解 密 用
![](/icons/18630de.gif)
字 典 文 件 名
![](/icons/18630dou2.gif)
你 也 可 以 使 用 STDIO 来 输 入
![](/icons/18630dou.gif)
就 是 在 键 盘 中 输 入
-rules 在 解 密 过 程 中 使 用 单 词 规 则 变 化 功 能
![](/icons/18630dou2.gif)
如 将 尝 试 cool 单 词
![](/icons/18630de.gif)
其 他 可 能
![](/icons/18630dou.gif)
如 COOLER、 Cool 等
![](/icons/18630dou.gif)
详 细 规 则 可 以 在 JOHN.INI 文 件 中
![](/icons/18630de.gif)
[List.Rules:Wordlist] 部 分 查 到
![](/icons/18630dou.gif)
我 们 在 下 面 详 细 解 释
-incremental[:<模式名称>] 使 用 遍 历 模 式
![](/icons/18630dou.gif)
就 是 组 合 密 码
![](/icons/18630de.gif)
所 有 可 能 情 况
![](/icons/18630dou.gif)
同 样 可 以 在 JOHN.INI 文 件 中
![](/icons/18630de.gif)
[Incremental:*****] 部 分 查 到
![](/icons/18630dou.gif)
我 们 在 下 面 详 细 解 释
-single 使 用 单
![](/icons/18630yi.gif)
模 式 进 行 解 密
![](/icons/18630dou.gif)
主 要 是 根 据 用 户 名 产 生变 化 来 猜 测 解 密
![](/icons/18630dou.gif)
可 以 消 灭 笨 蛋 用 户
![](/icons/18630dou2.gif)
其 组 合 规 则 可 以 在 JOHN.INI 文 件 中
![](/icons/18630de.gif)
[List.Rules:Single] 部 分 查 到
![](/icons/18630dou.gif)
我 们 在 下 面 详 细 解 释
-external:<模式名称> 使 用 自 定 义
![](/icons/18630de.gif)
扩 展 解 密 模 式, 你 可 以 在 john.ini 中 定 义 自 己 需 要
![](/icons/18630de.gif)
密 码 组 合 方 式
![](/icons/18630dou2.gif)
JOHN 也 在 INI 文 件 中 给 出 了几 个 示 例
![](/icons/18630dou.gif)
在 INI 文 件
![](/icons/18630de.gif)
[List.External:******] 中 所 定 义
![](/icons/18630de.gif)
自 订 破 解 功 能
-restore[:<文件名>] 继 续 上 次
![](/icons/18630de.gif)
破 解 工 作
![](/icons/18630dou.gif)
JOHN 被 中 断 后
![](/icons/18630dou.gif)
当 前
![](/icons/18630de.gif)
解 密 进 度 情 况 被 存 放 在 RESTORE 文 件 中
![](/icons/18630dou.gif)
你 可 以 拷 贝 这 个 文 件 到
![](/icons/18630yi.gif)
个 新
![](/icons/18630de.gif)
文 件 中
![](/icons/18630dou2.gif)
如 果 参 数 后 不 带 文 件 名
![](/icons/18630dou.gif)
J O H N 默 认 使 用 RESTORE 文 件
-makechars:<文件名> 制 作
![](/icons/18630yi.gif)
个 字 符 表, 你 所 指 定
![](/icons/18630de.gif)
文 件 如 果 存 在
![](/icons/18630dou.gif)
则 将 会 被 覆 盖
![](/icons/18630dou2.gif)
JOHN 尝 试 使 用 内 在 规 则 在 相 应 密 匙 空 间 中 生 成
![](/icons/18630yi.gif)
个 最 有 可 能 击 中
![](/icons/18630de.gif)
密 码 组 合
![](/icons/18630dou.gif)
它 会 参 考 在 JOHN.POT 文 件 中 已 经 存 在
![](/icons/18630de.gif)
密 匙
-show 显 示 已 经 破 解 出
![](/icons/18630de.gif)
密 码
![](/icons/18630dou.gif)
因 为 JOHN.POT 文 件 中 并 不 包 含 用 户 名
![](/icons/18630dou.gif)
同 时 你 应 该 输 入 相 应
![](/icons/18630de.gif)
包 含 密 码
![](/icons/18630de.gif)
文 件 名
![](/icons/18630dou.gif)
JOHN 会 输 出 已 经 被 解 密
![](/icons/18630de.gif)
用 户 连 同 密 码
![](/icons/18630de.gif)
详 细 表 格
-test 测 试 当 前 机 器 运 行 JOHN
![](/icons/18630de.gif)
解 密 速 度
![](/icons/18630dou.gif)
需 要 1 分 钟
![](/icons/18630dou.gif)
它 会 得 出 在 当 前
![](/icons/18630de.gif)
情 况 下 解 密
![](/icons/18630de.gif)
各 种 可 能 情 况 下 相 应
![](/icons/18630de.gif)
解 密 速 度
![](/icons/18630dou.gif)
如 同 时 解 密 100 个 用 户 时
![](/icons/18630de.gif)
平 均 速 度
![](/icons/18630dou.gif)
使 用 遍 历 法 解 密 模 式 时 解 密
![](/icons/18630de.gif)
速 度
![](/icons/18630dou2.gif)
salts 指 用 户 个 数
![](/icons/18630dou.gif)
如 果 给 出
![](/icons/18630de.gif)
对 于 100 个 用 户 解 密
![](/icons/18630de.gif)
平 均 速 度 为 18000 次/秒
![](/icons/18630dou.gif)
那 么 表 明 同 时 对 100 个 用 户 解 密
![](/icons/18630dou.gif)
解 密
![](/icons/18630de.gif)
速 度 为 每 个 180 次/秒
![](/icons/18630dou2.gif)
因 为 绝 大 多 数
![](/icons/18630de.gif)
时 间 被 用 于 密 匙 比 较 过 程 中 了
![](/icons/18630dou2.gif)
所 以 应 该 对 用 户 进 行 挑 选
-users:[
![](/icons/18630dou.gif)
..] 只 破 解 某 类 型
![](/icons/18630de.gif)
用 户 或 者 属 于 某 个 组
![](/icons/18630de.gif)
用 户
![](/icons/18630dou2.gif)
如 果 得 到
![](/icons/18630de.gif)
PASSWD 文 件 没 有 包 含 密 文
![](/icons/18630dou.gif)
那 么 在 得 到 SHADOW 后 应 该 进 行 组 合
![](/icons/18630dou.gif)
JOHN
![](/icons/18630de.gif)
附 带 程 序 UNSHADOW.EXE 可 以 完 成 这
![](/icons/18630yi.gif)
过 程
![](/icons/18630dou.gif)
当 然 了
![](/icons/18630dou.gif)
你 也 可 以 手 工 做
![](/icons/18630yi.gif)
般
![](/icons/18630de.gif)
能 够 进 入 CSH
![](/icons/18630de.gif)
用 户 都 是 解 密
![](/icons/18630de.gif)
首 选 对 象
![](/icons/18630dou2.gif)
也 可 以 要 UID=0
![](/icons/18630de.gif)
ROOT 级 别
![](/icons/18630de.gif)
用 户
-shells:[!][
![](/icons/18630dou.gif)
..] 和 上 面
![](/icons/18630de.gif)
参 数
![](/icons/18630yi.gif)
样
![](/icons/18630dou.gif)
这
![](/icons/18630yi.gif)
选 项 可 以 选 择 对 所 有 可 以 使 用 shell
![](/icons/18630de.gif)
用 户 进 行 解 密
![](/icons/18630dou.gif)
对 其 他 用 户 不 予 理 睬
![](/icons/18630dou2.gif)
“!” 就 是 表 示 不 要 某 些 类 型
![](/icons/18630de.gif)
用 户
![](/icons/18630dou2.gif)
例 如: “ -shells:csh”
-salts:[!] 只 选 择 解 密 用 户 大 于
![](/icons/18630de.gif)
帐 号
![](/icons/18630dou.gif)
可 以 使 你 得 到 选 择
![](/icons/18630de.gif)
权 利
![](/icons/18630dou.gif)
尽 快
![](/icons/18630de.gif)
得 到 所 需 要
![](/icons/18630de.gif)
用 户
![](/icons/18630de.gif)
PASS
-lamesalts 指 定 用 户 中 密 码 所 使 用
![](/icons/18630de.gif)
cleartext
![](/icons/18630dou2.gif)
(我 不 大 清 楚 此 功 能
![](/icons/18630de.gif)
作 用)
-timeout:<几分钟> 指 定 解 密 持 续
![](/icons/18630de.gif)
时 间 是 几 分 钟
![](/icons/18630dou.gif)
到 时 间 JOHN 自 动 停 止 运 行
-list 在 解 密 过 程 中 在 屏 幕 上 列 出 所 有 正 在 尝 试 使 用
![](/icons/18630de.gif)
密 码
![](/icons/18630dou.gif)
建 议 不 要 使 用
![](/icons/18630dou.gif)
它 会 将 大 部 分 时 间 浪 费 在 显 示 上
![](/icons/18630dou.gif)
极 大 地 拖 慢 解 密 速 度
![](/icons/18630yi.gif)
般 只 是 适 用 于 重 定 向 输 出 到 文 件 后
![](/icons/18630dou.gif)
检 验 你 所 设 定
![](/icons/18630de.gif)
某 些 模 式 是 否 正 常
-beep -quiet 当 解 密 出 密 码 时 是 否 要 让 PC 喇 叭 叫
![](/icons/18630yi.gif)
下
![](/icons/18630dou.gif)
以 提 醒 你
-noname -nohash 不 使 用 内 存 来 保 存 “用 户 名” 等 内 容
-des -md5 指 定 使 用
![](/icons/18630de.gif)
解 密 方 式 是 解 DES 还 是 MD5
![](/icons/18630dou.gif)
对 于 解 密 DES 密 码 不 用 理 会 这
![](/icons/18630yi.gif)
选 项
--------------------------------------------------------------------------------
---------------------------
john 解 密 模 式 详 解
---------------------------
![](/icons/18630yi.gif)
、“Single Crack” 模式 --- 即“简单解密模式”
这
![](/icons/18630yi.gif)
模 式 是 “john”
![](/icons/18630de.gif)
独 到
![](/icons/18630de.gif)
地 方
![](/icons/18630dou.gif)
主要 原 理 是 根 据 用 户 名 猜 测 其 可 能
![](/icons/18630de.gif)
密码
![](/icons/18630dou.gif)
当 然 了
![](/icons/18630dou.gif)
解 密 者 是 计 算 机 而 不 是人
![](/icons/18630dou.gif)
所 以 需 要 人 为 定 义 相 应
![](/icons/18630de.gif)
模 式 内容
![](/icons/18630dou2.gif)
其 模 式
![](/icons/18630de.gif)
定 义 在 john.ini 中
![](/icons/18630de.gif)
[List.Rules:Single] 部 分
![](/icons/18630dou.gif)
我 们 选 取 前 几 行 给大 家 做
![](/icons/18630yi.gif)
个 解 释
![](/icons/18630dou.gif)
假 设 有
![](/icons/18630yi.gif)
用 户 名 为 fool:
[List.Rules:Single]
###
# Single crack mode rules, extended Crack syntax
###
# Simple rules come first...
:[:cl]-----------------------------------注释1
# These were not
![](/icons/18630include.gif)
d in crackers I've seen, but are pretty efficient
# so I
![](/icons/18630include.gif)
them near the beginning
>6x06------------------------------------注释2
>7lx07-----------------------------------注释3
>6/?ulx06--------------------------------注释4
>5x05------------------------------------注释5
在 john.ini 中 起 头 为 #
![](/icons/18630de.gif)
行 为 注 释 行
![](/icons/18630chengxu.gif)
在 遇 到 此 行 时 自 动 跳 过
“:[:cl]” 此 行 表 示 使 用 用 户 名 自 身 作 为 密 码 进 行 尝 试
![](/icons/18630dou.gif)
即 fool
![](/icons/18630dou.gif)
而 “[:cl]” 在 保 持 原 字 母 不 变
![](/icons/18630de.gif)
前 提 下
![](/icons/18630dou.gif)
首 先 强 制 第
![](/icons/18630yi.gif)
个字 母 大 写 “c”
![](/icons/18630dou.gif)
其 余 字 母 均 变 为 小 写 “l”
![](/icons/18630dou.gif)
即: Fool, 也 就 是 说 此 行 导 致 john 尝 试 使 用 fool 和 Fool 两 个 单 词 进 行 解 密
“>6x06” 表 示 当 用 户 名 大 于 6 个 字 符
![](/icons/18630de.gif)
时 候
![](/icons/18630dou.gif)
从 第 0 个 算 起
![](/icons/18630dou.gif)
截 断 至 第 5 个
![](/icons/18630dou.gif)
则 共 保 留 下 6 个 字 母
![](/icons/18630dou.gif)
其 余 丢 弃 不 用
![](/icons/18630dou2.gif)
如: 用 户 名 为 foolers
![](/icons/18630dou.gif)
则 会 产 生 如 下 被 尝 试
![](/icons/18630de.gif)
密 码: 即 fooler
“>7lx07” 和 上 面 相 同
![](/icons/18630dou.gif)
此 行 对 于 >7
![](/icons/18630de.gif)
用 户 名
![](/icons/18630dou.gif)
截 断 至 7 个 字 母
![](/icons/18630dou.gif)
而 且 使 用 “l” 强 制 使 用 小 写 字 母
“>6/?ulx06” 表 示 对 于 长 度 >6
![](/icons/18630de.gif)
用 户 名
![](/icons/18630dou.gif)
截 断 至 6 个
![](/icons/18630dou.gif)
强 制 小 写
![](/icons/18630dou.gif)
“/?u” 则 表 示 只 有 在 用 户 名 中包 含 小 写 字 母 “u” 才 有 效
![](/icons/18630dou.gif)
否 则 跳 过 整 条 规 则
![](/icons/18630dou.gif)
不 进 行 尝 试
![](/icons/18630dou2.gif)
例 如 对 于 “foolers” 此 规 则 不 起 作 用
![](/icons/18630dou.gif)
因 为 “foolers” 中 不 包 含 小 写 字 母 “u”
“>5x05” 和 上 几 个 例 子 相 同
![](/icons/18630dou.gif)
不 用 解 释 了
其 余 部 分 自 己 参 考 john.ini
![](/icons/18630dou.gif)
具 体 参 数解 释 如 下:
john.ini中
![](/icons/18630de.gif)
每
![](/icons/18630yi.gif)
行均由“条件指令”+“规则指令”组成
位 于 起 始 部 分
![](/icons/18630de.gif)
“条 件 指 令”:
: 表示保持字母不变
![](/icons/18630dou2.gif)
表 示 满 足 条 件
![](/icons/18630de.gif)
是 字 符 长 度 >n 表 示 满 足 条 件
![](/icons/18630de.gif)
是 字 符 长 度 >n
![](/icons/18630de.gif)
单 词, n
![](/icons/18630de.gif)
取 值 范 围 为 0-9
![](/icons/18630dou2.gif)
^x 表 示 在 某 单 词 前 部 添 加 字 母 “x”
![](/icons/18630dou2.gif)
$y 表 示 在 某 单 词 尾 部 加 上
![](/icons/18630yi.gif)
个 字 母“y”
![](/icons/18630dou2.gif)
l 强 制 整 个 单 词 全 为 小 写 字
![](/icons/18630dou2.gif)
u 强 制 整 个 单 词 全 为 大 写 字
![](/icons/18630dou2.gif)
c 强 制 单 词 第
![](/icons/18630yi.gif)
个 字 为 大 写 (单 词
![](/icons/18630de.gif)
其 余 部 分 不 受 到 影 响)
r 将 单 词 反 序 排 列: 如 “fool” -> “loof”
![](/icons/18630dou2.gif)
d 进 行 单 词 加 倍: 如 “fool” -> “foolfool”
![](/icons/18630dou2.gif)
f 进 行 单 词 加 倍
![](/icons/18630dou.gif)
后 部 单 词 反 向 写: 如 “fool” -> “foolloof”
![](/icons/18630dou2.gif)
p 以
![](/icons/18630yi.gif)
个 字 母 为 限 度
![](/icons/18630dou.gif)
在 保 持 单 词 不 变
![](/icons/18630de.gif)
前 提 下
![](/icons/18630dou.gif)
尝 试 单 词
![](/icons/18630de.gif)
所 有 组 成 字 母
![](/icons/18630de.gif)
大 小 写 组 合
![](/icons/18630dou.gif)
如 (“fool” -> “Fool”、 “fOol”、 “foOl”、 “fooL)”
![](/icons/18630dou2.gif)
onx 从 某 单 词
![](/icons/18630de.gif)
第 n (由 0 开 始 计 数) 个 字 母 开 始
![](/icons/18630dou.gif)
将 原 来
![](/icons/18630de.gif)
字 母 取 代 为 字 母 “x”
![](/icons/18630dou2.gif)
例 如: “o1A” 则 对 于 “fool” 则 产 生 “fAol”
![](/icons/18630dou2.gif)
inx 从 某 单 词
![](/icons/18630de.gif)
第 n (由 0 开 始 计 数) 个 字 母 开 始
![](/icons/18630dou.gif)
在 字 母 前 插 入 以 字 母 “x”
![](/icons/18630dou2.gif)
例 如: “i1A” 则 对 于 “fool” 则 产 生 “fAool”
![](/icons/18630dou2.gif)
备 注:如 果 指 定
![](/icons/18630de.gif)
值 n> 单 词 总 长 度, 则 相 应
![](/icons/18630de.gif)
插 入 字 符 将 会 添 加 到 单 词
![](/icons/18630de.gif)
尾 部
![](/icons/18630dou2.gif)
xnm 从 单 词
![](/icons/18630de.gif)
第 n 位 开 始
![](/icons/18630dou.gif)
将 单 词 截 成 最 长 度 为 m 个
![](/icons/18630de.gif)
单 词
![](/icons/18630dou2.gif)
具 体
![](/icons/18630de.gif)
例 子 就 不 列 举 了
![](/icons/18630dou.gif)
上 面 已 经 谈 过 了
以 下 是
![](/icons/18630yi.gif)
些 用 于 字 母 变 化
![](/icons/18630de.gif)
命 令:
sxy 字 母 替 换
![](/icons/18630dou.gif)
将 某 单 词 中
![](/icons/18630de.gif)
所 有 为 “x”
![](/icons/18630de.gif)
字 母 替 换 成 字 母 “y”
![](/icons/18630dou2.gif)
s?cy 用 字 母 “y” 来 替 换 单 词 中
![](/icons/18630de.gif)
所 有 包 含 于 “c 字 母 组” 中
![](/icons/18630de.gif)
字 母
![](/icons/18630dou2.gif)
关 于“字 母 组” 下 面 讨 论
![](/icons/18630dou2.gif)
@x 删 除 单 词 中 所 有 “x” 字 母
![](/icons/18630dou2.gif)
@?c 删 除 单 词 中 所 有 包 含 于 “c 字 母 组” 中
![](/icons/18630de.gif)
字 母
![](/icons/18630dou2.gif)
!y 跳 过 所 有 包 含 含 有 字 母 “y”
![](/icons/18630de.gif)
单 词
![](/icons/18630dou2.gif)
!?c 跳 过 所 有 包 含 含 有 “c 字 母 组” 中 字 母
![](/icons/18630de.gif)
单 词
![](/icons/18630dou2.gif)
/x 包 含 字 母 “x”
![](/icons/18630de.gif)
单 词 有 效
![](/icons/18630dou2.gif)
/?c 包 含 在 “c 字 母 组” 中 字 母
![](/icons/18630de.gif)
单 词 为 有 效
![](/icons/18630dou2.gif)
=nx 所 有 指 定 位 置 n
![](/icons/18630de.gif)
字 母 为 “x”
![](/icons/18630de.gif)
单 词 才 有 效
![](/icons/18630dou2.gif)
=n?c 所 有 指 定 位 置 n
![](/icons/18630de.gif)
字 母 包 含 于 “c 字 母 组”
![](/icons/18630de.gif)
单 词 才 有 效
![](/icons/18630dou2.gif)
备 注: 和 上 面
![](/icons/18630yi.gif)
样
![](/icons/18630dou.gif)
起 始 字 母 位 数 从 0 开 始 计
“字 母 组”
![](/icons/18630de.gif)
定 义 如 下:
?? 等 于 字 母 “?”
![](/icons/18630dou2.gif)
?v 等 于 所 有
![](/icons/18630de.gif)
元 音 字 母 “aeiouAEIOU”
![](/icons/18630dou2.gif)
?c 等 于 所 有
![](/icons/18630de.gif)
辅 音 字 母 “bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ”
![](/icons/18630dou2.gif)
?w 等 于 “白 色 空 格” 符 号: “ ”;
(原 文
![](/icons/18630de.gif)
whitespace 不 晓 得 如 何 解 释 好
![](/icons/18630dou.gif)
好 象 可 以 解 释 为 “空 格” 或 者 是 “EOF 结 尾 符”
![](/icons/18630dou2.gif)
)
?p 等 于 所 有 标 点 符 号 “.,:;'"?!`”
![](/icons/18630dou2.gif)
?s 等 于 特 殊 符 号 “$%^&*
![](/icons/18630kh.gif)
-_
![](/icons/18630jiadeng.gif)
|\<>
![](/icons/18630zhk2.gif)
{}#@/~”
![](/icons/18630dou2.gif)
?l 等 于 所 有 26 个 小 写 字 母 (“a” 到 “z”)
![](/icons/18630dou2.gif)
?u 等 于 所 有 26 个 大 写 字 母 (“A” 到 “Z”)
![](/icons/18630dou2.gif)
?d 等 于 10 个 阿 拉 伯 数 字 (“0” 到 “9”)
![](/icons/18630dou2.gif)
?a 包 括 所 有 26 个 字 母
![](/icons/18630de.gif)
大 小 写 形 式 (“a” 到 “z” + “A” 到 “Z”)
![](/icons/18630dou2.gif)
?x 包 括 26 个 字 母 大 小 写 + 10 个 阿 拉 伯 数 字 (“a-z”+“A-Z”+“0-9”)
备 注: 组 名 可 以 用 大 小 写
![](/icons/18630de.gif)
区 别 来 表 示 “逻 辑 非”
![](/icons/18630de.gif)
关 系
![](/icons/18630dou.gif)
小 写 表 示 肯 定
![](/icons/18630dou.gif)
大 写 表 示 否 定
![](/icons/18630dou2.gif)
例 如: 用 ?d 可 以 表 示 “所 有 数 字”, 而 大 写 ?D 就 表 示“所 有 非 数 字
![](/icons/18630de.gif)
”
以 下 是
![](/icons/18630yi.gif)
些 附 加
![](/icons/18630de.gif)
指 令:
{ 单 词 循 环 左 移
![](/icons/18630yi.gif)
位: “fool” -> “oolf”
![](/icons/18630dou.gif)
当 然 要 左 移 动 两 位 就 表 示 为 “{{”
![](/icons/18630dou.gif)
以 下 同
![](/icons/18630dou2.gif)
} 单 词 循 环 右 移
![](/icons/18630yi.gif)
位: “fool” -> “lfoo”
![](/icons/18630dou2.gif)
Dn 删 除 n 位
![](/icons/18630de.gif)
字 母 (由 0 开 计)
![](/icons/18630dou.gif)
切 开
![](/icons/18630de.gif)
右 面
![](/icons/18630de.gif)
单 词 部 分 自 动 接 上
![](/icons/18630dou.gif)
不 会 流 下 空 格
![](/icons/18630dou2.gif)
P “crack” -> “cracked”, 使 用 单 词
![](/icons/18630de.gif)
过 去 式
![](/icons/18630dou.gif)
只 针 对 小 写 单 词 有 效
![](/icons/18630dou2.gif)
G “crack” -> “cracking”, 使 用 单 词
![](/icons/18630de.gif)
现 在 进 行 式, 同 样 只 针 对 小 写 单 词 有 效
![](/icons/18630dou2.gif)
~i 根 据 键 盘
![](/icons/18630de.gif)
排 列 规 则
![](/icons/18630dou.gif)
转 换 为 “sh
![](/icons/18630if.gif)
t 键” + “对 应 键” 所 得 到
![](/icons/18630de.gif)
单 词
![](/icons/18630dou.gif)
如 “12345” -> “!@#$%”
![](/icons/18630dou2.gif)
~I 进 行 字 母 大 小 写 转 换
![](/icons/18630dou.gif)
不 影 响 数 字 及 非 字 母
![](/icons/18630de.gif)
其 他 值
![](/icons/18630dou.gif)
如 “Fool123” -> “fOOL123”
![](/icons/18630dou2.gif)
~v 将 单 词 中 所 有 元 音 字 母 转 为 小 写
![](/icons/18630dou.gif)
如 “Crack96” -> “CRaCK96”
![](/icons/18630dou2.gif)
~> 根 据 键 盘
![](/icons/18630de.gif)
排 列 方 式 将 所 有
![](/icons/18630de.gif)
字 母 右 移
![](/icons/18630yi.gif)
格
![](/icons/18630dou2.gif)
例 如 我 们 可 以 看 到 键 盘 字 母 “c” 键
![](/icons/18630de.gif)
右 边 是 “v” 键
![](/icons/18630dou.gif)
则 “Crack96” -> “Vtsvl07”
![](/icons/18630dou2.gif)
~< 和 上
![](/icons/18630yi.gif)
个
![](/icons/18630yi.gif)
样
![](/icons/18630dou.gif)
不 过 是 左 移
![](/icons/18630dou.gif)
如 “Crack96” > “Xeaxj85”
针 对 “single crack” 模 式
![](/icons/18630de.gif)
专 用 指令
专 用 指 令 有 双 字 串 支 援, 控 制 这 些 指 令 要 套 用 指 令 时 需 要 用 到 下 列
![](/icons/18630de.gif)
命 令:
1 对 第
![](/icons/18630yi.gif)
个 单 词
![](/icons/18630de.gif)
规 则
2 对 第 2 个 单 词
![](/icons/18630de.gif)
规 则
+ 对 于 完 成 以 上 1、 2 规 则 变 换 后 所 得 到
![](/icons/18630de.gif)
单 词 再 进 行 其 他
![](/icons/18630de.gif)
变 换
![](/icons/18630dou2.gif)
(要 求 “+” 必 需 只 用 在 “1” 或 “2” 的 後, 也 就 是 1+2 或 2+1)
(Chinaroot 备 注: 以 下
![](/icons/18630yi.gif)
段 我 不 太 明 白
![](/icons/18630dou.gif)
所 以 英 文 照 抄
![](/icons/18630dou.gif)
天 晓 得 “GECOS” 是 什 么 东 西
![](/icons/18630dou.gif)
!@$#$%&%$)
If you use some of the above commands in a rule, it will _disibledevent=>
上
篇文章: 浅析黑客工具包
构成和使用
下
篇文章: 黑客法宝SSS应用指南
延伸阅读
最新评论