0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

恐らくWindowsUpdateにガチで殺されかけた件

Last updated at Posted at 2024-10-10

やつは突然やってきた

image.png

sshで適当なサーバーにつなげようとコマンドたたいたら出てきた恐怖アラート、当然ssh接続できるわけなく戦慄しました。

これはなんのメッセージ?

実はこんな感じのエラーはgcc関連で一度お目にかかってるのでDLLファイルの依存関係なんだろうなっていう予想は立ちました。 BN_set_flags っていう名前のオブジェクトが見つからないよっていう話なんだろうなって、ただそいつはどのファイルにあるのって話

思い当たる節が

事件の朝、起きてPCの画面を見たらロック画面。当時の私は「またWindowsUpdateか」って思いましたが、まさかこのような事態になるとは

とりあえずぐぐる

ここにありました、で戻るとcryptoなるプロジェクト名?ファイル名?で作成されてるところまでわかるのでおそらく慣例で"libcrypto.dll"とか"crypto.dll"って感じのファイル名なんだろうなって予想はつきます。
あとは探してなかったらダウンロードするだけの簡単な話、だったのですが

あるやんけ

image.png
同じディレクトリ上にあって草
いやこいつ偽物なのか?って思ってデコンパイルとかして中身調べようとしたのですが、あまりにもめんどくさいので却下。別の方法をとってみることにしました

OpenSSH再インストール

とりあえず最初にやるべきことだった。Windows標準の設定から行いましたが効果なし

whereコマンドでdllファイルを探す

もしかしたら同じディレクトリにあるdllではなく別のdllを参照してるのではないかと疑ってwhereコマンドで調べてみました。
image.png

やはりか、って当時の私は某探偵アニメの毛利小●郎みたいに推理を決めたのでした。そしてこの問題を解決するために環境パスの優先順位をいじりましたが

image.png

変わらず...

更新日時

実は答えにつながる決定的なヒントは隠した私なのですが、ここで当時の私はとあることに気づきます。
C:\Windows\System32
image.png
うん?
C:\Windows\System32\OpenSSH
image.png

System32配下にあるファイルの方が新しい...?

そして新しい方の日付がWindowsUpdateを行ったとおぼしき日時と合致してるような

DLLの優先順位

DLLファイルの読み込みには当然優先順位があります。
そして開発で自作したDLLファイルをどうするかを考えれば当たり前のことなのですが最初に読み込まれるのは実行アプリケーションと同じディレクトリにあるDLLファイルです。つまり環境変数いじるパートは全くの無意味な上に見当違いだったわけですね。

解決策

image.png
消しました

System32配下のdllファイルも読み込み対象なので問題ないと判断したからです。

結果は
image.png

やった、治った

残る疑問

やはりWindowsUpdateでシステムファイルが書き換わったのが原因であるのは間違いないようですが、問題は再インストールしたOpenSSHの更新日時が2021となんかめちゃくちゃ古い点

こういうのが最近あったばかりなのでWindowsUpdate経由で更新されるはずなのですがされてないのは非常に謎

と記事を書く前は思ってたのですが、記事を書きながらOpenSSHフォルダを見返したらexeは全部10/9だったんですよね。

これ、私のせいか?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?