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. Ptrace親プロセス
- 2. ptraceとスレッド
- 3. iOS 8のサンフランシスコフォント
- 4. Objective C(iOS 8)
- 5. iOS Layout Xcode 8
- 6. iOS 8とiOS 9両方のシステムフォント
- 7. Dropbox sdk for iOS 8
- 8. Strange dismissViewControllerAnimatedクラッシュ - iOS 8
- 9. iOSの8識別子
- 10. ブランチiOS 8ユニバーサルリンクの問題
- 11. - スウィフト3、Xcodeの8、IOS
- 12. iOS上でのGTEST 7.3/8
- 13. Xcodeの8 SWIFT IOS:範囲
- 14. UNIXのptrace()ブロックの子供のシステムコール
- 15. マルチスレッドアプリケーションからのptraceの使用
- 16. ptraceを使ったシステムコールのトレース
- 17. Alamofire in Swift 3 iOS 8
- 18. iOS 8 GoogleマップSDK myLocationアイコンバブルグラフィカルグリッチ
- 19. ptrace suid process(previlegeを落とした後)
- 20. 縦置きのiPadのiOSで8
- 21. IBM Mobilefirst 8 iOSデバイスのChallengHandlerの問題
- 22. ビューのコードではiOSの8
- 23. GIDSignInキーチェーンエラーiOSのiOSの10で10のXcode 8
- 24. iOS 8とiOS 9のNSURLセッションの違いは?
- 25. iOS 8とiOS 9の両方のDeepLinkをサポート
- 26. com.apple.main-thread EXC_BAD_ACCESS KERN_INVALID_ADDRESS(iOS 8.xのNSTimerで)
- 27. Xcodeの8スウィフト3 IOS 10ポップアップInfoBubble
- 28. unregisterDevice機能は、iOS 10/XCodeの8
- 29. iOS 8のユニバーサルリンクはありますか?
- 30. iOSシミュレータは、後のMacOSとXcode 8
? – SandeepAggarwal
残念ながら、まだ何もありません。 – imas145