![画像](https://habrastorage.org/files/67f/d1f/896/67fd1f8967984e21bfa2ff2cc9d492db.png)
こんにちは、Habr! 夏が終わり、木々の葉が冷たい地面に落ち、最初の雪がノボシビルスクに降ってきました。この時点で、古いRADEON HD4890ビデオカードに基づいてWPA / WPA2パスワードを検索するためのプラットフォームのセットアップについて少しお話したいと思います。
はじめに
グラフィックカードが単なるグラフィックカードであった時代は終わりました。 GPGPU( https://ru.wikipedia.org/wiki/GPGPU )に基づく計算は人気を集めており、CPUでの計算よりも数十倍、時には数百倍も生産的です。 AMD RADEONビデオカードが同等のNVIDIAビデオアダプターよりもこの点ではるかに優れていることは周知の事実です。 これらの計算を実行するために、次の実装が存在します。
- NVIDIA CUDA -GeForce、Quadro、およびTesla GPUでのみ実行されるアルゴリズムを実装できるテクノロジー。
- OpenCLは、さまざまなグラフィックス(NVIDIAおよびAMD RADEONを含むGPU)および中央処理装置(CPU)、およびFPGAでの並列コンピューティングに関連するプログラムを作成するためのフレームワークです。 OpenGLの一部であり、CUDAのライバルです。
- CAL ++は、OpenCLに似た構文を使用して、ビデオアダプターでアルゴリズム実行を実装するためのシンプルなライブラリです。
ご存じのように、pyritは2つの部分で構成されています。追加の機器をサポートするために必要なカーネルとモジュールです。 さらに、このモジュールをコンパイルして、上記の3つのGPGPUコンピューティングテクノロジーの1つをサポートできます。 CUDAは「グリーン」ビデオカードにのみ実装されているため、すぐに消えます。 CAL ++について説明します。
背景
それはすべて、楽しみのために、古い分解されたコンピューターから何か有用なものを作りたいという願望から始まりました。 文字通り「膝の上で」すべてがまとめられ、車は準備ができていました。 最初に思いついたのは、もちろん、平和的な目的のためのブルートフォースパスワードです。 だから私たちが持っているもの:
- CPU Intel Core 2 Duo(周波数1.86GHz);
- デュアルチャネルモードの4Gb RAM。
- GPU ATI RADEON HD4890、1024Mb GDDR5、975 MHz。
システムとしてUbuntuバージョン14.04が選択されましたが、これが問題の原因でした。 本格的なハードウェアアクセラレーションを行うには、AMDサイトからダウンロードした独自のドライバーが必要ですが、インストールは拒否されました。 エラーメッセージをグーグルで検索すると、いくつかの理由が見つかりました。カーネルとXのバージョンは、ドライバーのレガシーバージョンには新しすぎました。 xorgバージョン1.11.3とカーネル3.2を備えた古いバージョンのUbuntu 12.04を( ここから )ダウンロードする必要がありました。 詳細なガイドは、 http : //www.blackmoreops.com/2013/11/22/install-pyrit-in-kali-linux/にあります 。
行こう!
何が必要ですか?
- AMDの公式Webサイトにある独自のグラフィックカードドライバー。 私の場合、これはlegacy-amd-driver-catalyst-13.1で、ここからダウンロードできます: http : //support.amd.com/en-us/download/desktop/legacy? product=Legacy2&os=Linux%20x86_64
- AMD APP SDK-2番目のpyritモジュールをコンパイルするためのツール。 ここからダウンロード: http : //developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/
- CAL ++は、コンパイル用の別のライブラリです。 http://sourceforge.net/projects/calpp/
- APP SDKのパッチはhttps://github.com/clockfort/amd-app-sdk-fixesです。
- SVNから最適に取得されるピリットソース。
この富を別のフォルダにダウンロードし、コンソールから作業するのが最も便利です。 ドライバーから始めましょう:
$ unzip amd-driver-installer-catalyst-13.1-legacy-linux-x86.x86_64.zip $ chmod +x amd-driver-installer-catalyst-13.1-legacy-linux-x86.x86_64.run $ sudo ./amd-driver-installer-catalyst-13.1-legacy-linux-x86.x86_64.run
インストーラーのグラフィカルバージョンが起動しますが、これで問題は発生しないはずです。 インストール後、再起動し、すべてが機能するかどうかを確認します。
$ sudo reboot # $ lsmod | grep fglrx fglrx 3273643 124 # , $ fglrxinfo display: :0.0 screen: 0 OpenGL vendor string: Advanced Micro Devices, Inc. OpenGL renderer string: ATI Radeon HD 4800 Series OpenGL version string: 3.3.11672 Compatibility Profile Context # :) $ fgl_glxgears Using GLX_SGIX_pbuffer 7919 frames in 5.0 seconds = 1583.800 FPS
![](https://habrastorage.org/files/1aa/0d2/f32/1aa0d2f32bf242408f26a64cecb58dde.jpg)
回転する立方体のあるウィンドウが表示されますが、FPSは低くないはずです。 すべて問題なければ、CTRL-Cを押します-ドライバーのインストールは成功しました。 次に、AMD APP SDKをインストールします。
$ tar -xvf AMD-APP-SDK-linux-v2.9-1.599.381-GA-x64.tar.bz2 $ chmod +x AMD-APP-SDK-v2.9-1.599.381-GA-linux64.sh $ sudo ./AMD-APP-SDK-v2.9-1.599.381-GA-linux64.sh # , /opt $ sudo gedit /root/.bashrc
開いたファイルの最後に、次を追加します。
# AMD APPSDK export AMDAPPSDKROOT=/opt/AMDAPPSDK-2.9-1 export AMDAPPSDKSAMPLESROOT=/opt/AMDAPPSDK-2.9-1 export LD_LIBRARY_PATH=${AMDAPPSDKROOT}/lib/x86_64:${LD_LIBRARY_PATH} export ATISTREAMSDKROOT=$AMDAPPSDKROOT
そして、変更を適用します。
$ source /root/.bashrc
これらの変数は、コンパイラーが適切なフォルダーを見つけるのに役立ちます。 次に、不足しているAPP SDKコンポーネントをいくつか追加する必要があります。
$ sudo apt-get update $ sudo apt-get install subversion # , $ sudo passwd root $ su root # $ svn checkout https://github.com/clockfort/amd-app-sdk-fixes/trunk/include/CAL $AMDAPPSDKROOT/include/CAL
CAL ++のビルド:
$ apt-get install cmake libboost-all-dev $ tar -xvf calpp-0.90.tar.gz $ cd calpp-0.90/ $ gedit CMakeLists.txt
このファイルでは、変更する必要があります
# : FIND_PATH( LIB_ATICAL_INCLUDE NAMES cal.h calcl.h PATHS "$ENV{ATISTREAMSDKROOT}/include" ) # : FIND_PATH( LIB_ATICAL_INCLUDE NAMES cal.h calcl.h PATHS "$ENV{ATISTREAMSDKROOT}/include/CAL" )
ライブラリをコンパイルします。
$ cmake . $ make $ make install
エラーが発生しない場合は先に進みます。そうでない場合は、CMakeLists.txtのすべてのファイルパス、特にバージョンを含むファイルパスを確認する必要があります。 最後に、最後のステップはpyritをビルドすることです:
$ cd .. # , pyrit $ sudo apt-get install libpcap-dev libssl-dev zlib1g-dev $ sudo svn checkout http://pyrit.googlecode.com/svn/trunk/ pyrit_svn # $ cd pyrit_svn/pyrit $ sudo ./setup.py build install # calpp cd ../cpyrit_calpp/ sudo gedit setup.py # : # VERSION = '0.4.0-dev' VERSION = '0.4.1-dev' # CALPP_INC_DIRS.append(os.path.join(CALPP_INC_DIR, 'include')) CALPP_INC_DIRS.append(os.path.join(CALPP_INC_DIR, 'include/CAL')) # $ sudo ./setup.py build install
やった! 次に、pyritがGPUを認識しているかどうかを確認します。
$ pyrit list_cores Pyrit 0.4.1-dev (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ The following cores seem available... #1: 'CAL++ Device #1 'ATI RV770'' #2: 'CPU-Core (SSE2)' $ pyrit selftest Pyrit 0.4.1-dev (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ Cores incorporated in the test: #1: 'CAL++ Device #1 'ATI RV770'' #2: 'CPU-Core (SSE2)' All results verified. Your installation seems OK
そしてベンチマーク:
$ pyrit benchmark Pyrit 0.4.1-dev (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ Running benchmark (26285.9 PMKs/s)... / Computed 26285.86 PMKs/s total. #1: 'CAL++ Device #1 'ATI RV770'': 26369.6 PMKs/s (RTT 1.2) #2: 'CPU-Core (SSE2)': 525.0 PMKs/s (RTT 3.0)
まあ、それだけです。 今、あなたは夜に車を出て、その暖かさで暖まり、自分で眠りにつくことができます。
おわりに
誰かがこの記事の資料を役立ててくれることを願っています。別の家では、忘れられていた古いビデオカードの心臓部が生き返るでしょう。 以下のパートでは、複数のビデオアダプターをコラボレーション用に組み合わせること、および複数のマシンをクラスターに組み合わせることについて説明します。 すべて成功!
PS提供された機器について、 Dimonesの同志に感謝します。