【マクロ】 UWSC Part4 【シェアウェア化】
文字の組み合わせを作るクラス
Class key
dim s = "0123456789" //abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
dim s_len
dim k[10] = 0,0,0,0,0,0,0,0,0,0,0
dim keystring
Procedure key
s_len = Length(s)
Fend
Function next()
inc(0)
keystring = ""
For i = 10 to 0 step -1
Ifb k[i] Then
For i = i to 0 step -1
keystring = keystring + copy( s, k[i], 1 )
Next
Result = keystring
Exit
Endif
Next
Fend
Procedure inc( c )
k[c] = k[c] + 1
Ifb s_len < k[c] Then
k[c] = 1
inc(c+1)
Endif
Fend
EndClass
>>418を使うサンプル
NTパスワードをクラックするツールを使ったことがあるけど、
400MHzのを使って9桁の数字の答えを見つける間に(10桁目に入るころ)、
このスクリプトでは5倍の性能のパソコンを使ってもやっと7桁目に入った。
まあ他のアプリケーションを操作する目的のスクリプトだからアセンブラと張り合う必要はないんだけど
やっぱり性能差って結構あるなあ。
メモ帳 = Exec("notepad.exe")
dim len = 0
Start = GetTime()
while 1 // keyテスト
If !IDToHND(メモ帳) Then Exitexit
s = key.next()
Ifb len < length(s) Then
len = length(s)
t = GetTime()-Start
s = s + "<#TAB>" + format(t/60/60 MOD (24*60*60), 2) + ":" + format(t/60 MOD (60*60), 2) + ":" + format(t MOD 60, 2)
SendSTR(メモ帳, s + "<#CR>", 1, false, false )
Endif
wend