views:

164

answers:

1

In the early days of the iPhone development apps are often kicked out of the AppStore for using undocumented API calls. I always asked myself how people found out about these methods and what they do. I know a little about Objective-C and I know you can send any message to any object or you can even check if an object will answer to a methode by calling respondsToSelector. So its seems using undocumented API calls is not the problem but I have no idea how to find them.

BTW I don't want to use undocumented APi functions. I only want to know how oit is done. Can be useful when working with third party frameworks. Or maybe someday people will use frameworks I created.

+4  A: 

Check out Class Dump. That will go through frameworks and basically create headers of every method etc that they contain. Very useful for reverse engineering frameworks.

You can also try using the strings utility from the command line. The strings utility will print out all the raw strings contained in a compiled binary file, which can be useful when looking for method names, etc.

Using strings will be a little more difficult/tedious as it can also print a lot of garbage as well as useful stuff, so you need to trawl through it to find the interesting stuff.

Hope this helps.

Jasarien
In case you don't want to use class dump yourself: http://ericasadun.com/
ashcatch
+1, Good shout.
Jasarien
You can find an awful lot of stuff you are not supposed to use simply by examining the headers too.
Adam Eberbach