ptrace
のような関数を呼び出すようにしています。ptrace(PT_DENY_ATTACH, 0, 0, 0);
#include <sys/ptrace.h>
を使用してインポートしようとすると、エラーコード'sys/ptrace.h' file not found
が返されます。何か不足していますか、ライブラリをインポートする必要がありますか、これは単にiOSで利用できませんか?iOS 8のptrace
答えて
これは私のために働いていると思われ、デバッガの接続を妨げます。 #ifdef オプティマイズが配信中であればテストしていませんので、問題が見つかった場合はお知らせください。
//#include <sys/ptrace.h>
#import <dlfcn.h>
#import <sys/types.h>
typedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data);
#if !defined(PT_DENY_ATTACH)
#define PT_DENY_ATTACH 31
#endif // !defined(PT_DENY_ATTACH)
void disable_gdb() {
void* handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW);
ptrace_ptr_t ptrace_ptr = dlsym(handle, "ptrace");
ptrace_ptr(PT_DENY_ATTACH, 0, 0, 0);
dlclose(handle);
}
int main(int argc, char *argv[]) {
//#ifndef DEBUG => use the following instead.
#ifdef __OPTIMIZE__
//ptrace(PT_DENY_ATTACH, 0, 0, 0);
disable_gdb();
#endif
コードはコンパイルされますが、期待どおりに動作しません(デバッガの添付ファイルを拒否します)。私は単一ビューのiOSテストアプリを作成し、main.mファイルのみを変更しました。私が完全に間違っていないと、Xcode(または任意のデバッガ)はそれに接続できません。 Xcodeの場合は、起動してはいけません。しかし、アプリケーションは正常に動作します...これをさらにテストするために、私はdisable_gdbメソッドの中にNSLogを配置しましたが、決して印刷されませんでした。 #ifndef DEBUGの作業をするために必要なことはありますか? – imas145
はい、DEBUGビルドのプリコンパイル定義としてプロジェクトにDEBUGを手動で配置しています。新しい方法(usinf DEBUG_BUILD = 1)または__OPTIMIZE__がありますが、私は古いコードです。 –
ここでの問題は、Xcodeのすべてのシステム・ヘッダ・パスに対するSDKベースパス(例えば、/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9を付加されることです。 0.sdk/usr/include /)。残念ながら、ptrace.hは存在しませんが、/ usr/include/sys /にあります。それが実行しているとき、私はptrace.hはSDKに含まれていない理由はわかりませんが、あなたが探している機能が動作しない
#include </usr/include/sys/ptrace.h>
:だから、これを解決するために、あなたはあなたのように文を含める変更する必要があります電話で。
更新:これは、Appleへのアップロード、あなたはptraceの機能を使用することができない間に起因して、アプリ拒否になります:私はまた、あなたが解決策を見つけると同じproblem.Didに直面しています
Non-public API usage:
The app references non-public symbols in <app name>: _ptrace
- 1. iOS 8のサンフランシスコフォント
- 2. ptraceとスレッド
- 3. iOS 8とiOS 9両方のシステムフォント
- 4. iOSの8識別子
- 5. ブランチiOS 8ユニバーサルリンクの問題
- 6. UNIXのptrace()ブロックの子供のシステムコール
- 7. iOS 8 GoogleマップSDK myLocationアイコンバブルグラフィカルグリッチ
- 8. マルチスレッドアプリケーションからのptraceの使用
- 9. ptraceを使ったシステムコールのトレース
- 10. iOS 8とiOS 9のNSURLセッションの違いは?
- 11. Xcode 7.3 iOS 8シミュレータデバッグビュー階層が空白
- 12. ptrace PTRACE_ATTACHの失敗 - ユーザー所有プロセスのLinuxパーミッション
- 13. iOS 8のFacebookログイン;ログインスイッチの後にアプリケーションが動作しない
- 14. ios 8 UILocalサイレントモードでの振動の変化
- 15. ios 8のSOAPからデータを取得する方法
- 16. iOS 8 - 現在の日付をDD/MM/YYYYとして取得
- 17. iOSのJSONでUTF-8を正しく処理する
- 18. オーディオを録音し、iOS 8/9のUIWebView(JavascriptCore)にデータを渡す
- 19. コールを解析し、ptraceでRetを返します。
- 20. ptraceはユーザーレベルまたはカーネルレベルで機能しますか?
- 21. iOS 8でリファクタリングしたストーリーボードを使用できますか?
- 22. フレームワーク内にフレームワークを埋め込む(iOS 8+)
- 23. @available(iOS 9.0、*)メソッドは8.xで実行されます
- 24. Windows XP/2003にlinux ptrace syscallのようなものがありますか?
- 25. Windowsにlinux ptrace syscallのようなものがありますか?
- 26. iOS 9のテーブルビューからSafariビューコントローラを開き、iOS 8または7のSafariで開きます。
- 27. Windows 8&Windows Phone 8
- 28. 移動ランダムマトリックス8 * 8
- 29. Java 8 | HashMapのパラレルストリームのJava 8で
- 30. xcode 7.3中国語のローカリゼーションはiOS 8.xで動作しません
? – SandeepAggarwal
残念ながら、まだ何もありません。 – imas145