デジゲー博お疲れ様でした。
帰ってきてから、即座にぶっ倒れて起きたら、
「インストーラーを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」で頒布予定なので、気になったら是非きてね!
クイズ御伽小学校の最新版はこんな感じになりましたわ!J⋈`•ヮ<。)
— 月琴かりん✿二日目X-60a (@karinharp) 2018年11月3日
明日のデジゲー博で試遊展示&頒布するので、ミクサ&リンちゃんと勉強したい人はぜひぜひー #wlw pic.twitter.com/Y4ucgf0VCG
というか、この手の話、検証環境をつくるのがそもそもコスト必要だったり、最悪手元に検証環境つくれなかったりすると、マジで不毛な作業の繰り返しになったりと、開発者に絶大なコストとストレスを強いるやつなので、ホイホイ誤検知するアンチウイルスプログラムつくるベンダーは滅んで欲しい。
マイクロソフト、お前のことだぞ!
自分用の記録
https://twitter.com/Antamanide/status/1059074752566845441