C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

逆コンパイル対策 /naoki (21/02/05(Fri) 07:36) #96792
Re[1]: 逆コンパイル対策 /ニケ (21/02/19(Fri) 16:12) #96857
Re[1]: 逆コンパイル対策 /Azulean (21/02/19(Fri) 20:25) #96864
  └ Re[2]: 逆コンパイル対策 /hihijiji (21/02/20(Sat) 11:10) #96866
    └ Re[3]: 逆コンパイル対策 /naoki (21/02/22(Mon) 09:03) #96878 解決済み


親記事 / ▼[ 96857 ] ▼[ 96864 ]
■96792 / 親階層)  逆コンパイル対策
□投稿者/ naoki (7回)-(2021/02/05(Fri) 07:36:32)

分類:[.NET 全般] 

連投、すみません。この際、長年の疑問を投稿します。

C#やVBで開発されている方に質問です。

C#やVBで書いたコードは簡単に、逆コンパイルできるので外部に配布するアプリについては
気休めで「ConfuserEx」で難読化してから、公開しています。
ですが、「ConfuserEx」で難読化したものは、ウイルス対策ソフトに、ほぼ軒並みウイルスと
偽陽性判定されてしまいます。
ここ最近、作ったものはほぼ全滅です。(難読化レベルは適時変更しています。)

私はIT関連ではない、趣味でソフトを作っている素人です。
プログラミングを生業しているプロの皆様にとってはリバースエンジニアリング対策は死活問題
だと思うのですが、どのような対策を取られているのか、教えてください。

素人が書いているコードなので、別に逆コンパイルされて、どうこう、いう事はありませんが、
興味本位での質問です。

[ □ Tree ] 返信 編集キー/

▲[ 96792 ] / 返信無し
■96857 / 1階層)  Re[1]: 逆コンパイル対策
□投稿者/ ニケ (11回)-(2021/02/19(Fri) 16:12:09)
No96792 (naoki さん) に返信
検索すればすぐ分かる事だと思いますが。
https://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=38229&forum=7
対策を必要とする環境はごくわずかのようです。

・見られて困るようなアルゴリズムを扱うことは稀。
・他人の謎なコードを解析するより、自前のコードで最初から作る方が生産性が上。
・パスワード等はローカルに保存しない、または素人がメモ帳で開いて分からないレベルで要件を満たしてしまう。
私自身も必要となった事例がありません。
もし必要となったら、他の言語を検討するんじゃないかと思ってます。

[ 親 96792 / □ Tree ] 返信 編集キー/

▲[ 96792 ] / ▼[ 96866 ]
■96864 / 1階層)  Re[1]: 逆コンパイル対策
□投稿者/ Azulean (1183回)-(2021/02/19(Fri) 20:25:47)
No96792 (naoki さん) に返信
> ですが、「ConfuserEx」で難読化したものは、ウイルス対策ソフトに、ほぼ軒並みウイルスと
> 偽陽性判定されてしまいます。
> ここ最近、作ったものはほぼ全滅です。(難読化レベルは適時変更しています。)

基本的に未知のバイナリ、あまり広まっていないバイナリは信頼度が低いと判定されると思いますので、どうしようもないのでは?と思います。
どうしても信頼度上げたいなら、デジタル署名でもつけてください。


> 私はIT関連ではない、趣味でソフトを作っている素人です。
> プログラミングを生業しているプロの皆様にとってはリバースエンジニアリング対策は死活問題
> だと思うのですが、どのような対策を取られているのか、教えてください。

商用であっても、C# 部分は無対策で大事なところは C++ で書く、あるいは特許で守るということもあると思います。
マネージコード率が高く、そこを大事な資産とみている製品では確かに難読化がかかっていますが、そういったところほど、ちゃんと署名しているように思います。


個人の趣味レベルであれば、ソースコードを守るために頑張るよりは、ほかのことで頑張った方が有用だと思います。
世の中にはオープンソースでかなり高機能・高品質なものもありふれていますので、その中で必死に守りたいほどか…と悟ると…。
[ 親 96792 / □ Tree ] 返信 編集キー/

▲[ 96864 ] / ▼[ 96878 ]
■96866 / 2階層)  Re[2]: 逆コンパイル対策
□投稿者/ hihijiji (2回)-(2021/02/20(Sat) 11:10:54)
プロはプログラムを書くのが目的ではなく、本来の目的があってそれを解決する手段として
プログラムを書いているのです。
ですから目的を達成するために別の手段が取れるならプログラムを書きません。
書かないプログラムにはバグもないですからね。

そしてプログラムを書かざるを得ない部分てのは往々にして環境特化してます。
また保守性を良くするためにシンプルで陳腐なロジックを使います。
そんな物は他人にとっては石ころほどの価値もありません。
気をつけてるのは見られても恥ずかしくないように綺麗なコードを書くぐらいですね。

もちろん見られて困るようなデータなどは存在します。
そのような物ははじめから配布してはいけません。
別サービスで結果だけを返すようにする必要があります。
[ 親 96792 / □ Tree ] 返信 編集キー/

▲[ 96866 ] / 返信無し
■96878 / 3階層)  Re[3]: 逆コンパイル対策
□投稿者/ naoki (1回)-(2021/02/22(Mon) 09:03:33)
皆様、ありがとうございます。

なかなかレスが付かなかったので、業界外の人間としては、「こういう話題はタブーなのかな」とか
「社外秘なのかな」とか思ったりして、半ば、あきらめていたのですがお返事をいただけて大変うれしいです。

プロの方の意見は、とても参考になりました。
どうも、ありがとうございました。

解決済み
[ 親 96792 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -