john
我在 Kali x86 中遇到了一些问题。长话短说,我不允许john
在安装到 LV 的 Kali Linux 2.0 下运行,但我记得我能够在 VM 中的旧版 Kali 和旧版 john 中运行。错误是:
抱歉,此构建需要 SSE2
我认为 Kali 运行时有足够的 cpu,所以我查看了它,每个核心的结果如下:
root@kali:~# cat /proc/cpuinfo
model name : Intel(R) Core(TM)2 Duo CPU T5800 @ 2.00GHz
microcode : 0xa4
cpu MHz : 800.000
cache size : 2048 KB
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor
ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dtherm
并且,结果dmidecode
:
root@kali:~# dmidecode -t 4
# dmidecode 2.12
SMBIOS 2.4 present.
Handle 0x001E, DMI type 4, 35 bytes
Processor Information
Socket Designation: CPU
Type: Central Processor
Family: Pentium M
Manufacturer: Intel(R) Corporation
ID: FD 06 00 00 FF FB EB BF
Signature: Type 0, Family 6, Model 15, Stepping 13
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (FXSAVE and FXSTOR instructions supported)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Multi-threading)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Core(TM)2 Duo CPU T5800 @ 2.00GHz
Voltage: 1.6 V
External Clock: 800 MHz
Max Speed: 2000 MHz
Current Speed: 1200 MHz
Status: Populated, Enabled
Upgrade: <OUT OF SPEC>
L1 Cache Handle: 0x0021
L2 Cache Handle: 0x001F
L3 Cache Handle: Not Provided
Serial Number: Not Specified
Asset Tag: FFFF
Part Number: Not Specified
uname的结果
root@kali:~# uname -a
Linux kali 4.0.0-kali1-686-pae #1 SMP Debian 4.0.4-1+kali2 (2015-06-03) i686 GNU/Linux
gcc版本的结果
root@kali:~# gcc --version
gcc (Debian 4.9.2-10) 4.9.2
然而,我安装了John the Ripper 1.8
预装了 Kali Linux 发行版的版本,并且在编译过程中没有达到 SSE2 的任何基准。
- 那么,SSE2 到底是什么?
- SS2E 可以在 x86 处理器中使用吗?
- 为什么像 john 这样的构建需要 SSE2?
编辑:
- 为什么这些构建不能在具有 SSE2 规范的系统上运行?
提前致谢。
答案1
- SSE2 一般是什么?
SSE2 是 Intel x86 指令集的扩展专用指令子集。它们专用于 SIMD(单指令多数据),这意味着借助特定的超宽寄存器(即 128 位宽的 XMM 寄存器),它们可以在一条指令中处理多个数据。
XMM寄存器可能的分割如下图所示。
- SS2E 可以在 x86 处理器中使用吗?
任何相对较新的 Intel x86 处理器都具有 SSE2 指令集。如果你想检查你的CPU是否有它,只需执行以下操作:
$> cat /proc/cpuinfo | grep flags | tail -n 1
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb
rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx
est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt
tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb pln
pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust
bmi1 avx2 smep bmi2 erms invpcid xsaveopt
您可以在此处查看处理器内置的所有指令子集。您应该sse2
在列表中找到(这里就是这种情况)。
- 为什么像 john 这样的构建需要 SSE2 ?
SEE 对于处理信号处理和高度并行化算法非常有用。在 John the Ripper 的例子中,SSE2 指令集用于并行化哈希函数暴力算法。它在一条指令中计算多次哈希尝试,以加速对键空间的探索(或耗尽字典)。
- 为什么这些构建不能在具有 SSE2 规范的系统上运行?
这很可能与软件原因有关。您要么在 64 位 CPU 上安装了 32 位系统(i386 在 amd64 上),要么您可能没有能够处理 SSE2 指令集的编译工具。也可能是因为John的构建系统有缺陷,未能正确检测您系统的能力。
但是,您没有提供足够的有关系统的信息来解决问题。
如果你想安装john
,你最好使用你的发行版附带的预编译包(这是现在几乎所有主流发行版的标准包)。
答案2
在 kali linux 2.0 上安装旧版本或新版本的 john the ripper,除非您的系统上安装了该版本。您的问题将会解决。