LLM支援逆コンパイル:進化する戦略とツール

この記事では、特にNintendo 64ゲーム『Snowboard Kids 2』の逆コンパイルにClaudeを使用するLLM支援逆コンパイルの課題と戦略について論じています。初期の進捗はワンショット逆コンパイルを含み、一致コードを約25%から58%に向上させました。しかし、進捗が鈍化したため、最終的に約75%の一致関数に到達するにはアプローチの変更が必要となりました。
重要な戦略の一つは、どの不一致関数に取り組むかを優先順位付けすることでした。当初は、命令数や制御フローの複雑さなどの特徴に基づいて難易度を推定するロジスティック回帰モデルを使用しました。このアプローチが停滞した後、アセンブリ命令のテキスト埋め込みによる関数類似性の探索が実りある結果をもたらしました。これには、有用な参照を提供するために類似した一致関数を計算することが含まれ、Claudeの逆コンパイル性能を向上させました。
類似性を計算するために、ベクトル埋め込みについて議論されました。これは、高速な検索のためにRAGシステムでよく使用されます。しかし、数千の候補しかないプロジェクトでは、正確な類似性計算が可能でした。正規化された命令n-gram、制御フロー・パターン、メモリアクセス・オフセット、および構造的メトリクスを考慮した合成類似性スコアが当初使用されましたが、後にCoddogのよりシンプルな方法、つまりオペコード・シーケンスに対する有界レーベンシュタイン距離の計算が同様に効果的であることが証明され、複雑さを軽減しました。
gfxdis.f3dex2やdecomp-permuterなどの専門ツールもClaudeの性能を向上させました。特にF3Dex2ライブラリの使用により、N64のReality Display Processor(RDP)マイクロコードの扱いがより管理しやすくなり、カスタムのリバースエンジニアリングの必要性を回避しました。
📖 全文を読む: HN LLM Tools
👀 See Also

オブシディアンとOpenClawをセカンドブレイン設定として使用する
ある開発者が、OpenClawとObsidianをセカンドブレインシステムとして活用するセットアップを共有しました。QMDを実装することで効率的なノート検索を実現し、オンデマンドでのスキル読み込みによりトークン使用量を80〜90%削減しています。

Claudeをシニアデベロッパーとして活用したジェネレーティブぬりえアプリの開発
中級iOS開発者が、Claudeを使ってエッジケースを発見し、安全対策を実装しながら、子供向けSwiftUIぬりえアプリを構築した経験を詳しく語ります。

OpenClawがLinux上でローカルLLMを使いフルシステム管理者として動作
あるユーザーが、Linuxサーバーのフルシステム管理者としてOpenClawを実行しており、Qwen 3.6 27b q6をローカルで使用し、Tailscale以外の外部インターネット接続はありません。このセットアップで、キオスクモードのデプロイを自律的に処理したと報告しています。

AI運営ストア構築の第9話:クロードコードエージェントのためのマルチエージェント連携
オーケストレーターシリーズの最新エピソードでは、6つのClaudeコードエージェントが作業を引き継ぎ、競合を回避し、AI企業を運営する際にセッション間で状態を維持する方法について解説しています。