勉強前イメージ
プログラム作る逆?
解析?
調査
リバースエンジニアリング とは
ソフトウェアやアプリケーション(またはハードウェア)の仕組みを分析し調査することで
動作などの技術情報を明らかにするのがリバースエンジニアリングです。
ソフトウェアの場合は、逆コンパイルなどを行ってソースコードを取得し解析することが多いです。
互換性を開発するために行われたり、脆弱性を探すなどといったセキュリティ上の目的で行われることもあります。
リバースエンジニアリングの注意
リバースエンジニアリングは注意しないと特許権や著作権の侵害に当たる可能性があります。
元となるソフトウェアの権利者に許可なく新規の開発を行うと上記に当たります。
しかし、サイバーセキュリティ確保などの目的であればリバースエンジニアリングは合法になっています。
ですので、どのような目的でリバースエンジニアリングを行うか、またその情報をどうするかを注意する必要があります。
リバースエンジニアリングの対策
- ソースコードを読みづらくして難読化する
ソースコードを読みづらくして解析しづらいようにします。
例えば、意味のないプログラムを入れてみたり、理解しづらいアルゴリズムで書くなどの方法がありますが、
基本的には専用ツールを使って行います。
- コード自体の暗号化
プログラムのファイル自体を暗号化してキーがないと読めないようにします。
勉強後イメージ
雰囲気合ってた気がする。
セキュリティ目的であればいいのねー