Microsoft が Sql Server バイナリをリバース エンジニアリングから保護する方法に興味がありますか? たとえば、C++ dll もいくつかあり、リバース エンジニアリングから保護したいと考えています。これは、dllがマシンコードにコンパイルされるという論理的なことですか?
3 に答える
リバース エンジニアリングに対する技術的な防御策はありません。その機能を完全に観察して理解するために、インサーキット エミュレータでコードを実行することは常に可能です。これは非常に時間のかかる作業ですが、見返りが見込める場合は実行できます。1990 年代の有名な例の 1 つは、Windows 95 API の隠された機能を明らかにしたAndrew Schulman の研究です。
この種の分析には技術的な障壁はありませんが、プロセスの有用性には確かに法的および実際的な制限があります。資格のあるエンジニアと十分な時間があれば、Microsoft Windows、Office、または Oracle データベース バイナリを含む大規模なソフトウェア パッケージを完全にリバース エンジニアリングできます。この努力に対するあなたの見返りは、ライセンスのない違法なソフトウェアのコピーを作成できることです。これには商業的または実用的な価値はありません。
.NET または Java アプリケーションに使用される難読化ユーティリティは、これらの言語に固有の問題に対処します。これらはメソッド名とプロパティ名の検査をサポートしているため、コードの機能だけでなく、元の言語で使用されている公開識別子もリバース エンジニアリングできます。ソースコード。C++ はリンクにシンボリック名を使用しますが、利用可能な豊富な命名情報がないため、難読化は必要ありません。コードが公開識別子を使用してリバース エンジニアリングされた場合でも、プロセスには同じ実用的および法的制限が適用されることに注意してください。
アセンブリを難読化すると、DLLが適切に保護されます。周りには多くのあいまいなソフトウェアが存在します。あなたはそれらについてもっと学び、どれがあなたに最適であるかを決めるかもしれません。
dllはマシンコードです。何でもリバースエンジニアリングできます。彼らは2つのことに依存しています。関与する努力と難読化。
編集
MS $を使用すると、アップグレードや互換性などが得られることを忘れてしまいました(Word文書などの形式がときどき変更されるのはなぜだと思いますか)。