みけCATのにっき(仮)
つれづれなるまゝに、日くらし、PCにむかひて、心に移りゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。
(本当か!?)
出典

訴訟不可避!環境破壊ウイルスと化したインストーラ

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

訴訟不可避!環境破壊ウイルスと化したインストーラ

投稿記事 by みけCAT » 10年前

先日OpenSSH for Windowsをインストールしました。
しかし、使い方がよくわからなかったのでアンインストールしました。

その後コマンドプロンプトでコマンドを使おうとすると、なぜか認識されない。
あー、またPATHか。と思ってecho %PATH%すると…
P A T H の デ ー タ が 無 い
正確には全く無いわけではないが、ほとんどが消えている。
慌てて環境変数を編集するダイアログを開くと…
path_owata.png
PATH\(^o^)/オワタ
path_owata.png (30.64 KiB) 閲覧数: 518 回
デデドン!(絶望)

なんと、システム環境変数のPATHがOpenSSHのディレクトリだけになっていました。
C:\Windows\System32さえありません。
(ユーザー環境変数のPATHは無事のようでした)

急いでPATHの復元の仕方をググると、幸いにも出てきました。
WindowsのPATHの設定を復元する - 大人になってからの再学習
この記事はWindows 7の話ですが、Vistaでも大丈夫なようです。Meとか2000とかXPとか8とか8.1とかは知りません。
簡単に言うと
システムの復元で適当な復元ポイントへ→PATHのデータをバックアップ→復元の取り消し→バックアップしたPATHを設定する
という流れです。
幸い、この方法で無事復元に成功しました。

再現実験をしてみたところ、PATHが短い時(C:\Windows\System32のみを設定)は、消えることはなく正常に設定されました。
ということは、PATHが長すぎる時に、不正なバッファオーバーラン対策により殺されるということだと推測できます。
インストーラのソースコードが公開されていたので調べたところ、nsisというものを使用しているようでした。
ということは、nsisを利用した他のソフトウェアのインストールでも同様の事態が発生する可能性があるということです。
nsis_icon.png
問題のインストーラのアイコン
nsis_icon.png (4.83 KiB) 閲覧数: 530 回
このアイコンが見えたら、インストールの前にPATHのバックアップを取りましょう!

Poco
記事: 161
登録日時: 13年前

Re: 訴訟不可避!環境破壊ウイルスと化したインストーラ

投稿記事 by Poco » 10年前

ででどん!で思わず笑ってしまったw
不幸な目に逢っても再現テストをするとは素晴らしい。

アバター
沖 滉均
記事: 237
登録日時: 13年前

Re: 訴訟不可避!環境破壊ウイルスと化したインストーラ

投稿記事 by 沖 滉均 » 10年前

まぁ、結果からいうと別にNSISだからっていう現象ではないんだけどね。
どのインストーラでも環境変数をいじるソフトには発生し得る問題ですよ。
Windowsのバージョンにも依るけども長すぎると削除されるのは既知の問題っぽいね
Windows7は2048文字以上(新しくセットされる予定の環境変数も含めて)で既存の環境変数が削除されるみたいですよ。
私も過去にNSISではないインストーラでインストールしたソフトで同じことやらかされましたからね…

ISLe
記事: 2650
登録日時: 13年前

Re: 訴訟不可避!環境破壊ウイルスと化したインストーラ

投稿記事 by ISLe » 10年前

定期的に、setコマンドの出力をリダイレクトして作ったテキストファイルをバックアップすると良いですよ。