4
我想學習方法swizzling。我在Objective C中創建了一個程序,它只是在其類中調用一個方法。現在我正在嘗試使用DYLD_INSERT_LIBRARIES加載動態庫,這樣我就可以用動態庫中定義的新方法覆蓋我的方法實現。目的是修改參數,然後調用原始函數調用。Objective C方法使用動態庫Swizzling
程序代碼可在http://pastebin.com/a0b3qkgB 動態庫中的代碼可在http://pastebin.com/Ndf6VdUt
我所觀察到的,一旦行「如果(自== [加密類]){」獲取動態執行庫中,代碼顯示類名,然後吐出奇怪的消息。 完成輸出:
Test-IPhone:~ root# DYLD_INSERT_LIBRARIES="./evil7.dylib" ./new
objc[324]: Class Encryption is implemented in both /private/var/root/evil7.dylib and /private/var/root/./new. One of the two will be used. Which one is undefined.
Inside load function
objc[324]: Encryption:
Trace/BPT trap
我不確定代碼有什麼問題。任何幫助,將不勝感激。
目標是使用動態庫(代碼注入)覆蓋客觀的C方法。
因此,您有一個名爲「加密」的類,並且您試圖加載一個包含名爲「加密」的類的dylib。你不能有兩個同名的類。 – hooleyhoop 2012-03-09 18:23:34