戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2017年 秋期 午前(科目A)50


問題文

ソフトウェアのリバースエンジニアリングの説明はどれか。

選択肢

開発支援ツールなどを用いて、設計情報からソースコードを自動生成する。
外部から見たときの振る舞いを変えずに、ソフトウェアの内部構造を変える。
既存のソフトウェアを解析し、その仕様や構造を明らかにする。(正解)
既存のソフトウェアを分析し理解した上で、ソフトウェア全体を新しく構築し直す。

##: ソフトウェアのリバースエンジニアリングの説明はどれか。【午前2 解説】

要点まとめ

  • 結論→リバースエンジニアリングは既存のソフトウェアを解析して、その仕様や内部構造を明らかにする技術的活動です。
  • 根拠→ソースコードやバイナリ、実行時の振る舞いを解析し設計意図やデータ構造を復元する点が特徴です。
  • 差がつくポイント→自動生成やリファクタリング、再構築とは目的が異なり「解析・理解」が主目的である点を押さえてください。

正解の理由

正解は です。リバースエンジニアリングは既存のソフトウェアを解析して、その仕様や構造、設計意図を明らかにする行為を指します。実行ファイルの逆アセンブルやデコンパイル、プロトコル解析、動的解析などを通じてソフトの内部を理解することが目的であり、選択肢ウの記述と一致します。

よくある誤解

  • 解析の目的を「修正や再構築」と混同する誤解:リバースエンジニアリング自体は理解・解析が目的で、再設計や再構築は別の工程(リバース・リインジニアリングやリライト)です。
  • 自動コード生成や単なるリファクタリングと同じと考える誤解:コード自動生成(設計→コード)やリファクタリング(内部改善)は前向き開発であり、リバースエンジニアリングとは逆の流れです。

解法ステップ

  1. 問題文のキーワード「解析」「仕様や構造を明らかにする」を確認する。
  2. 各選択肢が「解析・理解」「生成・変換」「再構築」のどれに該当するか分類する。
  3. 「解析・理解」に該当する選択肢が正解であるため、それと一致するものを選ぶ(ウ)。

選択肢別の誤答解説

  • ア: 開発支援ツールなどを用いて、設計情報からソースコードを自動生成する。
    • 説明:これは逆ではなく前工程(設計→実装)を自動化する行為で、コード生成に該当します。リバースエンジニアリングではありません。
  • イ: 外部から見たときの振る舞いを変えずに、ソフトウェアの内部構造を変える。
    • 説明:これはリファクタリングやリライト、あるいは動作を変えないリプレース(置換)に近く、目的が内部改善であり解析が主目的ではありません。
  • ウ: 既存のソフトウェアを解析し、その仕様や構造を明らかにする。
    • 説明:正解。解析によって仕様・設計を抽出・理解する行為であり、リバースエンジニアリングの定義に合致します。
  • エ: 既存のソフトウェアを分析し理解した上で、ソフトウェア全体を新しく構築し直す。
    • 説明:これはリエンジニアリングやリライト(再構築)に相当します。解析を含む場合もありますが、目的が「新しく構築する」点でリバースエンジニアリングそのものではありません。

補足コラム

  • リバースエンジニアリングは技術的手法の総称で、静的解析(逆アセンブル・デコンパイル)と動的解析(実行トレース・プロファイリング)に分けられます。
  • 法的・倫理的配慮が必要です。著作権やライセンス、契約で禁止されている場合や、ソフトウェアの不正利用につながる解析は問題になります。
  • 実務的な用途例:互換性確認、脆弱性調査、故障解析、レガシーシステムの仕様抽出など。単にコードを再生成する行為(自動生成)とは目的が異なります。

FAQ

Q1: リバースエンジニアリングとデコンパイルは同じですか?
A1: デコンパイルはリバースエンジニアリングの一手法で、バイナリからソース様式のコードを生成して理解を助けますが、解析全体はより広範です。
Q2: リバースエンジニアリングは違法ですか?
A2: ケースバイケースです。許可された目的(相互運用性確保やセキュリティ調査など)は認められることがありますが、ライセンスや契約、各国の法令を確認する必要があります。
Q3: 試験ではどう見分ければよいですか?
A3: 「解析・理解」を直接示す文言(仕様や構造を明らかにする)があればリバースエンジニアリング、生成や改善、再構築といった目的語があれば別の選択肢を疑ってください。

関連キーワード: リバースエンジニアリング、逆アセンブル、デコンパイル、静的解析、動的解析、リファクタリング、リエンジニアリング、互換性解析
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について