HackerNews

ゼロ依存の最小限のArmv7エミュレーターをゼロから構築する

Building a Minimal Viable Armv7 Emulator from Scratch

https://xnacly.me/posts/2025/building-a-minimal-viable-armv7-emulator/


本記事では、著者がRustを用いて、依存関係なしに1.3k行で書いた最小限のArmv7エミュレーターについて紹介しています。このエミュレーターは、32ビットArmバイナリを解析・検証し、メモリセグメントをマッピングし、一部のArm命令をデコード、ゲストおよびホストのメモリアクセスを処理し、Arm Linuxのシステムコールをx86-64のSystem Vシステムコールに変換します。実際にArmv7の「Hello World」バイナリを1.9msで実行できる能力を持ち、著者はこのエミュレーターを作成した理由としてELFフォーマット、Armアセンブリの実行方法の理解を挙げています。また、ARMASMと呼ばれる最小限のバイナリを作成し、そのビルドスクリプトの一部も紹介されています。