UWSCで Malwarebytes AdwCleaner を自動応答

Malwarebytes AdwCleanerを試しに使ったところ予想外に良かった

これを実行すればAdwCleanerがスタートして、スキャンの結果応じてクリーニングを実行してくれるようになる
クリーニング後は手動で再起動を選ぶようにしている

これを定期的に勝手に自動実行できればと思い、UWSCをお勉強して自動応答のスクリプトを書いてみたのでメモしておきます

スクリプトを書いたときはadwcleanerのバージョンは7.2.1であったが、バージョンが 7 ならばソースの変更は不要と思われる
バージョンが 8になったらウインドウ名を変更してやる必要がある

自動応答できるソフトをあれこれ調べてみるとUWSCがインストール不要で、実行ファイルをパソコンに配布するだけで実行できるのがありがたい。ただ、作者との連絡が取れ無い状態とのことで今後のバージョンアップや不具合対応は期待できないのが残念。

//マルウェア駆除ツール(Malwarebytes AdwCleaner)の自動実行

EXEC("C:\○○○○\adwcleaner_7.2.1.exe")

cnt = 0

for i = 1 to 15

    //◆メイン画面
    ID = GETID("Malwarebytes AdwCleaner 7")
    if ID <> -1 then

        //◆今すぐスキャン (2回目は終了)
        if chkbtn(ID,"今すぐスキャン") <> -1 then
            if cnt = 0 then
              clkitem(ID,"今すぐスキャン",CLK_BTN)
              cnt = cnt + 1
              sleep(10)
            else
              CtrlWin(ID,CLOSE)
              break
            endif
        endif

        //◆同意する画面
        if chkbtn(ID,"同意する") <> -1 then
          clkitem(ID,"同意する",CLK_BTN)
        endif

        //◆マルウェアが見つからなかった場合
        if chkbtn(ID,"ベーシック リペアをスキップ") <> -1 then
          clkitem(ID,"ベーシック リペアをスキップ",CLK_BTN)
          //sleep(1)
        endif

        //◆マルウェアが見つかった場合
        if chkbtn(ID,"クリーニング  リペア") <> -1 then
          clkitem(ID,"クリーニング  リペア",CLK_BTN)
          //sleep(1)
        endif

    endif

    //◆評価画面
    ID = GETID("adwcleaner_7")
    if ID <> -1 then
      CtrlWin(ID,CLOSE)
    endif

    //◆クリーニング後の指定
    ID = GETID("Malwarebytes AdwCleaner")
    if ID <> -1 then
        if chkbtn(ID,"クリーニング後手動で再起動") <> -1 then
          clkitem(ID,"クリーニング後手動で再起動",CLK_BTN)
        endif
    endif

    //◆1秒待ってループ
    sleep(1)

next


//■ボタン名取得(デバック用)
//  NUM = GETITEM(ID,ITM_BTN)
//  FOR A = 0 TO (NUM-1)
//  //PRINT (A+1) + "番目: " + ALL_ITEM_LIST[A]
//  NEXT

//■ウインド名取得(デバッグ用)
//n = GETALLWIN()
//PRINT "◆ウィンドウの数:" + n
//IFB n > 0
// FOR i = 0 TO (n - 1)
//  PRINT ALL_WIN_ID[i] + ":" + STATUS(ALL_WIN_ID[i], ST_TITLE)
// NEXT
//ENDIF


ちなみに実行する際は、UWSCをvbscriptからバッチ形式で実行している
管理者モードにしているのは念のため

'********************************************************************
'* adwcleaner auto run
'********************************************************************
Option Explicit
On Error Resume Next

'■管理者モードに設定
Dim WMI, OS, Value, Shell
do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7
	Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
	Set OS = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem")
	For Each Value in OS
		if left(Value.Version, 3) < 6.0 then exit do
	Next
	Set Shell = CreateObject("Shell.Application")
	Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"
	WScript.Quit
loop

'■UWSCを実行
Dim objWshShell     ' WshShell オブジェクト
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.Run("""C:\○○○○\UWSC.exe"" ""\\landisk\○○○○\adwcleaner_auto.uws""")
WScript.Quit

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です