Giter Club home page Giter Club logo

runtimebrowser's Introduction

RuntimeBrowser

This is a class browser for the Objective-C runtime on iOS and OS X. It gives you full access to all classes loaded in the runtime; allows you to dynamically load new modules and their classes; shows every method implemented on each class; and displays information in a header (.h) file format.

We have found this to be a useful development tool. Please note, however, that each user is responsible for their own usage.

The original version was released in April 2002 by Ezra Epstein. The project is maintained by Nicolas Seriot since August, 2008.

iOS Version

  • browse by class tree, image or indexed list
  • search in classes names
  • headers retrieval through HTTP port 10000
  • instantiates most classes including allocation of non-shared instances
  • allows invocation of methods including inputting of parameters at runtime

You can browse the iOS headers as seen by RuntimeBrowser.

RuntimeBrowser RuntimeBrowser

OS X Version

Latest build: 2019-11-17 http://seriot.ch/temp/RuntimeBrowser_0.996.zip 344 KB

  • browse by class tree, image, list or protocols
  • search in classes contents
  • syntax colorization
  • drag and drop frameworks and headers

Screenshot

runtimebrowser's People

Contributors

allen-cc avatar bryanluby avatar capnslipp avatar eepstein avatar johnwong avatar lascorbe avatar leptos-null avatar mosheberman avatar nst avatar saagarjha avatar shmoopi avatar swissquote-nst avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

runtimebrowser's Issues

Use of -[NSString containsString:] which is unavailable in iOS 7

-[NSString containsString:] although very convenient is only available in iOS 8 or OS X 10.10.
If you maintain support for iOS 7, you should use -[NSString rangeOfString:]

if ([string containsString:substring]) {}

can be replaced by :

if ([string rangeOfString:substring].location != NSNotFound) {}

need biometrickit headers, no jailbroken iphone

In your repo of private frameworks, you left out biometrickit. I would like to get it, but I have no jailbroken 64 bit iphone to run the runtimebrowser on. How do I get biometrickit headers through runtimebrowser?

I know this is probably a non-issue

Wrong behavior of sort_ios_headers_contents.py

During my experiments with the sorted iOS headers in the iOS-Runtime-Headers repo (git difftool 6.0 6.1), I discovered two kinds of errors in the sorting behavior of your sort_ios_headers_contents.py tool. None of them are a big deal but I thought maybe you'd like to know. I'm certainly not requesting this to be fixed ASAP.

Example 1: Forward declarations of classes do not seem to be sorted at the moment:

forward-class-decl-1

forward-class-decl-2

Example 2: ivars are usually sorted correctly but I found one issue where it was wrong:

ivars-not-sorted

iOS 13.2.3 crash when loading some frameworks

[INFO] GCDWebServer started on port 10000 and reachable at http://192.168.2.2:10000/
2019-12-03 10:34:26.770756+0800 OCRuntime[255:3744] Visit http://192.168.2.2:10000/ in your web browser
[INFO] GCDWebServer now reachable at http://Elf-Sundaes-iPhone.local:10000/
2019-12-03 10:34:35.318125+0800 OCRuntime[255:3903] -- [ERROR] The bundle “AudioUnit” couldn’t be loaded because its executable couldn’t be located.
2019-12-03 10:34:35.427906+0800 OCRuntime[255:3903] -- [ERROR] The bundle “CoreAudioTypes” couldn’t be loaded because its executable couldn’t be located.
2019-12-03 10:34:35.491113+0800 OCRuntime[255:3903] -- [ERROR] The bundle “DriverKit” couldn’t be loaded because its executable couldn’t be located.
2019-12-03 10:34:36.408821+0800 OCRuntime[255:3903] -- [ERROR] The bundle “Accessibility” couldn’t be loaded because its executable couldn’t be located.
2019-12-03 10:34:36.499668+0800 OCRuntime[255:3903] -- skip /System/Library/PrivateFrameworks/Accessibility.framework/Frameworks/AXSpringBoardServerInstance.framework, known to be a crasher on device
2019-12-03 10:34:37.240913+0800 OCRuntime[255:3903] [Common] Allowing SpringBoardUI.framework to load because SearchUI.framework is loaded. This will become a hard assert once <rdar://problem/29408996> is fixed.
2019-12-03 10:34:37.241006+0800 OCRuntime[255:3903] [Common] This process should not be linking or loading SpringBoardUI.framework
Assertion failed: (platformBinary), function SBStaticInitializer, file /BuildRoot/Library/Caches/com.apple.xbs/Sources/SpringBoardHome/SpringBoard-3956.25.1/StaticInitializer.m, line 39.
(lldb) 

