2008-09-12 8 views

答えて

7

どのようにリバースエンジニアリングを行いますか?

  • 入力と出力を観察し、オブジェクトの操作を説明する一連のルールまたはモデルを作成します。

例:

のは、あなたがUSBカメラドライバを開発したいとしましょう。 「ブラックボックス」はソフトウェアドライバです。

  1. あなたはドライバ
  2. の入力と出力は、出力を分析し、記述するモデルを合成する一般的な入力を生成し、出力
  3. を記録見ることができるようにOSおよび/またはドライバにフックを開発
をすすぎ、繰り返していない場合、それはあなたが必要なすべてをした場合は、設定が完了しているブラックボックスドライバの場所に置き、そして
  • テストを実行 - 入力と出力
  • テストモデルとの関係

    これは単なる通常の問題解決/科学的プロセスであることに注意してください。たとえば、気象予測者は同じことを行います。天気を観察し、現在の状況をモデルに対してテストし、数日後に何が起こるかを予測し、モデルの出力を現実と比較します。一致しない場合は、モデルに戻って調整します。

    この方法は、コードを逆コンパイルしたり、製品を逆アセンブルし、完全に分析し、見た内容に基づいてモデルを作成する、クリーンルームのリバースエンジニアリングよりもわずかに安全です(法的に)。次に、モデル(および他の意味は)が、製品の機能を複製する開発者に渡されます。しかし、オリジナルを切り離したエンジニアは、著作権で保護されたコード/デザインの部分を持ち出して誤って新しいコードに入れる可能性があるため、参加できません。

    しかし、製品を分解したり逆コンパイルしたりしないと、法的に安全な水域にいるはずです。残っている唯一の問題は特許の問題です。

    -adam

  • 0

    これはかなり漠然とした質問ですが、私はreverse engineeringを言うでしょう。彼らがどのように進むのかは、それがどんな種類のデバイスであり、何が利用できるのかに依存しています。多くの場合、デバイスは、動作するように変更できる他のデバイスと同様のコアチップセットを持つことがあります。

    関連する問題