Edited at

Unityで作ったゲームがウイルス扱いされた話

デジゲー博お疲れ様でした。

帰ってきてから、即座にぶっ倒れて起きたら、

「インストーラーをDownloadしたら、トロイの木馬として検出されました」

と、ユーザさんからレポートを受けて、

かなり慌てて色々調べたり、検証したりしました。


調査1


  • Unityの吐いたファイル

  • インストーラー(Inno Setup)が吐いたファイル

  • 展開されたファイル

全部洗ってみた。

ファイル改竄はどの段階でも見当たらず、また、当然この状態ではアンチウイルスには引っかからない。


調査2

アンチウイルスあるある、WhiteListのURL以外からDownloadされたものは、特定の検知ロジックが走る。

これを思い出し、実際に配信に使用している、配信サービスConcaからのダウンロードで検証。

結果、再現!!

アンチウイルス系のトラブルは検証環境が作れれば9割解決したも同然なので、一気に対処に突入!


対処

参考になったのはこちらの話

https://github.com/felicienfrancois/node-innosetup-compiler/issues/10

どうも、 "setup.exe" という名前のインストーラーは、blacklist的に検知されてしまう模様。

(はー、Windowsくそかー!!と内心ブチ切れてましたwww)

ということで、インストーラー名を変えて、配信データ更新。

ただ、再度検証するも、変わらず検出されてしまう。。

この手のアンチウイルスあるある、Downloadして検知したデータの結果は、


  • ソースURL

  • ファイル名

  • +α(サイズを見ることがあれば、ハッシュまでみてくれることも)

でキャッシュするという話、、これを思い出し、exeをアーカイブした時の名前も変更して、再更新。

そして無事に、解決!!


終わりに

CDでの配布からDL配布に移行する同人ソフト開発の方も多いと思いますが、物理媒体より、アンチウイルス絡みのトラブルに巻き込まれやすいので、気をつけましょう。


ちゃんとした証明書でインストーラーを署名する、or WhiteListなURLの配信サービスを使用することで、多くの検知ロジックをバイパスできるので、余裕がある人は、無用なトラブルを避けるために、そういう方法の検討も視野にいれてもいいのかもね。



おまけ

なんか妙にPV伸びたので、この記事を書く元になったUnityのクイズゲーム動画を貼っておきます。

年末のコミケット95、二日目 X-60a 「AloMarron」で頒布予定なので、気になったら是非きてね!


というか、この手の話、検証環境をつくるのがそもそもコスト必要だったり、最悪手元に検証環境つくれなかったりすると、マジで不毛な作業の繰り返しになったりと、開発者に絶大なコストとストレスを強いるやつなので、ホイホイ誤検知するアンチウイルスプログラムつくるベンダーは滅んで欲しい。

マイクロソフト、お前のことだぞ!

自分用の記録

https://twitter.com/Antamanide/status/1059074752566845441