事業
リバースエンジニアリング
ソースコードや仕様書が失われブラックブックス化したプログラムの詳細な動作を知るためには、プログラムをリバースエンジニアリングするしかありません。リバースエンジニアリングとは解析対象プログラムを逆アセンブルして動作を特定することです。動的解析だけではなく静的解析も行うことができますので、通常では動作しないコードの内容も知ることができます。
リバースエンジニアリングの結果として同等の動作をするサンプルコードや仕様書を提供します。またリバースエンジニアリングの結果から可能ならばプログラムの不具合を修正します。
具体例
通常、これらの事例ではそのソフトウェアの開発元が修正などを行うことが、最も早くコストもかからずに問題を解決できます。しかしソフトウェアを開発した会社が既に存在しなかったり、あるいはその会社に問題を解決するだけの能力がない場合があります。そのような場合、私たちはリバースエンジニアリングによって問題の解決を図ります。
- 突然の不具合
長年安定して使ってきたソフトウェアであっても、ある日突然に不具合が生じることがあります。しかし古いソフトウェアは開発元のサポートが受けられないことがあります。私たちは開発元に代わって不具合を修正します。
- 仕様不明のファイル
仕様書が残っていないためソフトウェアが扱うファイルのフォーマットがわからず、新たにソフトウェアを更新することが困難な場合があります。私たちは新たにファイルのフォーマットの仕様書を作成してソフトウェア開発に役立てます。
- 古いOS向けに作られたプログラムの改造
Windows 95/98/ME/NT/2000などのサポートが終了したOS向けに作られたプログラムは、新しいOSで不具合が生じることがあります。問題を解決するためにはプログラムの修正が必要ですが、ソースコードが無い場合には通常の方法では修正できません。プログラムの一部を書き換えることで対応できる可能性があります。
- アンチウイルス製品の警告
作られた当時は問題がなかったものの、アンチウイルス製品が警告を行う条件の変化によって最新のアンチウイルス製品で警告が表示されてしまう事例があります。特定のファイルへの書き込み、レジストリの変更、実行ファイルの難読化などが該当します。マルウェア解析の知識を生かして問題を解決します。
- ソフトウェアの検証
2000年問題のような、将来起こるかもしれない問題について仕様書やソースコードがない状態であっても検証を行うことができます。
注
リバースエンジニアリングは依頼者が正当な権利を有する場合に限ります。プログラムの改変は著作権法第20条第2項第3号に基づき行うことができます。