Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
470 views
in Technique[技术] by (71.8m points)

reverse engineering - Getting signatures of private API methods for iOS

I know that SpringboardService contains a lot of private API's (as example: SBGetApplicationState, SBDimScreen etc). I got the list of these methods using "nm" tool.

I want to find a tool which will let me get signatures for these private API methods. As I understand SBGetApplicationState is a C call (vs Objective C method). So I am not sure whether it's possible to recover signatures without disassembling and additional manual actions. However, I hope that at least semi-automated process exist.

Several notes:

a) I have seen this link (iOS Runtime private headers): https://github.com/nst/iOS-Runtime-Headers

It contains only Objective C headers.

b) I have seen this link (SpringBoard.app/MIG subsystem) http://iphonedevwiki.net/index.php/SpringBoard.app/MIG_subsystem

It contains some interesting information, but the documentation is a little bit outdate (for iOS 3.1-4.2)

c) I am doing a research and I don't plan to submit any application to AppStore. I am well aware of AppStore rejections based on usage of private API's

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
  1. Your assumption about C functions is unfortunately correct -- you can't automatically get their signature.
  2. However, you can do this with Objective-C messages -- have a look at class-dump (or, even better, class-dump-z).

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...