RainbowCrack の各種計算(成功率やディスクサイズ)を行う DLL
- ver1.0.0.0 (未公開) 最初のバージョン
- ver1.0.0.1 (2005/11/05) 大きな M などでオーバーフローするバグ修正(内部で LONG 型を Double 型に変更)、一部、計算の精度の向上、Long型以上っぽい値を指定するとテキストボックスの背景の色が変わるようにした(GUI側)
- ver1.0.0.2 (2006/04/21) all の個数に半角スペースを入れ忘れたバグの修正, type を増やした
- ver1.0.0.2 (2006/04/22) VB6 だけだと心配(途中計算のオーバーフローなど)なので Java 版も一応作ってみた
- ver1.0.0.2 (2006/07/12) VB6 だけだと心配(途中計算のオーバーフローなど)なので C# 版も一応作ってみた (C# には decimal という128bit浮動小数点型と ulong という符号無し16bit整数があったから)
- ver1.0.0.3 (2008/05/27) アイコンを透過アイコンに変更した
内容
RainbowCrack というパスワード解析プログラムがあります。
初期条件(m,t,l)を与えて、成功率やディスクサイズがどのようになるのかを計算する COM(ActiveX)です。
それだけです。さらに、特別な数値計算テクニックは使っていないので、誤差がある可能性があります。
RainbowCrack の理論へのリンク
VisualBASIC6.0 で作っているので、遅いですよ。
動作環境
直接的に必要な環境は以下です。
- VisualBASIC6.0 の(WinSock.ocx を含む)汎用的なランタイムが必要。
- MojiChk.dll
使用方法
- まず、VisualBASIC6.0 のランタイムを Vector などからダウンロードしてインストールします。
(ランタイムが既にインストールされていれば必要ありません)
- MojiChk.dll をインストールします
- ダウンロードしたファイルを解凍しします。
(LHAは、吉崎栄泰氏が、著作権を所有)
- COM ディレクトリ内の「sRC.dll」を好きなところにコピーして、RegSvr32.exe でレジストリに登録してください。
または、RegSvr32.bat を sRC.dll と同一ディレクトリにコピーして実行してもよいです。
- 以上で、COM を利用可能となります。
- また、exe ディレクトリ内の実行ファイルは、本 COM の GUI ラッパーとなっています。
アンインストール法
インストールしたものをアンインストールすればいいです。
また、sRC.dll ディレクトリ上で「RegSvr32.exe /u sRC.dll」を実行して、レジストリから本COM情報を削除してください。
免責など
悪用厳禁です。
このソフトが不正使用されたことによる責任は持ちません。
著作権は保持します。(とりあえず)
このソフトを使用したことによって生じた、
いかなる損害についても責任は持ちません。
ソースコードについても、各自の責任において改変する事については、自由に行って頂いて結構です。
「参考になったよ」メールを投げてくれると嬉しいです。(*^_^*)
Version1.0.0.3DownLoad(sRc.lzh as 38,399byte) (sRc.lzh.base64)
sRC.dll について
- CreateObject に渡す文字列
- 関数一覧
- Boolean(True/False)=SetParameter(iM As Variant, iL As Variant, iT As Variant)
「M」「T」「L」をセットします
変更したら True 失敗したら False
- Boolean(True/False)=SetParameter2(Vseed As Variant, Vmin As Variant, Vmax As Variant)
「文字種の数」「平文の最小長」「平文の最大長」をセットします
変更したら True 失敗したら False
- Boolean(True/False)=SetParameter3(VdiskRate As Variant, VtimeRate As Variant)
「ディスク単位」「基準値(RainbowChainの計算数/sec)」をセットします
デフォルトでは、
「ディスク単位=1000000000(GB)」
「基準値=354000」
変更したら True 失敗したら False
- (戻り値なし)=GetParameters(ByRef M As Variant, ByRef L As Variant, ByRef T As Variant, ByRef DiskRate As Variant, ByRef TimeRate As Variant, ByRef seed As Variant, ByRef min As Variant, ByRef max As Variant)
現在の状況を ByRef で返す。
- 戻り値=Day2Hour(iStr As Variant)
「日数」を引数にして、その「時間」を返す
12=Day2Hour(0.5)
- (戻り値なし)=Calc(ByRef DiskSizePar1RCTable As Variant, ByRef TimePar1RCTable As Variant, ByRef successRatePar1RCTable As Variant, ByRef TotalDiskSize As Variant, ByRef TotalTime As Variant, ByRef TotalRate As Variant)
各種計算をしてByRefで返す
「DiskSizePar1RCTable」: ディスクサイズ/RainbowTable
「TimePar1RCTable」: 生成時間(日数)/RainbowTable
「successRatePar1RCTable」: 成功率/RainbowTable
「TotalDiskSize」: 全体のディスクサイズ
「TotalTime」: 全体の生成時間(日数)
「TotalRate」: 全体の成功率
- 戻り値= GetKeySpace()
キースペースを返す
「文字種の数」「最小長」「最大長」から、計算される総組み合わせ数
- 戻り値=SuccessRate()
成功率/RainbowTable を返す
mail to active@window.goukaku.com