I added frameworks that would crash to the "skipedFrameworks" array then run again, until "Load Add" could work. These frameworks are:

@"/System/Library/PrivateFrameworks/AppPredictionUI.framework",
@"/System/Library/PrivateFrameworks/AssistantSettingsSupport.framework",
@"/System/Library/PrivateFrameworks/CarPlaySupport.framework",
@"/System/Library/PrivateFrameworks/ControlCenterUI.framework",
@"/System/Library/PrivateFrameworks/CoverSheet.framework",
@"/System/Library/PrivateFrameworks/SearchUI.framework",
@"/System/Library/PrivateFrameworks/SearchUICardKitProviderSupport.framework",
@"/System/Library/PrivateFrameworks/SiriUIActivation.framework",
@"/System/Library/PrivateFrameworks/Spotlight.framework",
@"/System/Library/PrivateFrameworks/SpotlightUI.framework",
@"/System/Library/PrivateFrameworks/SpotlightUIInternal.framework",
@"/System/Library/PrivateFrameworks/SpringBoard.framework",
@"/System/Library/PrivateFrameworks/SpringBoardHome.framework",
@"/System/Library/PrivateFrameworks/SpringBoardUI.framework",
@"/System/Library/PrivateFrameworks/UserNotificationsUIKit.framework",
@"/System/Library/PrivateFrameworks/VoiceShortcutsUI.framework",

it seems not work on iOS 11

I run this project on iOS 11.2.6, then tap Load All, And then it crashed.

the last output:

[INFO] GCDWebServer started on port 10000 and reachable at http://172.16.89.170:10000/
2018-06-25 15:46:02.387534+0800 OCRuntime[482:15927] Visit http://172.16.89.170:10000/ in your web browser
[INFO] GCDWebServer now reachable at http://xxxxxx.local:10000/
2018-06-25 15:46:27.135655+0800 OCRuntime[482:16220] -- [ERROR] The bundle “AudioUnit” couldn’t be loaded because its executable couldn’t be located.
2018-06-25 15:46:27.924752+0800 OCRuntime[482:16220] [Common] Allowing SpringBoardUI.framework to load because SearchUI.framework is loaded. This will become a hard assert once rdar://problem/29408996 is fixed.
2018-06-25 15:46:27.924819+0800 OCRuntime[482:16220] [Common] This process should not be linking or loading SpringBoardUI.framework
2018-06-25 15:46:28.914574+0800 OCRuntime[482:16220] Error fetching group container systemgroup.com.apple.powerlog : 55

iOS11 beta2 crash

