タブファイラー開発ブログ

Tablacus ExplorerやX-Finderの作者のブログ

Shell execute hook をスクリプトで切り替える - Tablacus Explorer

Shell execute hookアドオン簡単に切り替えたいという要望があったので、スクリプトを書いてみました。これらのスクリプトを動作させる場合はShell execute hookアドオン1.02が必要です。古いバージョンでは正常に動作しません。

オン

オフ

切り替え

すぐに切り替えできるようにエクスプローラを再起動しています。

エクスプローラの再起動が不要な場合は「Explorer: true」の部分を「Explorer: false」にします。

 

フォルダを開く際にTablacus Explorerをエクスプローラの代わりに開く方法

  1. レジストリでフォルダに関連付ける
  2. アドオンの「Shell execute hook」を使う
  3. アドオンの「エクスプローラの代わりに開く」を使う

今回はこの3つの方法を説明します。
それぞれ、エクスプローラの代わりに開けるパターンが違うので組み合わせるなりしてください。

1.レジストリでフォルダに関連付ける

万が一に備えてレジストリのバックアップを取っておく
「ファイル名を指定して実行」よりregedit.exeを起動
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell(もしくはHKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell)に移動して右クリックし新規→キー(OpenとかExplorerがある階層)
名前に「Tablacus Explorerで開く」と入力し、その中にキーをつくって名前を「command」と入力する。
「command」の中にある(既定)を開いて「"C:\......\TE64.exe" /idlist,%I,%L」を入力。(C:\......\はTablacus Explorerをインストールしたフォルダにする)
32bit版を実行させたい場合はTE32.exeにする
Tablacdus Explorerを既定にしたい場合はshellにある(既定)のデータを「Tablacdus Explorerで開く」とする。
Windows 7 で開きたいフォルダが含まれるフォルダが開かれる場合は
そんな時は上記「"C:\......\TE64.exe" /idlist,%I,%L」を「"C:\......\TE64.exe" "%1"」にする

(特徴)
レジストリを使用する
関連付けなので他のソフトからエクスプローラを開く際は開けない。
Windows+Eも置き換えできない。

 

2.アドオンの「Shell execute hook」を使う

tablacus.hatenablog.com

(特徴)
レジストリを使用する
Windows10でデスクトップのフォルダを開く際に使えなかった

 

3.アドオンの「エクスプローラの代わりに開く」を使う

このアドオンはtablacus Explorerが起動していないと動作しません。
そのため、アドオンの「タスクトレイ」の「閉じる代わりにタスクトレイに格納」を使ってtablacus Explorerを閉じない設定にし、スタートアップでTablacus Explorerを実行するようにすればこの問題に対処できます。

(特徴)
レジストリを使用しない
Tablacus Explorerを実行していない場合は使えない。

フォルダリストメニュー(Folder list menu) アドオン - Tablacus Explorer

アドオンのフォルダリストメニューはクリップフォルダやm3uに格納されたフォルダをメニューで開いてジャンプできるようにするアドオンです。

フォルダリストメニューをインストールするとタイプに「Folder list menu」が追加されます。

f:id:tablacus:20170606232336p:plain

オプションにフォルダ一覧が格納されたテキストファイルを指定します。

 ※バージョン1.01で階層メニューに対応しました。

パス\表示名1 c:\path\name1

パス/表示名2 c:\path\name2

パス|表示名3 c:\path\name3

エディタ等でフルパスの前に表示するパス名と表示名を入れます。

パス名と表示名の区切りは半角の「\」「|」「/」のどれかを用いてください。

ジャンプするパスに%Installed%等の環境変数を使うこともできます。また、表示名とジャンプするパスの区切りをタブにすると指定したファイルの親フォルダからの相対パスを指定することもできます。

※バージョン1.02で新しいタブで開けるようになりました。

f:id:tablacus:20170620224806p:plain

※バージョン1.03で区切り線に対応しました。

「-」だけの行で区切り線になります。階層に対応する場合はパス名\-等にします。

-

パス\-

パス/-

パス|-

※バージョン1.04でアイコンが指定できるようになりました。

パスの一行前に「#EXTIMG:ファイル名.png」を指定します。アイコンは「png,jpg」等画像フォーマットを指定できます。

#EXTIMG:ファイル名.png

C:\hogehoge

 #EXTIMG:..」とするとパス名からアイコンを取得します。

#EXTIMG:...

C:\hogehoge

※バージョン1.04で外部ファイルの実行が可能になりました。

