【マクロ】 UWSC Part4 【シェアウェア化】

このエントリーをはてなブックマークに追加
418名無しさん@お腹いっぱい。
文字の組み合わせを作るクラス
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
419名無しさん@お腹いっぱい。:2008/04/04(金) 08:37:47 ID:hEPK0qhM0
>>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