
暗号を扱うためのユーティリティ、ランサムウェア分析向け。
暗号を扱うためのユーティリティで、ランサムウェア解析を目的としています。

CryptoTesterで使用されるすべての16進数ビューには、いくつかの拡張機能があります。
0D 0A)は紫色で表示されます多くのビュー(例:Input や Output)では、オフセット行(各ビューの上の 00 01 02 03...)をクリックすると、デコードされたビューとともにバイトを表示するダイアログが開きます。
整数を受け付けるほとんどの入力は、特殊な値や関数も受け付けます。
例:
x10 -> 16len -> 400block -> 16(選択されたアルゴリズムのブロックサイズ)up(60, 16) -> 64down(60, 16) -> 48これらの関数と組み合わせて簡単な算術演算を使用できます。
up(len-x100, b) - 入力長から256を引き、選択されたアルゴリズムの最も近いブロックサイズ(例:AESの場合は16)に切り上げます負の値は len - value、つまり入力の最後からの相対値と見なされます。
主要なパネルには、入力に対して暗号プリミティブを使用するためのツールが含まれています。Input の16進数ビューはバイトを直接貼り付けることができ、File メニューを使用してファイル、テキスト、Base64エンコードされたバイトなどを読み込むこともできます。ファイルをビューに直接ドラッグ&ドロップすることもできます。
キーを多くの形式で指定でき、多くのハッシュ関数や鍵導出関数のオプションが含まれています。これらのフィールドは、現在選択されているアルゴリズムとそのサポート内容に適応します。
注記: キーはUIに表示される順序と同じ順序で処理されます。最初にキーが「形式」に従ってデコードされ、次に「ハッシュ」パラメータを使用してハッシュされ、最後に「導出」パラメータを使用して導出されてから、暗号アルゴリズムに渡されます。v1.7.0.0以降では、「ハッシュ」と「導出」の処理順序を入れ替えることができます。
キーの最終的な出力長は、入力ボックスの上に表示されます。これをクリックすると、計算された最終的なキーが別のダイアログに表示されます。

暗号アルゴリズムとそのパラメータ(サポートされている場合)を選択できます。
注記:
IV バイト(またはアルゴリズムによってはNonce)が空のままの場合、アルゴリズムに適した長さの00バイトが自動的に入力されます。
入力は、「範囲」と「チャンク」の2つの異なるモードで選択できます。
オフセットから始まり、長さ バイトを取得する単純な範囲です。
パラメータを固定 チェックボックスがオフの場合、長さは入力が変更されるたびに自動的に更新されます。
長さフィールドで計算を行い、入力の実際の長さに戻したい場合は、長さをリセット ボタンを押すだけです。
残りのバイトを結合 がオンの場合、オフセットより前のバイトは出力の前に追加され、オフセット+長さより後のバイトは後に追加されます。

取得 バイトを取得し、次にスキップ バイトをスキップし、取得 バイトを取得し、スキップ バイトをスキップ...を入力の終わりまで繰り返します。これは、暗号文が平文のチャンクの間に「インターリーブ」されている場合に使用できます。暗号アルゴリズムは、結果のチャンクに対して 1つの連続したチャンク として実行され、キー/IV/Nonceなどはリセットされません。
残りのバイトを結合 がオンの場合、スキップセクションのバイトは出力にインターリーブされて戻されます。

このセクションには、入力に関する簡単な情報が表示されます。ファイルサイズ、検出されたMIME(ファイルの場合)、全体的なエントロピー、16で割り切れるかどうか(一般的なブロックサイズ)などです。
入力と出力のビューは同期スクロールします。これを無効にするには、それらの間にある同期スクロール チェックボックスのチェックを外します。
入力と出力の間にある🡨 ボタンは、出力を入力ビューに移動するために使用できます。
入力または出力は、それぞれのビューの下にあるドロップダウンを使用してハッシュ化できます。出力には、検証アルゴリズムを実行することもできます(現在、ECDSAのサポートは限定的です)。
このパネルでは、暗号化されたファイルを元のファイルと比較できます。両方のビューはドラッグ&ドロップをサポートしているか、ファイル -> ファイルを開く を使用して「元のファイル」と「暗号化ファイル」を順に開くことができます。
元のファイルビューは、ファイル -> 入力 オプションのいずれかを使用して埋めることもできます。たとえば、特定の長さのヌルバイトやWindowsのサンプル画像 Chrysanthemum.jpg と比較する場合などです。
元のファイルと暗号化ファイルのビューは同期スクロールします。これを無効にするには、それらの間にある同期スクロール チェックボックスのチェックを外します。
元のファイルと暗号化ファイルの間にある⇆ ボタンは、それらの内容を入れ替えるために使用できます。
2つのビュー間で異なるバイトは、暗い赤色で表示されます。

