ジョン・ザ・リッパーのSSE2要件

ジョン・ザ・リッパーのSSE2要件

johnKali x86にはいくつかの問題があります。簡単に言えば、LVにインストールされているKali Linux 2.0では実行できませんが、johnVMの以前のバージョンのKaliと以前のバージョンのJohnでは実行できたことを覚えています。エラーは次のとおりです。

申し訳ありません。このビルドにはSSE2が必要です。

カーリーは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.8Kali Linuxディストリビューションはプリインストールされたバージョンをインストールしましたが、コンパイル中にSSE2ベンチマークに到達できませんでした。

  • それでは、SSE2は正確に何ですか?
  • SS2Eをx86プロセッサで使用できますか?
  • JohnのようなビルドにSSE2が必要なのはなぜですか?

編集する:

  • これらのビルドがSSE2仕様のシステムで実行されないのはなぜですか?

よろしくお願いします。

ベストアンサー1

  • 一般的にSSE2とは何ですか?

SSE2は、Intel x86命令セットの拡張特殊命令サブセットです。これはSIMD(Single Instruction Multiple Data)専用です。つまり、特定の超広帯域レジスタ(128ビット幅XMMレジスタなど)を使用して、単一の命令で複数のデータを処理できます。

XMM レジスタの可能な分割を下の図に示します。

SIMD拡張セット

  • 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(amd64のi386)に32ビットシステムがインストールされているか、SSE2命令セットを処理するコンパイルツールがない可能性があります。 Johnのビルドシステムに欠陥があるため、システム機能を正しく検出できない可能性があります。

しかし、問題を解決するためにシステムに関する十分な情報を提供していません。

をインストールするには、ディストリビューションjohnに付属のプリコンパイル済みパッケージを使用することをお勧めします(現在、ほとんどすべての主要ディストリビューションで標準です)。

おすすめ記事