Skip to content

CLCLR v1.2.0

Choose a tag to compare

@tricksterzero tricksterzero released this 07 Oct 09:48

CLCLR v1.2.0(2026-10-07)

セキュリティと堅牢性を強めた版です。保存先のフォルダの権限を確かめる機能(既定はオフ)を加え、CLCLR.exe が読み込む DLL の探し方を見直し、Windows の保護機能(CFG・CET シャドウスタック)に対応しました。また、極端に大きなコピーや、壊れた・書き換えられた保存データで、メモリを使い切らないようにし、取り込みや保存に失敗したときは知らせるようにしました。

セキュリティ

  • 起動したときに、保存先のフォルダ(CLCLR.exe のあるフォルダ)の権限を確かめられるようにしました(設定の「全般」。既定はオフ)。ほかのアカウントから履歴を読み書きできたり、フォルダごと差し替えられたりする設定になっていると、警告します。CLCLR がフォルダの権限を変えることはありません
  • 説明書(README.md)に「置き場所と権限」を書き加えました(お勧めの置き場所と、警告が出たときの直し方)
  • CLCLR.exe が起動のときに読み込む Windows の DLL(winmm.dll など)を、system32 フォルダだけから探すようにしました。今までは CLCLR.exe と同じフォルダを先に探したため、そこに置かれた同じ名前の別の DLL を読み込むことがありました
  • C ランタイムを CLCLR.exe の中に入れ、Visual C++ の再頒布可能パッケージの DLL(VCRUNTIME140.dll)を使わないようにしました(CLCLR.exe は約 100KB 大きくなりました)
  • CLCLR.exe に Windows の Control Flow Guard(CFG)を付けました。万一メモリが壊されても、関数の呼び先を書き換えて処理を乗っ取ることを難しくし、その場合はプログラムを終了させます
  • CLCLR.exe を CET シャドウスタックに対応させました。対応した CPU と Windows 10(2004)以降では、関数の戻り先の書き換えを CPU が見つけ、プログラムを終了させます
  • ウィンドウフィルタを、コピーの直後の前面の窓でも判定するようにしました。今までは取り込むとき(既定ではコピーの1秒後)の窓だけで判定していたため、除外したアプリでコピーしてすぐ別の窓へ切り替えると、取り込むことがありました(ごく短い間に切り替えた場合は、今も取り込むことがあります)
  • メニューから選んだ後の自動の貼り付けを、次のときは送らないようにしました。クリップボードには入っているので、手で貼り付けられます
    • 待っている間に前面の窓が変わったとき(別の窓へ貼り付けないため)
    • 修飾キー(Ctrl・Shift・Alt)が2秒たっても離されないとき(今までは Ctrl+Alt+V などになることがありました)
  • 追加の音の WAV ファイルに、ネットワークの場所(\\サーバー\共有 の形の場所や、ネットワークドライブ)を指定できないようにしました。以前の版の設定ファイルに書かれていた場合は、そのファイルを開かずにシステム音を鳴らします(コピーのたびにネットワークへ接続しないためです)
  • 追加の音の WAV ファイルを、フォルダを含まない名前(chime.wav など)や相対の場所で指定したときは、CLCLR.exe のあるフォルダからの場所として扱うようにしました。今までは作業フォルダのほか、Windows のフォルダや PATH のフォルダ、ネットワークに割り当てたフォルダからも探していました

堅牢性

  • 形式フィルタの大きさの上限の既定を、テキスト 32MiB・画像 256MiB・ファイルの一覧 1MiB にしました(今までは無制限)。以前の版から使っている設定ファイルの上限は変わりません
  • 1回のコピーで取り込む形式の大きさの合計に、上限を設けました(設定の「形式フィルタ」の「コピーの合計の上限」。既定 320MiB、0 は無制限)。超えたコピーは何も取り込まず、知らせます。以前の版から使っている設定ファイルにも、既定の 320MiB が効きます
  • 保存してある画像のファイルを読む前に、形と長さを確かめるようにしました。壊れた・書き換えられたファイルで大きなメモリを確保しないためです。形や長さが合わないファイルは、壊れたものとして読みません。元の形式のまま保存したデータとそのプレビューも、長さを確かめます
  • 保存した画像をクリップボードへ送れる大きさを、画素を RGBA に換算して 512MiB までにしました(既定のコピーの合計の上限で取り込める画像は、どれもこの中に収まります)
  • 幅か高さがちょうど 16384 ピクセルの画像を、読み戻せない形で保存していた不具合を直しました(クリップボードへ送ることも、起動時の復元もできませんでした)。16383 ピクセルを超える画像は、WebP にせずにそのまま保存します
  • コピーした内容を履歴に取り込めなかったときに、知らせるようにしました(同じ種類の失敗は、起動してから最初の1回だけ)。取り込みの処理で予期しないエラーが起きたときは、クリップボードの監視を止めて知らせます(今までは、監視中の表示のまま取り込まなくなっていました)。監視は、トレイのメニューか設定画面の「OK」でオンに戻せます。これらの知らせは、操作の失敗を知らせない設定でも出ます
  • 取り込んだ項目を履歴のファイル(history.toml)へ書けなかったときも、知らせるようにしました(項目は履歴に入っていて、あとで書き直します。最初の1回だけ知らせます)
  • 設定画面の「OK」の処理中に、ほかのアプリから閉じる要求を送られると、異常終了することがある不具合を直しました
  • 自動の貼り付けのキー入力が一部しか送れなかったときに、Ctrl などのキーが押されたままにならないようにしました
  • ビューアが前面にあるとき、終了の直前にコピーすると、終了の処理が止まったままになりうる作りだったのを直しました
  • 保存したデータ(history.toml・pinned.toml)を手で書き換えて、2つの項目が同じデータのファイルを指していた場合に、一方を消すと、残ったほうのデータのファイルも消していたのを直しました

そのほかの修正

  • メニューの項目のツールチップで、絵文字などが折り返しの位置で崩れることがあったのを直しました

ダウンロード

CLCLR-1.2.0-x64.zip を展開し、CLCLR.exe を書き込みできるフォルダに置いて起動してください。zip には CLCLR.exe・README.md・LICENSE・THIRD-PARTY-NOTICES.md が入っています。動作環境と使い方は README.md を見てください。

CLCLR.exe にはデジタル署名がありません。初めて起動するとき、Windows の SmartScreen が警告を出すことがあります。

SHA-256

ファイル SHA-256
CLCLR-1.2.0-x64.zip 163EF2F97F35E743E1481413BA6FBF46AC619AE3077AAD30CF718274CCA20853
CLCLR.exe 564D73723DD67F696063157D376CCCD34CD1FC4F172E70282DCC44BFFACC161B

ビルド: コミット ab5d887、rustc 1.98.1 (48a229cea 2026-09-01)