それぞれ元のファイルと暗号化ファイルのビューの基本情報を表示します。
両方のビューが埋められると、それらに対して簡易分析が実行されます。
元のファイルのハッシュが暗号化ファイルに存在するか確認します暗号化ファイルに存在するCryptoAPI BLOBを確認します暗号化ファイルに存在するか確認します(UTF-8またはUTF-16)暗号化ファイル内の元のファイルサイズ(さまざまな形式とエンコーディング)を確認します暗号化ファイルの先頭または末尾にあるASCII(またはBase64)マーカーを確認しますこのパネルでは、いくつかの圧縮アルゴリズムを簡易的に使用でき、暗号化/復号パネルと同様の機能があります。
CryptoAPI BLOBおよびCNG BLOBを分析するためのツールです。
BLOBは、バイナリ、Base64、PEM、XML、ASN.1形式(サポートされている場合)との間でインポート/エクスポートできます。

サポートされているBLOBタイプにのみ有効になる、追加のBLOB関連ツールです。
CryptoAPI BLOBを生成します。ビット長は、選択されたaiKeyAlgのサポート値に自動的に更新されます。一部のbTypeとaiKeyAlgの組み合わせは無効であり、CryptoAPIプロバイダーからエラーが発生することに注意してください。

注記: キーは内部でCryptGenRandomを使用して生成されますが、このユーティリティから生成されたキーを使用した場合の暗号の安全性は保証できません。
RSAキーを分析/計算するためのツールです。キーの個々のパラメータが表示され、10進数または16進数で表示できます。十分なパラメータが存在する場合、キーの残りの部分を計算できます。
キーは、CryptoAPI BLOB、CNG BLOB、PEM、XML、ASN.1などのさまざまな形式で、ファイル、クリップボード、またはメインウィンドウ(暗号化/復号)にエクスポートできます。さらに、メインウィンドウにエクスポートする場合、Raw RSAアルゴリズム用に生の整数をエクスポートすることもできます。

ファイル内の暗号鍵をいくつかの形式で検索するツールです。
サポートされる形式の例:

既知のいくつかのPRNGアルゴリズムをテストするためのツールです。

PRNGの開始シードを設定します。
PRNGのアルゴリズムと、生成する出力の長さ、および各出力に適用するオプションのモジュラスを設定します。たとえば、モジュラスをxFFにすると、各出力をバイトにキャストできます。
アルファベットが選択されている場合:
生成された出力のエントロピーもアルファベット出力に対して表示されます。これは、PRNGを直接攻撃せずに出力をブルートフォースする場合のエントロピー(または可能性の数)の大まかな推定値です。
異なるベースエンコーディングを使用するためのツールです。標準のプリセット文字セットをサポートするか、独自のカスタム文字セットを指定できます。
チェックサムを使用するエンコーダー(例:BitcoinのBase58Check)を除き、パディングを検証せずにデコードが行われるため、部分的または破損したエンコーディングでも生のままデコードされます。

テキストまたはバイトをASCII、UTF-8、UTF-16で同時に表示するためのツールです。

楕円曲線ポイントを検証するためのツールです。ECPoint(非圧縮形式または圧縮形式)、PEM、またはCNG BLOBとの間でインポート/エクスポートできます。

現在のパネルに基づいて実行されるさまざまな操作です。
比較パネルから元のファイルと暗号化ファイルを取得し、XORまたはAND演算を適用してストリームを表示します。
暗号化/復号パネルからアルゴリズム情報を使用し、指定された長さのキーストリームを生成してファイルに保存します。
比較パネル内のピクセル間の差分をグラフィカルなチャートで表示します。

提供されたキーマテリアルと暗号化/復号パネルの入力、および指定された期待される出力を使用して、暗号化オプションセクションのすべての可能なオプションを列挙し、一致するものを探します。
このツールは、指定された暗号パラメータを使用して、既知のキーのリストまたはフォルダを入力に対してテストするために使用できます。
バイト数のバイトを取得します。キーが正常に一致した場合、選択ボタンがアクティブになり、キーとそのパラメータをメインウィンドウに渡すことができます。

選択された暗号のブロックサイズを使用して、すべての可能なブロックを列挙し、指定されたキーを使用して復号を試みます。
例:RSA-2048秘密鍵があり、0x1000バイトの暗号文の可能性があるBLOBを入力として持っている場合。この操作を使用すると、Input[0x00:0x100]、次にInput[0x01:0x101]、次にInput[0x02:0x102]...というように復号を試みます。
注記: この操作は現在、RSAアルゴリズムのみをサポートしています。また、最大10000入力バイトに制限されています。
内部でリトルエンディアンを使用します(アルゴリズムがサポートしている場合)。
選択されたアルゴリズムがサポートしている場合、カスタムパラメータを設定できます。たとえば、Salsa20ファミリーのアルゴリズムは、カスタムラウンド、定数、位置、または生の行列の入力をサポートしています。
IVのオプションです。テキストまたはBase64からの入力、既知の平文からのIVの回復など。
特定の暗号化スキーム(例:OpenSSL)のプリセット。
変換用の小さなツールです。
整数をDWORDに、またはDWORDバイトを整数に変換します。

16進バイトを整数のリストに、または整数のリストをバイトに変換します。出力のスペースとコンマはオプションで設定できます。
