2010-03-08 41 views
3

在iPhone開發初期,應用程序經常被踢出AppStore以使用未公開的API調用。我總是問自己,人們是如何發現這些方法以及他們做了什麼的。 我對Objective-C有一點了解,我知道你可以發送任何消息給任何對象,或者你甚至可以通過調用respondsToSelector來檢查一個對象是否會響應一個方法。所以它似乎使用未公開的API調用不是問題,但我不知道如何找到它們。如何查找未記錄的iPhone API調用?

順便說一句我不想使用無證API函數。我只想知道如何完成。使用第三方框架時可能很有用。或者也許有一天人們會使用我創建的框架。

+0

弄清楚框架如何處理是棘手的,因爲許多Apple提供的類實際上是包含許多僞裝成一個類的子類的類簇。 NSString就是一個很好的例子。 – TechZen

回答

5

結賬Class Dump。這將通過框架,並基本上創建它們包含的每個方法的標題。對於逆向工程框架非常有用。

您也可以嘗試從命令行使用strings實用程序。該strings實用程序將打印出所有包含在已編譯的二進制文件中的原始字符串,找方法的名稱時,它可以是有用的,等

使用strings會有點困難/乏味,因爲它也可以打印了很多的垃圾以及有用的東西,所以你需要通過它來尋找有趣的東西。

希望這會有所幫助。

+4

如果你不想自己使用班級轉儲:http://ericasadun.com/ – ashcatch

+0

+1,好喊。 – Jasarien

+1

你可以通過簡單地檢查標題找到很多你不應該使用的東西。 –