パスを「`」(バッククォート)で囲むとファイルを実行します。

例)電卓を実行する

`calc.exe`

※バージョン1.05でアイコンのサイズが指定できるようになりました。

パスの一行前に「#EXTIMG:ファイル名.png,16」と指定します。「,」から後ろが表示されるアイコンのサイズになります。この場合は16です。

#EXTIMG:ファイル名.png,16

C:\hogehoge

 ※Tablacus Explorer 17.7.30でJavaScriptが実行できるようになりました。

javascript:から始めるとスクリプトを実行できます。

表示名        javascript:alert(1);

「"」が含まれたスクリプトを実行する場合は

 パスの一行前に「#EXTINF:-,表示名」と指定します。

#EXTINF:-,表示名

javascript:alert("OK");

 

※バージョン1.10で折り返し・線付きの折り返しに対応しました。

「/」だけの行で折り返しになります。

「//」 だけの行で線付きの折り返しになります。

XMLHttpRequest

Tablacus ExplorerのアップデートをGitHubReleases · tablacus/TablacusExplorer · GitHubGitHubREST APIを利用するように変更しました。

ついでに、ネットの読み込みのオブジェクトをIE独自のCreateObject("Msxml2.XMLHTTP")から標準のnew XMLHttpRequest()に変更しました。

ここでいくつかの非互換の部分がありました。

 

1.textノードが読み込みできないので先に「textContent」を読み込みする

var s = item[i].textContent || item[i].text;

 JavaScript演算子「||」は便利ですね。

 

2.responseStreamが使えないので代わりにresponseBodyを使う

responseStreamはストリームなので大きいファイルでも安心なんですが、IE独自っぽいですね。Tablacus Explorerの場合はそんなに大きなファイルをダウンロードすることもなさそうなので多分responseBodyでも問題ないと思います。

 

XMLHttpRequestIE 7から実装しているのでもう対応しておく方が良さそうです。

Tablacus Explorer におけるスクリプトインジェクションの脆弱性

公開日 2017 年 4 月 5 日

■概要

Tablacus Explorerのバージョン 17.3.30 以前にスクリプトインジェクションの脆弱性が存在することが判明しました。
この脆弱性を悪用された場合、悪意ある第三者の攻撃により、Tablacus Explorerが動作しているコンピュータ上で任意のスクリプトが実行されてしまう危険性があります。

該当バージョンのTablacus Explorerをお使いの方は、すみやかに17.4.1以降へバージョンアップしてください。
たいへんご迷惑をおかけいたしますが、よろしくお願いいたします。

■該当製品の確認方法

影響を受ける製品は以下の製品です。

製品名称 Tablacus Explorer

該当バージョン 17.3.30 以前の全てのバージョン

使用しているバージョン番号の確認方法は以下の通りです。
1. Tablacus Explorerを起動し、「ヘルプ」メニューから「Tablacus Explorerについて」を選択する。
2. 現れたウィンドウの下記の部分が起動しているTablacs Explorerのバージョン番号です。

f:id:tablacus:20170405200135p:plain

脆弱性の説明

Tablacus Explorerのアドレス バー等のフォルダ名表示に脆弱性があり、FTPサーバー等で細工された不正なフォルダ名を持つフォルダに接続した場合、任意のスクリプトを実行される脆弱性が存在します。

脆弱性がもたらす脅威

攻撃が成功すると、悪意のある第三者によって任意のスクリプトを実行されてしまう可能性があります。
これにより、悪意のある第三者は、不正プログラムのインストール、データの変更や削除など、任意に操作する可能性があります。

■対策方法

Tablacus Explorerを起動し、「ヘルプ」メニューから「最新版の確認」を選択し最新版にアップデートして下さい。

■回避

信頼できないFTPサイトにTablacus Explorerでアクセスしない。
メニューバーの「ツール」→「アドオン」から「アドレス バー」アドオンを無効にする

■対応状況

2017/3/31
JPCERT/CCより脆弱性情報の詳細について通知を受ける。

2017/4/1
Tablacus Explorer 17.4.1 リリース。

2017/4/5
脆弱性情報公開

■関連情報

JVN#64451600 TablacusExplorer におけるスクリプトインジェクションの脆弱性

■謝辞

脆弱性発見者及び連絡をして戴いたJPCERT/CCの方々に感謝いたします。

■更新履歴

2017/4/5 この脆弱性情報ページを公開しました。

■連絡先

X-Finder作者へのお問い合わせ

Norton AntiVirusを使っているとTablacus Explorerの更新で重い問題の対策方法

最近、Norton AntiVirusを使っているとTablacus Explorerのヘルプ→最新版の確認→アップデートのインストールで引っかかる感じになってしまうようです。

いろいろと試してみたところ、Tablacus Explorerがzipから展開する際にWindows標準のZIP展開機能を使っているのがNorton AntiVirusのヒューリスティック検知で誤検知されているようです。

本来はユーザーの方の通報でSymantec社に直してもらうべき話ですが、対策方法を見つけたので、とりあえず直るまで以下の方法を試してみてください。

 

Tablacus ExplorerがZIPを展開するところで引っかかっているので、そこを外部ツールの7-zipかlhazで代行させます。

 

まず、ツール(T)→アドオン(A)でアドオンの一覧を表示し、「解凍」の「オプション」をクリックします。

f:id:tablacus:20170309214914p:plain

Get 7-zip...かGet lhaz..をクリックしてどちらかのホームページから実行ファイルをインストールします。

f:id:tablacus:20170309214947p:plain

インストールした方の展開ソフトのボタンをクリックしてください。

f:id:tablacus:20170309215213p:plain

確認ダイアログが表示されるので「OK」をクリックします。

f:id:tablacus:20170309215323p:plain

自動的に設定が入力されるので「OK」をクリックします。

f:id:tablacus:20170309215420p:plain

「解凍」の「有効化」ボタンをクリックします。

f:id:tablacus:20170309215504p:plain

OK」をクリックすれば完了です。

f:id:tablacus:20170309215551p:plain

各アドオンの有効無効を知る方法 - Tablacus Explorer

某所で、アドオンの有効無効を画面で知りたいという要望があったので、Tablacus Explorer 17.2.6で環境変数を追加しました。

使い方:

%AddonStatus:アドオンのID%

 例えば、交互縞(ストライプ)のIDは「stripes」なので

%AddonStatus:stripes% 

になります。この環境変数はアドオンが有効の場合に「on」、無効の場合は「off」になります。

有効時と無効時のアイコンをon.pngとoff.pngで作れば良いわけです。

f:id:tablacus:20170206233444p:plain

有効時

f:id:tablacus:20170206233613p:plain

無効時

f:id:tablacus:20170206233706p:plain

こんな感じです。