Apple Silicon構成のバイナリ環境 (1)

  • 作者:ZERO-A-ONE
  • 日付:2022-07-30

このシリーズは、リバース エンジニアリングや PWN などのシナリオを含むバイナリ研究に適した環境を構築するために、M1 Pro ベースの Apple Silicon チップ MacBook Pro ノートブックを使用した私自身の使用を記録することを目的としています。

0x1 Ghidra - IDA の代替

1.1 はじめに

よく知られているように、バイナリ CTFer または研究機関にとって、優れた分解ツールは生活と仕事に欠かせない製品です。その中でも、Interactive Disassemblyr と Hex Rays デコンパイラによって起動された IDA Pro は、常にユーザーの最初の選択肢でした。ただし、IDA Pro はバージョン 7.6 まで Apple Silicon のネイティブ ARM64 サポートを提供しませんが、X64 バージョンも Rosetta2 で適切に実行できます。インターネット上には macOS 用の IDA のリークされたバージョンが不足しており、代替品を見つける必要があります

米国国家安全保障局 NSA によって開発された Ghidra を見ることができます。これは、Java Swing フレームワークで記述された GUI であり、逆コンパイル コンポーネントは C++ で記述されています。Ghidra のプラグインは、Java または Python (Jython 経由) で開発できます。Ghidra のデバッガーは、WinDbg を介したユーザー モードの Windows プログラムと GDB を介した Linux プログラムのデバッグをサポートします。

Ghidra は、次のアーキテクチャまたはバイナリ形式を既にサポートしています。

  • x86 16、32、および 64 ビット
  • ARおよびAARCH64
  • PowerPC 32/64 および VLE
  • MIPS 16/32/64
  • マイクロミップス
  • 68xxx
  • Java および DEX バイトコード
  • PA-リスク
  • 写真 12/16/17/18/24
  • スパーク 32/64
  • CR16C
  • Z80
  • 6502
  • 8048、8051
  • MSP430
  • AVR8、AVR32
  • スーパーH
  • V850

ギドラの使い方を詳しく知りたい方は、カンシュエ講座「ギドラ操作マニュアル」をご覧ください。

https://www.kanxue.com/book-section_list-64.htm

1.2 インストール

1.2.1 JDK

Ghidra は Java で記述されているため、最初に JDK をインストールする必要があります。

https://www.oracle.com/java/technologies/downloads/#jdk18-mac

環境変数を構成する手順を節約するために、Apple Silicon インストール バージョンを直接ダウンロードすることを選択することをお勧めします。Arm 64 DMG Installer

https://download.oracle.com/java/18/latest/jdk-18_macos-aarch64_bin.dmg

それならばかのインストールです

1.2.2 ガイド

公式の Github からディストリビューションをダウンロードします。

https://github.com/NationalSecurityAgency/ghidra/releases

解凍後に実行ghidraRun する

0x2 IDA プロ

インターネット上のマスターが IDA Pro 7.6 を Apple Silicon で実行するソリューションを提供しているのを見ました。その主なコア技術は、wine の互換性レイヤーを使用することです。

Wine の M1 バージョンとの互換性は、基本的には外国のマスターのgcenxコンパイルbrew

Python 環境が不要な場合は、winehq を別途インストールすることもできます。しかし、winehq python 環境を構成できず、IDA 構成の winehq がクラッシュし、bat スクリプトを実行できません。

2.1 ワインスキンのインストール

wineskin は、wine コンテナーの作成、Mac App shell の作成、IDA を開くことができる launchpad へのエイリアス アイコンの作成を支援してくれます。

次の方法でbrewインストールwineskin

brew install --no-quarantine gcenx/wine/unofficial-wineskin

ここでは、Clash のローカル ターミナル エージェントを有効にすることをお勧めします。有効にしないと、中国の Git へのアクセスが非常に遅くなります。

インストールが完了すると、wineskin がランチパッドに表示されるので、それを開いてダウンロードし、コンテナーを作成します。
ここに画像の説明を挿入
ここに画像の説明を挿入

2.2 Python 3 環境の構成

Python の公式 Web サイトにアクセスして、Windows 64 ビット実行可能パッケージpython 3.8をダウンロードし、IDA のルート ディレクトリに解凍して、次のように名前を付けますpython-3

Windows 用の Python リリース | Python.org 20

https://www.python.org/ftp/python/3.8.10/python-3.8.10-embed-amd64.zip 47

2.3起動スクリプトを作成する

以下の内容をコピーして名前を付けて保存しrun64.bat、IDA のルート ディレクトリに保存します。

@set path=.\python-3;%path%
@set PYTHONPATH=.\python-3
@start ida64.exe

2.4 準備した IDA を Wine コンテナにインポートする

IDA を選択しInstall Softwareてコピーします。
ここに画像の説明を挿入

2.5 wineskin コンテナーの実行パスを構成します。

ここに画像の説明を挿入

2.6 環境変数の設定

レジストリ エディターを開き、次のパスを見つけます。

HKEY_CURRENT_USER\Software\Hex-Rays\Python3TargetDLL

に設定します(実際の状況に応じて変更する必要があります):

C:\Program Files\Hex-Rays\IDA Pro\python-3\python3.dll

注: Hex-Rays パスが見つからない場合は、ida.exe を一度テスト実行するか、手動で作成してください;
Python3TargetDLL キーが見つからない場合は、文字列型のキーを手動で追加してください。

注意: idapyswitch.exe を使用して、インストールされているバージョンの python を使用してレジストリを変更しようとしないでください。idapyswitch.exe によって取得された dll パスが正しくないため、インストールされているバージョンの python は wine 環境変数を正しく設定できず、IDA がクラッシュします。

wine コンテナーの代役を作成し (アイコンは wineskin に設定する必要があります)、/Applicationディレクトリーランチパッドから ida 7.6 を開始できます。
ここに画像の説明を挿入
ここに画像の説明を挿入

python3 も通常どおり使用できます。

ここに画像の説明を挿入

ここでは、元のブロガーが提供するパッケージ化されたパッケージを直接使用することもできます。

链接:https://pan.baidu.com/s/1todGWnAXMg6emvJooL58VA?pwd=8617 
提取码:8617

0x3 仮想マシンの選択

ネチズンの現在の調査要約によると、Appleシリコンに適しています

  • pd:400年以上、ヒビ無し、時間自動変更でお試し無制限

    • pd は Windows を実行します: dx11、OpenGL 3.3

    • pd は Linux を実行します: OpenGL 4.1、バルカンなし

  • ヴイエムウェア: 無料

    • Windows を実行している vmware: 2D のみ、dx なし
    • VMware は Linux を実行します: OpenGL 4.3 には、未リリースの Linux 5.19 カーネルと最新の mesa ドライバーが必要です (VMware の Linux ドライバーとツールはオープン ソースです)。
  • utm: オープン ソース、ジェイルブレイク iOS、qemu gui をサポート

    • utm は windows を実行します: 2D のみ、x86 windows をシミュレートできますが、win7 をシミュレートした後は比較的スタックし、win7 または xp をシミュレートする方がスムーズです
    • Linux を実行している utm: OpenGL 2.0、非常にクラッシュしやすい

結論は:

  • windows11 select pd
  • GUI を使用して Linux 用の vmware を選択する
  • コマンドライン Linux で utm (または lima) を選択

注: Linux を実行している vmware は OpenGL4.3 を取得できます。Apple は意図的に macOS で OpenGL バージョンを 4.1 にロックしています。

参考文献

おすすめ

転載: blog.csdn.net/kelxLZ/article/details/126076181