2017-06-22 16:37:09.667894+0800 OCRuntime[359:71235] [Snapshotting] Snapshotting a view (0x103112290, _UIButtonBarStackView) that has not been rendered at least once requires afterScreenUpdates:YES.
[INFO] GCDWebServer started on port 10000 and reachable at http://172.24.112.92:10000/
2017-06-22 16:37:09.688705+0800 OCRuntime[359:71235] Visit http://172.24.112.92:10000/ in your web browser
[INFO] GCDWebServer now reachable at http://ligerde-iPad.local:10000/
2017-06-22 16:42:01.201391+0800 OCRuntime[359:71990] -- [ERROR] The bundle “AudioUnit” couldn’t be loaded because its executable couldn’t be located.
2017-06-22 16:42:02.016606+0800 OCRuntime[359:71990] -- [ERROR] The bundle “Python.framework” couldn’t be loaded because its executable couldn’t be located.
2017-06-22 16:42:02.242915+0800 OCRuntime[359:71990] -- [ERROR] The bundle “Accessibility” couldn’t be loaded because its executable couldn’t be located.
2017-06-22 16:42:02.450045+0800 OCRuntime[359:71990] [Common] This process should not be linking or loading SpringBoardUI.framework
2017-06-22 16:42:02.450399+0800 OCRuntime[359:71990] *** Assertion failure in +[SpringBoardUI load], /BuildRoot/Library/Caches/com.apple.xbs/Sources/SpringBoardUI/SpringBoard-3720.5/SpringBoardUI.m:57
2017-06-22 16:42:02.451002+0800 OCRuntime[359:71990] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This process should not be linking or loading SpringBoardUI.framework (rdar://problem/26143166)'
*** First throw call stack:
(0x1821d9858 0x1809b0528 0x1821d972c 0x182d0e280 0x1900daddc 0x1809b291c 0x1809b3a84 0x10359e134 0x1035ae504 0x1035ae4ac 0x1035ad55c 0x1035ad618 0x1035a176c 0x1035a7ca0 0x180e8ed6c 0x182104ee8 0x182104cc4 0x182cc0ac8 0x102b33454 0x182d4a2c0 0x182c8ab70 0x182c7a828 0x182d4bfb4 0x102e95d4c 0x102ea39a0 0x102ea1e48 0x102ea8080 0x102ea7db8 0x1810c3338 0x1810c2e40)
libc++abi.dylib: terminating with uncaught exception of type NSException

(lldb) bt

  • thread #11, queue = 'NSOperationQueue 0x1c0226ba0 (QOS: UNSPECIFIED)', stop reason = signal SIGABRT
    frame #0: 0x0000000180fb93a8 libsystem_kernel.dylib__pthread_kill + 8 frame #1: 0x00000001810c54d4 libsystem_pthread.dylibpthread_kill$VARIANT$mp + 360
    frame #2: 0x0000000180f2ab0c libsystem_c.dylibabort + 140 frame #3: 0x0000000180987068 libc++abi.dylibabort_message + 132
    frame #4: 0x0000000180987210 libc++abi.dylibdefault_terminate_handler() + 304 frame #5: 0x00000001809b0810 libobjc.A.dylib_objc_terminate() + 124
    frame #6: 0x000000018099f54c libc++abi.dylibstd::__terminate(void (*)()) + 16 frame #7: 0x000000018099eea8 libc++abi.dylib__cxa_throw + 136
    frame #8: 0x00000001809b065c libobjc.A.dylibobjc_exception_throw + 364 frame #9: 0x00000001821d972c CoreFoundation+[NSException raise:format:arguments:] + 104
    frame #10: 0x0000000182d0e280 Foundation-[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 112 frame #11: 0x00000001900daddc SpringBoardUI+[SpringBoardUI load] + 768
    frame #12: 0x00000001809b291c libobjc.A.dylibcall_load_methods + 184 frame #13: 0x00000001809b3a84 libobjc.A.dylibload_images + 76
    frame #14: 0x000000010359e134 dylddyld::notifySingle(dyld_image_states, ImageLoader const*, ImageLoader::InitializerTimingList*) + 488 frame #15: 0x00000001035ae504 dyldImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 348
    frame #16: 0x00000001035ae4ac dyldImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 260 frame #17: 0x00000001035ad55c dyldImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 136
    frame #18: 0x00000001035ad618 dyldImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) + 84 frame #19: 0x00000001035a176c dylddyld::runInitializers(ImageLoader*) + 88
    frame #20: 0x00000001035a7ca0 dylddlopen + 1004 frame #21: 0x0000000180e8ed6c libdyld.dylibdlopen + 116
    frame #22: 0x0000000182104ee8 CoreFoundation_CFBundleDlfcnLoadBundle + 140 frame #23: 0x0000000182104cc4 CoreFoundation_CFBundleLoadExecutableAndReturnError + 352
    frame #24: 0x0000000182cc0ac8 Foundation`-[NSBundle loadAndReturnError:] + 432
    • frame #25: 0x0000000102b33454 OCRuntime__38-[RTBFrameworksTVC loadAllFrameworks:]_block_invoke((null)=<unavailable>) at RTBFrameworksTVC.m:176 frame #26: 0x0000000182d4a2c0 FoundationNSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK + 16
      frame #27: 0x0000000182c8ab70 Foundation-[NSBlockOperation main] + 72 frame #28: 0x0000000182c7a828 Foundation-[__NSOperationInternal _start:] + 868
      frame #29: 0x0000000182d4bfb4 Foundation__NSOQSchedule_f + 404 frame #30: 0x0000000102e95d4c libdispatch.dylib_dispatch_client_callout + 16
      frame #31: 0x0000000102ea39a0 libdispatch.dylib_dispatch_continuation_pop + 624 frame #32: 0x0000000102ea1e48 libdispatch.dylib_dispatch_async_redirect_invoke + 684
      frame #33: 0x0000000102ea8080 libdispatch.dylib_dispatch_root_queue_drain + 616 frame #34: 0x0000000102ea7db8 libdispatch.dylib_dispatch_worker_thread4 + 68
      frame #35: 0x00000001810c3338 libsystem_pthread.dylib_pthread_wqthread + 1260 frame #36: 0x00000001810c2e40 libsystem_pthread.dylibstart_wqthread + 4
      (lldb)

can't see the details of classes and protocolscan't see the details of classes and protocols

When I checked out the master branch of this project and built it for OS X, I just received a syntax error
associated with __weak qualifier. I think the code is no problem, but I don't know why the compiler complains about it. And further more, when I ran the project on iOS, I just can't open the detail page of classes and protocols header file. Any clue will be appropriated. Thanks.


iphoneerror1


iphoneerror2


iphoneerror3


iphoneerror4
macosxerror

on macOS

seems to missing several Private Frameworks including BiometricKit and BiometricSupport

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.