我正在編寫一個應用程序,它試圖從另一個進程的內存中讀取一些數據。該另一個進程正在加載一個libmono.0.dylib,目標數據(程序集)應駐留在該目錄中。在另一個進程中從加載的dylib讀取數據字段
有了一些基於mach-o的代碼,我可以迭代目標進程的加載dylib並獲得上面lib的mach頭baseaddress。在這裏,我可以去,讓我的功能,與相關數據返回結構地址符號表:
在單源代碼,它看起來像
MonoDomain* mono_get_root_domain (void) { return mono_root_domain; }
我的假設是否正確,0x18a934的地址是否包含返回的結構?如果是,這個地址是相對於dylib頭(= header_addr + addr)還是我還需要添加一些幻燈片,或者就這樣使用它? 當我遵循這個地址時,對於我遇到的每個其他地址是否也持有同樣的權利?
感謝您的回答!我已經有了這部分,我有加載的標題地址和指向符號的指針。正如你在上面看到的,我在反彙編代碼中找到了一個「內部」指針,現在我該如何使用它?如果我閱讀dylib_base_address +指針,那麼我只是隨機的東西。它指向什麼vm區域? – GooKSL