Mac

iOS 18.4開発者ベータ1のiOSデバッガーでJITを動作させるための面倒なアプローチが披露されました

iOS 18.4開発者ベータ1のiOSデバッガーでJITを動作させるための面倒なアプローチが披露されました

約 1 週間前、iOS & iPadOS 18.4 開発者ベータ 1 が、ネイティブ デバッガー外部で使用される iPhone および iPad アプリのジャストインタイム (JIT) コンパイルの使用に与える影響について報告しました。これは、AltJIT、SideJIT、Jitterbug などのユーティリティの助けを借りてサイドロードされたアプリ内での使用に影響します。

Duy Tran 氏は、iOS 18.4 開発者ベータ 1 の iOS デバッガーで JIT を使用して実行されている Minecraft のスクリーンショットを共有しています。

しかし、その記事で触れたように、唯一可能な回避策は、開発者が何らかの方法で iOS および iPadOS プラットフォーム上の JIT 用デバッガーを利用することです。そして、先週 Twitter (旧 Twitter) で共有された投稿によると、ハッカーであり改造者である Duy Tran ( @TranKha50277352 ) がまさにそれを行ったそうです。

この投稿では、iOSデバッガ内でプレイ中の人気ビデオゲーム「Minecraft」のスクリーンショットが紹介されています。リンク先のGitHubページには、この方法がiOS & iPadOS 18.4 開発者ベータ1で動作し、分割されたrx/rw領域を使用していることが記載されています。

コメントによると、このコードは実行領域をデバッグマップに変換するようです。デバッガがJITコンパイルを実行したいメモリページに書き込むだけで動作します。確かにハック的な回避策ですが、ちゃんと動作します。

投稿で説明されているように、このアプローチは面倒で、近い将来に機能しなくなる可能性があります。なぜなら、AppleがサイドロードアプリのJITサポートを終了することに固執しているのであれば、iOS & iPadOS 18.4の正式リリース前にこのハックをパッチで修正するのは非常に簡単だからです。

最近、なぜJITが話題になっているのでしょうか?事前コンパイル(AOT)とは異なり、JITコンパイルは汎用的なマシンコードを利用することで、非ネイティブシステム上でプログラミングコードを実行するための、はるかにパフォーマンスの高い方法を提供します。エミュレーションでの使用など、多くの利点がある一方で、AppleはマルウェアがJITを悪用する可能性があるため、セキュリティ上の脅威となる可能性があると認識しています。

iPhoneとiPadのユーザーがソフトウェアアップデートによってJITにアクセスできなくなると、サイドロードされたアプリはJITなしでも動作しますが、JITありの場合ほどスムーズでパフォーマンスは向上しません。その結果、ユーザーエクスペリエンスは悪化するでしょう。

いずれにせよ、この小さな回避策はうれしいものですが、iOS および iPadOS 18.4 の Apple 開発者ベータ リリースが初期段階にあることを考えると、この回避策が長く続くことはないでしょう。

AppleがサイドロードアプリでJITをターゲットにしていることに憤りを感じていますか? 下のコメント欄でご意見をお聞かせください。

Milawo
Milawo is a contributing author, focusing on sharing the latest news and deep content.