分解剤とデコンパイラとは何ですか?

ソースコードへのアクセスが許さない独自のソフトウェアを分析することは、特殊なツールが必要です。 ディスアセンブルとデコンパイラは、研究者、セキュリティアナリスト、および開発者が、さまざまなレベルの抽象化で実行可能バイナリを調べることを可能にするリバースエンジニアリングツールの2つのカテゴリです。 A [ディスアセンブルは、機械コードを読み、人読みやすいアセンブリ言語に翻訳し、プロセッサーをさらに実行する手順を[FLT:]として、または、独自のソフトウェアを生成します。 [FLT:は、独自のソフトウェアを、同じように、同じように、テストします。 [FLT] または、 同じように、 コンパイルする。

分解業者の働き方

ディスアセンブルは、指示バイトを解析し、対応するアセンブリのマネモニックにマッピングすることで、バイナリファイル、PE、ELF、Mach-O、または生のファームウェア画像に直接操作します。このプロセスは、x86、ARM、またはMIPSなどのプロセッサの指示セットアーキテクチャ(ISA)に依存しています。 ディスアセンブルは、線形スイープ(コードシーケンシャルリーによるステップ)または再帰的トラバース(コントロールフローのフォロー)を使用して、詳細な説明をするために、ReFarly[Farly]と[Far]をディファルトして、より正確に表示します。

鹿の働き方

Decompilers は、解析パスと分解を組み合わせて、抽象化レベルを上げます。まず、バイナリを分解します。その後、制御フロー分析を行い、制御フローグラフ(CFG)とデータフロー解析を組み合わせて、可変的な使用量とタイプを追跡します。パターンマッチングとヒューリスティックは、典型的な高レベルのコンストラスメントを再構築するために適用されます。ループ、 if-then-else ブロック、スイッチステートメント、関数呼び出し。出力は通常、構造化された、Cpligler のような既読のフォームです。(Cpligler は、Recom のコードを生成します)。

練習中の分解剤およびデコンパイラの使用

セキュリティ分析と脆弱性調査

セキュリティの専門家は、分解剤とデコンパイラを使用して、弱点のための独自のソフトウェアを監査します。バイナリを調べることにより、メモリ破損のバグ、不適切な入力検証、またはハードコードされた資格情報を特定できます。注目すべき事件—OpenSSLやファームウェアのバックドアの Heartbleed脆弱性の発見など、バイナリ分析が始まりました。解読コードは、組み立てページをスターすることなく複雑な機能のロジックを理解するのに役立ちます。

マルウェア解析

マルウェアのサンプルは、ソースコードとほぼ分散しません。アナリストは、悪意のあるペイロードを理解し、暗号化のルーチンを特定し、コマンドの追跡と制御通信を識別するために、分解のバイナリのブロブをより管理可能な偽りの表現に変換することによって、この作業を加速します。 ]Radare2]と Ghidra:この領域は、特に、この領域は、この領域が自由であるので、彼らは、この領域は、これらは、一般的に普及しているので、彼らは、この領域は、このようなツールは、それが一般的です。

失われたまたはレガシーソースコードを回復する

古代ソフトウェアを維持している組織は、バージョン管理や人員の売上高が悪いため、元のソースを失うことがあります。 分解は、コードベースの機能的な等価を再構築するのに役立ちます。メンテナンスや近代的なプラットフォームへの移植を可能にします。 分解された出力は、重要なクリーンアップを必要とするかもしれませんが、それ以外の場合は取得不可能になる出発点を提供します。

学習のプロプライエタリーアルゴリズムと相互運用性

競合他社やオープンソースプロジェクトは、独自のプロトコルやファイル形式と相互運用する必要があるかもしれません。関連するバイナリを分解すると、アルゴリズムの構造、データフォーマット、および状態のマシンが明らかにされます。これは、従来のソフトウェアの互換性のあるドロップイン置換の開発で一般的です。同様に、プラグインを書くか、クローズドソースアプリケーションを拡張したい開発者は、多くの場合、リバースエンジニアリングバイナリインタフェースが必要です。

人気の分解器とデコンパイラ

IDA Pro(インタラクティブ・ディスアセンブル)

IDA Proは、バイナリ解析用のデファクトスタンダードです。 CPUアーキテクチャの数十をサポートし、強力なスクリプトインターフェース(IDAPython)を提供し、ヘックスレイズデコンピラープラグインと統合します。 そのクロスリファレンス、グラフビュー、デバッガは、それを分解と分解するための包括的なプラットフォームにします。 IDAは商用ソフトウェアですが、限られた使用のために無料のソフトウェアバージョン(IDA Free)が利用可能です。

ジドラ

ナショナルセキュリティエージェンシーが開発した、オープンソースとしてリリースされたGhidra rivals IDAは、多くの点で展開しています。組み込みのデコンパイラ、プログラム可能な API(PythonまたはJava)、およびコラボレーション解析機能が含まれています。Ghidraのデコンパイラは、特にx86、ARM、およびPowerPCのバイナリに強いです。プラグイン開発者の大規模なコミュニティが無料で利用できます。詳細については、 [Gdrahidrahidrah公式ウェブサイト[F]を参照してください。[F][F]

ラダレ2

Radare2は、分解、分解()、または]プラグイン、およびデバッグ機能を提供するコマンドライン駆動リバースエンジニアリングフレームワークです。 非常にモジュラーでスクリプト可能で、より大きな分析パイプラインへのオートメーションと統合に最適です。 Radare2は無料でオープンソースです。

