Windows / Microsoft製品
- EULAにリバースエンジニアリングを許可しない。ということが明記されている。
- 誰かが訴えられてくれないと、リバースエンジニアリングはOKなのかわからない?
- 今日のプレゼンは小野寺さん個人の異見。MS公式な見解ではない。
ソフトウェア開発者・提供者として
- ソフトウェアの秘密は守りたい
- 開発サポートを円滑に進めたい
- アプリケーション、ミドルウェアのデバッグ
- リバースエンジニアリングが必要
安全な?リバースエンジニアリング
- デバッグ
- Microsoftはデバッガ、デバッグ用のシンボルを提供している
- Malware解析
- アプリケーションと同じ扱い
- 開発者が権利を主張することは無い
- 脆弱性解析
- グレーゾーン
- 製品解析ではなく、製品の"不思議な挙動"による
アプリケーションへの影響を解析していると解釈
リバースエンジニアリングの阻止
- 難読化
- .NET Framefork(CLI)向けに必要
- Dotfuscator community editionがVS2005に添付されている
- .NET Frameworkの主要コンポーネントは難読化がされていない
- デバッガの検出
- Protected Process(Vistaのみ)
- Kernel(OS)レベルでプロセスを保護
- Microsoft公認rootkit?
- ただしMicrosoftの認証が必要
これからの人へ
- 自分で作ってみる
- WinDbgのHelpを読む
- 試してみる
おまけ
- Microsoft開発者の人はほとんどソースコードをみていない
- 時間がかかる
- ソースコードを見てしまうことで、誤解析
- マルウェア解析のある一定のところまでは自動化されている
- 最後のつめだけ人間が判断
- 専用の解析ツールが作成されている
もう少し、リバースエンジニアリングについてオープンに
話し合うべきじゃないかな?という御意見
質問タイム
- Protected Processについての質問
- デバッグはCheck Build版のWindowsを使う
- 作れるのはProctected Processのライセンスを受けている人
Keyword(s):
References:[いろいろメモ]