0

おそらく本当にばかげた質問ですが、システム機能をトリガーしたりハードウェアを制御したりするためのアセンブリコードを記述できない理由を誰かが説明できますか?たとえば、画面のオン/オフを切り替えるコードや、デバイスの電話を書くことはできませんか?

私はデバイスの脱獄について話しているのではなく、アプリストア用のアプリを作成しているのでもありません。システム関数を呼び出すためのアセンブリを備えた通常のアプリ。

本当に可能であれば、誰かがそのようなタスクを達成するための良い参照または出発点を持っていますか?

ありがとう

4

2 に答える 2

2

iPhoneは、各ユーザープロセスが独自の仮想メモリアドレス空間に含まれているメモリ保護されたオペレーティングシステムを使用しています。アドレス空間はメモリ管理ユニット(MMU)ハードウェアによって保護されており、OSによってプロセスに与えられた領域外のメモリにアクセスしようとすると例外が発生します。OSはハードウェアメモリ範囲をそれ自体に予約し、ユーザープロセスが利用できるようにしません。そのため、ユーザープロセスからハードウェアに直接接続することはできません。

于 2013-03-08T02:29:51.707 に答える
1

アセンブリコードからシステム関数を呼び出すことは確かに可能です。そして、CまたはC ++アプリケーションは何をすると思いますか?それはまさにそれを行います。C / C ++とアセンブリコードはすべて、最終的に(コンパイル時に)CPUが実行するマシンコードに変換されます。

このようなことを行うためのガイドがどこにあるかはわかりませんが、デバッガーでCプログラムを実行して、さまざまなシステム関数がどのように呼び出されるかを確認するか、このプログラムを逆アセンブルして、プログラムを実行せずに逆アセンブルを読み取ることができます。デバッガー。

いずれにせよ、Cで記述されたプログラムよりも、アセンブリで記述されたプログラムからデバイスを制御することはできません。OSは、CPUレベルで特定のI/Oデバイスおよびメモリ領域への直接アクセスを制限する必要があります。アセンブリとCの違いは、CPUと同じであり、マシンコードの一連の命令にすぎません。

于 2013-03-08T00:06:07.667 に答える