六角線式デコンピラー

Hex‐Raysは、X86、x64、ARM、PowerPCをサポートするIDA Pro用の市販のデコンパイラプラグインです。C‐のような偽りなコードを再現し、最も正確なデコンピラとして広く評価されています。多くのセキュリティ会社と脆弱性研究者は、ワークフローに不可欠なヘックスレイスを検討しています。

その他の注目すべきツール

  • []Hopper(macOSとLinux) - ユーザフレンドリーなGUIで分解と分解の両方を提供します。
  • []バイナリ忍者[] - 使いやすさと強い中間言語に焦点を当てた近代的なリバースエンジニアリングプラットフォーム。
  • [objdump]と[readelf(GNUの両用) - Unixシステム上のクイック検査のための基本的な分解剤。

課題と限界

コンパイルされたコードの複雑さ

コンパイル最適化(インライン化、ループアンロール、定数の折り畳み)は、元のソースから大幅に分散する機械コードを生成します。デコンパイラは、低レベルのシーケンスから高レベルのセマンティックを再構築する必要があります。これは、あいまいか誤った出力につながることができます。仮想化ベースのパッチャ、制御フローフラットテンディング、および不透明プリセットなどの高度な難読技術 - ファーザーコンプリケート分析。

法的およびライセンス

リバースエンジニアリング独自のソフトウェアは、法律で多くの管轄区域で制限されています。 米国のデジタルミレニアム著作権法(DMCA)、EU著作権指令、および同様の法律は、相互運用性、セキュリティ調査、または教育に対するリバースエンジニアリングを免除する可能性がある規定を含みますが、境界は異なります。 分析する製品を分解または解体する前に、常に法的相談してください。 有用なリソースは電子財団のDMCAの概観です[1][]][[[[[[FLT]]]]]]]][[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]][[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[

不完全な出力

分解者は、すべてのコードパス(例えば、複雑なアドレスを介して間接ジャンプ)を処理できず、解読者は複雑なデータ構造やインライン関数を再構築できないことがあります。出力は、手動の補正と注釈が必要です。経験豊かなアナリストは、分解されたビューと解読された間を交互にプログラムの精神的なモデルを開発します。

法的および倫理的フレームワーク

許可なしに分解剤やデコンパイラを使用することで、契約や著作権法に違反することができます。しかし、いくつかの法的安全ハーバーが存在します。セキュリティ研究者は、一般的に、米国サイバーセキュリティ情報共有法(CISA)およびジャスティスの部門のガイドラインによって認められているように、良好な信仰の脆弱性研究を実施するときに保護されています。欧州連合の指令は、デジタル単価市場における著作権で保護されており、ツールが違法な目的のために使用されていない限り、相互運用性のためのリバースエンジニアリングを可能にします。また、Uflationsは、法律での使用を禁止するか、または禁止します。

倫理的な使用は、ソフトウェア作成者の権利を尊重します。 抽出されたコードを使用して、独自の製品の機能を再複製し、許可なく機密独自のアルゴリズムを公開しないでください。 業界ベストプラクティスは、リバースエンジニアリングによって見つかった脆弱性の責任ある開示を奨励します。

より深い方法で、法律面への潜入のために、 ]U.S.著作権事務所のフェアユース指数]と[CISAテキスト]を読んで検討してください。

分解と分解における将来のトレンド

機械学習強化解析

最近の研究では、ニューラルネットワークを使用して、関数を分類し、変数型を特定し、バイナリスニペットを直接高レベルの言語ステートメントに分解します。まだ実験中、AI によるリバースエンジニアリングは、難読化または大きなバイナリの解析を加速することを約束します。

プラットフォームのカバレッジの改善

新規の命令セットが出現する(RISC-V、WebAssemblyなど)、分解者およびデコンパイラの開発者はサポートを追加します。例えば、既に30以上のアーキテクチャをサポートしており、コミュニティの貢献はIoTマイクロコントローラとブロックチェーン仮想マシンへの到達を延ばしています。

クラウドベースのコラボレーション

バイナリ忍者のクラウド分析やGhidraの共有プロジェクトファイルなどのツールは、分散されたリバースエンジニアリングチームを可能にします。この傾向は、より広範な共同ソフトウェア開発に向けて動き、大き複雑な違反やマルウェアキャンペーンを分析するために特に有益です。

コンテンツ

分解者とデコンパイラは、独自のソフトウェアに可視性を得るために不可欠な手段です。 彼らは、セキュリティ監査、マルウェア分析、コードの回復、および、元のソースコードにアクセスすることなく相互運用性を可能にします。 IDA Pro、Ghidra、Radere2、およびHex-Rays各が提供する異なる利点、およびオープンソースコミュニティは、これらの強力なツールを民主化し続けています。 しかし、ユーザーは、慎重に法的および倫理的な制約をナビゲートする必要があります。 再構成、分解および分解を使用して、未知のソフトウェアを保護することで、より明確に保護されたシステムが、より明確に理解し、より明確に理解することができます。