我正在調試一個ios應用程序,我沒有源代碼,它是一個剝離的二進制文件,所以沒有可以使用的符號。因此,我使用地址在IDA和類轉儲的幫助下設置bps。我遇到過無法真正理解特定方法的返回值或參數的情況。我知道參數應該在$ r2寄存器上,並且方法的返回值是$ r0。使用GDB和無符號調試Ios - 檢查對象
我們來看看返回NSData *指針的subDataWithRange方法。當然,我不能做「po pointer_addr」,因爲我沒有符號,因此gdb失敗。所以,我試圖自己檢查內容。雖然我很確定我應該返回的字節,但我確實檢索了一個指針,但是當我執行諸如「x/20x $ r0」來檢查其內容時,我看不到有意義的字節。
因此,我想問一下NSData *對象和其他像NSString這樣的ios對象的結構,因爲它們會在內存中的原始字節中出現。什麼是結構?在結構中有沒有找到指針,指向返回的字節?